我想从计算机名称中检索 IP 地址,但我只想要 IP 而已。
$computer = 'Server1'
$computer = [System.Net.Dns]::GetHostAddresses($computer) | select IPAddressToString
返回 @{IPAddressToString=xxxx}。我如何返回“xxxx”
答案1
使用您的示例,您可以键入$Computer.IPAddressToString
以返回 IP 地址数组。如果该主机名只有 1 个 IP 地址,那么就只有这些。但是,主机名可能有许多地址,这就是它为什么是一个数组的原因。因此,如果您只想查看数组中的第一个 IP 地址,您可以键入$Computer.IPAddressToString[0]
答案2
代替
| select IPAddressToString
和(Powershell 2.0 以上版本)
| select -First 1 -ExpandProperty IPAddressToString
或者,如果你想使用数组
| select -ExpandProperty IPAddressToString
这将返回一个字符串数组,因此,如果您想要单独的地址,请使用类似
([System.Net.Dns]::GetHostAddresses($computer) | select -ExpandProperty IPAddressToString)[0]
答案3
添加()。IpAddressToString
([Net.Dns]::GetHostAddresses('Server1')).IpAddressToString
答案4
我总是用 foreach 这样做,而不是 select -expand:
$computer = 'Server1'
$computer = [Net.Dns]::GetHostAddresses($computer) | foreach IPAddressToString