Как я могу получить PnpDeviceId предшествующего и зависимого устройства, используя get-wmiobject в одном выводе?

Я хочу получить PnpDeviceId предшествующего и зависимого устройства, используя get-wmiobject -class Win32_SCSIControllerDevice в одном выводе (например, в таблице). Я понимаю, что я могу сделать:

 Get-WmiObject -class Win32_SCSIControllerDevice | ForEach-Object { [WMI]$_.Antecedent}  | Format-Table PnpDeviceId

а также

Get-WmiObject -class Win32_SCSIControllerDevice | ForEach-Object { [WMI]$_.Dependent}  | Format-Table PnpDeviceId

Как я могу вложить эти две команды, чтобы получить результат, подобный приведенному ниже примеру?

PnpDeviceId                 PnpDeviceId
-----------                 -----------
PnpDeviceIdAntecedentDevice PnpDeviceIdDependentDevice
PnpDeviceIdAntecedentDevice PnpDeviceIdDependentDevice
PnpDeviceIdAntecedentDevice PnpDeviceIdDependentDevice

РЕДАКТИРОВАТЬ:

С использованием

Get-WmiObject -class Win32_SCSIControllerDevice | ForEach-Object { [WMI]$_.Antecedent, [WMI]$_.Dependent } | Format-Table PnpDeviceId

Я получил:

PnpDeviceId               
-----------                 
PnpDeviceIdAntecedentDevice
PnpDeviceIdDependentDevice
PnpDeviceIdAntecedentDevice 
PnpDeviceIdDependentDevice
PnpDeviceIdAntecedentDevice 
PnpDeviceIdDependentDevice

Я экспериментирую с разными форматами, но их нет в линейке.


person kendzi    schedule 13.05.2016    source источник


Ответы (1)


Просто выберите свойства с помощью командлета Select-Object (псевдоним select):

Get-WmiObject -class Win32_SCSIControllerDevice | select Antecedent, Dependent

Изменить:

Если вы хотите выбрать вложенное свойство, вы можете использовать собственный оператор выбора:

Get-WmiObject -class Win32_SCSIControllerDevice | Select @{e={([WMI]$_.Antecedent).PNPDeviceID}; l='Antecedent PNPDeviceID'}, @{e={([WMI]$_.Dependent).PNPDeviceID}; l='Dependent PNPDeviceID'}

Вывод:

Antecedent PNPDeviceID                                       Dependent PNPDeviceID                                           
----------------------                                       ---------------------                                           
PCI\VEN_8086&DEV_282A&SUBSYS_05351028&REV_04\3&11583659&0&FA SCSI\DISK&VEN_LITEONIT&PROD_LCT-256M3S\4&62C5D10&0&000000       
PCI\VEN_8086&DEV_282A&SUBSYS_05351028&REV_04\3&11583659&0&FA SCSI\CDROM&VEN_TSSTCORP&PROD_DVD-ROM_TS-U333B\4&62C5D10&0&010000
person Martin Brandl    schedule 13.05.2016
comment
Это выбирает весь путь, и мне нужно только то, что после DeviceId. Я знаю, что смогу разобрать его позже, но я ищу способ получить красивый и чистый вывод. - person kendzi; 13.05.2016
comment
Хорошо, я добавил пример пользовательского выбора. - person Martin Brandl; 13.05.2016