1

我希望为本地服务器运行 DNS 查找,选择主机名和 IP 地址并输出到文本文件。

[System.Net.Dns]::GetHostEntry('server1') | 
    Select-Object 'HostName', 'IPAddressToString' |
    Out-File -Path 'c:\temp\DnsIpAddress.txt'

我可以访问HostName但不能选择IPAddressToStringIPAddressToString如果我以这种方式将结果保存到变量中,我可以访问:

$result.AddressList.IpAddressToString

我可以Select-Object用来选择hostnameIPAddressToString吗?或者我应该以另一种方式做到这一点?

4

2 回答 2

3

Use a calculated property with Select-Object:

[System.Net.Dns]::GetHostentry('server1') |
  Select-Object HostName,@{Name = 'IPAddress';Expression={$_.AddressList.IPAddressToString}} |
  Out-File -Path 'C:\temp\DnsIpAddress.txt'
于 2018-01-20T16:17:32.560 回答
0

值得一提的是,有一个 cmdletResolve-DnsName可能会产生更多“PowerShelly”代码:

Resolve-DnsName -name www.stackoverflow.com | Select-Object Name,IPAddress
于 2018-01-21T00:11:21.270 回答