Boa noite, Alberto. Tudo bom?
Tente com o comando abaixo:
Get-LocalUser | Where-Object Enabled
Neste comando, o Where-Object
receberá o texto Enabled
como argumento e irá trabalhar desta forma:
- Os itens da coleção dada por
Get-LocalUser
possuem uma propriedade chamada Enabled
? - Sim! É do tipo
bool
! - Então eu vou mostrar apenas os itens em que esta propriedade devolve
True
.
Você poderia testar, por exemplo, o comando a seguir:
Get-LocalUser | Where-Object Description
O Where-Object
irá exibir apenas os itens que possuem um texto na propriedade Description
.
Mas, em seu exemplo, percebi que você quer selecionar apenas a propriedade Enabled
e Name
. Usando a boa prática de filtro à esquerda e formatação à direita, teremos:
Get-LocalUser | Where-Object Enabled | Select-Object Enabled, Name
Sobre sua abordagem, não é necessário usar o script block { ... }
, pois é uma verificação simples. Os script blocks são usados em filtros mais complexos. Mas, mesmo assim, você poderia usar:
Where-Object { $_.Enabled -like True }
ou
Where-Object Enabled -like "True"
Mas estas formas apenas "funcionam", o melhor mesmo seria usar o formato mais simples Where-Object Enabled
.
E, indo um pouco além, na linha de comando você pode usar o alias ?
para o cmdlet Where-Object
e o select
para Select-Object
. Ficando desta forma:
Get-LocalUser | ? Enabled | select Enabled, Name
O que você acha? Resolvi sua dúvida?
Abs.