Sobre o cmdlet where-object

1

Estou apenas começando com o PowerShell, tenho uma dúvida sobre esse comando:

Get-WindowsFeature | where installed

Ele me retorna os recursos instalados, agora eu gostaria de ter todos os recursos removidos ou disponíveis, mas quando eu substituir "instalado" com removido / disponível, ele não me mostra nada, por quê?

Obrigado pessoal!

    
por Olddddd 22.01.2017 / 14:51

1 resposta

2

No seu exemplo, a Installed que você verificou era uma propriedade booleana. É verdadeiro ou falso e você estava verificando todos os objetos em que estava $True . Removed e Available são valores possíveis de InstallState , não propriedades diretamente.

Você pode ver isso com

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>

Experimente um destes:

Get-Windowsfeature | Where-Object { -not $_.Installed }
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Available" }
Get-WindowsFeature | Where-Object { $_.InstallState -eq "Removed" }
    
por 22.01.2017 / 17:21

Tags