Informationen zum Where-Object-Cmdlet

Informationen zum Where-Object-Cmdlet

Ich bin gerade erst mit PowerShell angefangen und habe eine Frage zu diesem Befehl:

Get-WindowsFeature | where installed

Es gibt mir die installierten Funktionen zurück. Jetzt hätte ich gerne alle entfernten oder verfügbaren Funktionen, aber wenn ich „installiert“ durch „entfernt/verfügbar“ ersetze, wird mir nichts angezeigt. Warum?

Danke Leute!

Antwort1

In Ihrem Beispiel Installedwar das von Ihnen geprüfte eine Boolesche Eigenschaft. Es ist wahr oder falsch, und Sie haben alle Objekte geprüft, bei denen es war $True. Removedund Availablesind mögliche Werte von InstallState, nicht Eigenschaften direkt.

Sie können dies sehen mit

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>

Versuchen Sie eines davon:

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

verwandte Informationen