Windows PowerShell Selecione a remoção de colunas

3

Eu sou um cara do Linux, então estou acostumado a "grep". Com o grep ele mantém as colunas, porém no powershell ele altera a saída. Por exemplo:

Get-WmiObject -List | Select-String -Pattern "Win32_LogicalDisk$"

\COMP\ROOT\cimv2:Win32_LogicalDisk

Onde como "Get-WmiObject -List" coloca as colunas como:

  CIM_Tachometer                      {SetPowerState, R... {Accuracy, Availability, Caption, ConfigManagerErrorCode...

Eu gostaria que meu "Select" produzisse a coluna inteira em oposição a apenas o objeto ou o que quer que esteja retornando. Eu gostaria de emular um grep da saída real de Get-WmiObject -List

Também como uma pergunta do lado dos bouns: Além do MSDN, o que é um bom site que lista todos os objetos WMI e o que eles retornam? Estes parecem ser uma maneira super poderosa de obter informações sobre qualquer aspecto de um sistema Windows. Amiright?

    
por linuxadmin 15.08.2013 / 14:07

1 resposta

3

Você não quer usar Select-String . O Powershell oferece o cmdlet Where-Object para esse tipo de filtragem:

Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" }

Você também pode usar Select-Object para expandir a propriedade "Propriedades" no objeto retornou de Where-Object :

Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" } | Select-Object -ExpandProperty Properties

Se você quiser explorar o WMI, existem muitas ferramentas disponíveis. Uma versão do Powershell, o WMI Explorer pode ser de particular interesse para você.

    
por 15.08.2013 / 14:25