2016-06-01 4 views
2

У меня есть команда:По PSCustomObject удалить лишние значения

Get-VM | Where-Object {$_.NetworkAdapters.NetworkName -eq 'VLAN180'} | Select-Object Name, {$_.Guest.IPAddress} 

возвращают следующие данные:.

ss4.work {10.8.0.6, fe80::dd2a:a7d4:7de0:e64d, fe80::fd66:1962:4009:501a, 192.168.180.18} 

мне нужно значение IP - 192.168.180 *, но проблема в том, что $ _.Guest.IPAddress это PSCustomObject, и я не понимаю, как его использовать.

ответ

2

$_.Guest.IPAddress - это массив объектов, возможно, объектов PSObjects, возможно, IPAddress, но дело в том, что там есть несколько IP-адресов, и вам нужно выбрать те, которые вы хотите. У вас также есть отношения от одного до многих (от имени к IP), поэтому вам нужно решить, как вы этого хотите; Я предполагаю, что вы предполагая, что будет только один IP, который соответствует критериям:

Может быть что-то вроде:

Get-VM | 
    Where-Object { 
     $_.NetworkAdapters.NetworkName -eq 'VLAN180' 
    } | 
    Select-Object Name, {$_.Guest.IPAddress.Where({$_.ToString() -like '192.168.180.*'})} 
+0

Спасибо, это работает – marabu