Retorna duas (ou mais) propriedades como uma tabela com um único comando do PowerShell

1

Eu tenho o seguinte comando do PowerShell que retorna todos os tipos de propriedades sobre unidades de disco conectadas ao sistema:

Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\?\*"}

Estou interessado somente nas propriedades DriveLetter e DeviceID e gostaria que elas fossem retornadas em uma tabela assim:

DriveLetter    DeviceID
C:             \?\Volume{5b982fce-d9e5-11e1-9c28-806e6f6e6963}\
D:             \?\Volume{e9820c98-d688-11e1-a45f-001e673f1fc5}\

Eu sei que posso cercar meu comando original e usar o operador dot para retornar uma das minhas propriedades por vez:

(Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\?\*"}).DriveLetter

Que em troca produz:

C:
D:

Mas eu não sei escrever uma única instrução que retornará duas (ou mais) propriedades como uma tabela. Se não for possível fazer isso com uma única instrução, o que devo fazer para produzir a saída da tabela desejada?

Eu pesquisei no Google por uma resposta, mas como sou muito novo no PowerShell, provavelmente não estou expressando corretamente meus termos de pesquisa e, portanto, não entendo o que imagino ser a resposta mais simples à minha pergunta.

    
por Twisty Impersonator 17.09.2014 / 23:45

2 respostas

2

Tente isto:

Get-WmiObject -Class Win32_Volume | Where-Object {$_.DeviceID -like "\?\*"} | Select-Object -Property DriveLetter,DeviceID

Use Get-Help Select-Object -Detailed para mais informações.

    
por 17.09.2014 / 23:57
2

Basta formatar a saída usando o cmdlet Format-Table:

Get-WmiObject -Class Win32_Volume | 
Where-Object {$_.DeviceID -like "\?\*"} | 
Format-Table DriveLetter,DeviceID

Gera saída:

DriveLetter                                                            DeviceID                                                              
-----------                                                            --------                                                              
C:                                                                     \?\Volume{118e4062-2eba-4f35-9b1b-015c3c1087dc}\                     
                                                                       \?\Volume{e2a184aa-dac8-4196-80c6-fd8c7662e377}\                     
                                                                       \?\Volume{33697e48-1197-464c-8553-cef00429e5a4}\                     

Certifique-se de entender como os cmdlets de formatação (ft, fl etc) se integram aos objetos no pipeline.

    
por 21.09.2014 / 12:45

Tags