我正在运行以下脚本
[System.Net.Dns]::GetHostEntry('') | Where-Object {$_.AddressList -like "IPv4*"}
哪个给我这个输出:
HostName Aliases AddressList
-------- ------- -----------
SERVER1.domain.com {} {REDACTED_IPv6, IPv4.x.x.x}
我想要的结果是这样
HostName Aliases AddressList
-------- ------- -----------
SERVER1.domain.com {IPv4.x.x.x}
我该如何实现?
答案 0 :(得分:3)
由于地址列表本身就是一个对象,因此您需要提取所需的信息。这样应该可以达到您想要的结果。
[System.Net.Dns]::GetHostEntry('') |
Select-Object HostName,
Aliases,
@{n="AddressList";e={$_.addresslist.ipaddresstostring}}
或
[System.Net.Dns]::GetHostEntry('') |
Select-Object HostName,
Aliases,
@{n="AddressList";e={($_.addresslist|where addressfamily -eq InterNetwork).ipaddresstostring}}
或
[System.Net.Dns]::GetHostEntry('') |
Select-Object HostName,
Aliases,
@{n="AddressList";e={$_.addresslist -like "10.*"}}
或
[System.Net.Dns]::GetHostEntry('') |
Select-Object HostName,
Aliases,
@{n="AddressList";e={$_.addresslist -match "\d+\.\d+\."}}