1 votes

À propos de la cmdlet where-object

Je débute avec PowerShell, j'ai une question sur cette commande :

Get-WindowsFeature | where installed

Il me renvoie les fonctions installées, maintenant je voudrais avoir toutes les fonctions enlevées ou disponibles, mais quand je remplace "installé" par enlevé/disponible, il ne me montre rien, pourquoi ?

Merci les gars !

0 votes

La syntaxe correcte est Get-WindowsFeature | where installed Voir Get-WindowsFeature Au bas du lien, vous trouverez un exemple de ce que vous demandez. Get-WindowsFeature –ComputerName Server01 | Where InstallState -Eq Removed

0 votes

Pour les questions futures, il est utile de montrer la ligne de commande exacte que vous avez essayée, et le résultat.

0 votes

D'accord, mais ma dernière phrase répond à ça.

2voto

Matthew Wetmore Points 1631

Dans votre exemple, le Installed que vous avez vérifié était une propriété booléenne. C'est vrai ou faux, et vous avez vérifié tous les objets où elle était $True . Removed y Available sont des valeurs possibles de InstallState et non les propriétés directement.

Vous pouvez le constater avec

PS> Get-Windowsfeature | Get-Member
   TypeName: Microsoft.Windows.ServerManager.Commands.Feature 
Name                      MemberType Definition
----                      ---------- ----------
<extra removed>
Installed                 Property   bool Installed {get;}
InstallState              Property   Microsoft.Windows.ServerManager.Commands.InstallState InstallState {get;}
<extra removed>

Essayez l'un de ceux-ci :

Get-Windowsfeature | Where-Object { -not $_.Installed }
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Available" }
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Removed" }

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X