1

У меня есть следующая команда PowerShell, которая возвращает все виды свойств о дисках, подключенных к системе:

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

Меня интересуют только свойства DriveLetter и DeviceID и я хотел бы, чтобы они возвращались в таблице примерно так:

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

Я знаю, что могу окружить свою исходную команду и использовать оператор точки, чтобы возвратить одно из моих свойств одновременно:

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

Который взамен производит:

C:
D:

Но я не знаю, как написать одно утверждение, которое будет возвращать два (или более) свойства в виде таблицы. Если это невозможно сделать с помощью одного оператора, что мне делать, чтобы получить желаемый вывод таблицы?

Я искал в Google ответ, но из-за того, что я довольно новичок в PowerShell, я, вероятно, неправильно формулирую свои условия поиска и, следовательно, не получаю то, что, как мне кажется, является простым ответом на мой вопрос.

2 ответа2

2

Попробуй это:

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

Используйте Get-Help Select-Object -Detailed для получения дополнительной информации.

2

Просто отформатируйте вывод с помощью командлета Format-Table:

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

Генерирует вывод:

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

Убедитесь, что вы понимаете, как командлеты форматирования (ft, fl и т.д.) Интегрируются с объектами в конвейере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .