Acerca del cmdlet de objeto dónde

Acerca del cmdlet de objeto dónde

Recién estoy comenzando con PowerShell, tengo una pregunta sobre este comando:

Get-WindowsFeature | where installed

Me devuelve las funciones instaladas, ahora me gustaría tener todas las funciones eliminadas o disponibles, pero cuando reemplazo "instalado" por eliminado/disponible, no me muestra nada, ¿por qué?

¡Gracias chicos!

Respuesta1

En su ejemplo, lo Installedque marcó era una propiedad booleana. Es verdadero o falso y estabas comprobando todos los objetos donde estaba $True. Removedy Availableson valores posibles de InstallState, no propiedades directamente.

Puedes ver esto con

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>

Pruebe uno de estos:

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

información relacionada