причина, по которой Get-Member
не дает желаемого результата, состоит в том, что он показывает имя / тип / информацию о структуре, но не значения . [ ухмылка ], если вы хотите увидеть значения свойств элемента, используйте $Item | Select-Object -Property *
, чтобы показать все реквизиты и их значения.
чтобы получить значение, которое вы хотите использовать в скрипте, используйте точечную нотацию, чтобы получить значение ... вот так ...
@([System.Net.DNS]::GetHostAddresses("google.com")).IPAddressToString[1]
, который даст вам значение 2-го элемента в массиве IP-адресов, возвращаемых вызовом. в моей системе это адрес IPv4 - элемент [0]
является адресом IPv6.
как вы обнаружили, другой способ получить ту же информацию - это перенаправить командлет Select-Object
следующим образом ...
([System.Net.DNS]::GetHostAddresses("google.com") |
Select-Object -ExpandProperty 'IPAddressToString')[1]
Если вы хотите быть уверены, что получите желаемый тип адреса, используйте что-то вроде этого ...
@([System.Net.DNS]::GetHostAddresses("google.com")).
Where({$_.AddressFamily -eq 'Internetwork'}).
IPAddressToString
, который получает адреса от цели, фильтрует адрес IPv4, а затем дает значение