我正在尝试将Resolve-Dnsname mmydomain.com的数据放入一个变量。
$data = Resolve-Dnsname mmydomain.com
Write-host $data
此脚本的结果是,我只能看到此字符串microsoft.DnsClient.Commands.DnsRecord_A
,而简单执行Resolve-Dnsname mmydomain.com
则会向我写入完整的nslookup数据。
有什么建议吗?
您应该在使用Write-host
时使用Write-output
$data = Resolve-DnsName mmydomain.com
Write-output $data
预期产量
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
www.google.com AAAA 9 Answer 2a00:1450:4009:80d::2004
www.google.com A 9 Answer 216.58.204.36
关于Write-host
与Write-output
here的其他信息。
您从根本上不了解对象的工作方式。 IP信息位于$data.IPAddress
中-下面列出了运行Resolve-DnsName
cmdlet时检索到的所有属性:
$data = Resolve-DnsName mmydomain.com
$data | Select *
如果您想要一个(或多个)属性,请按名称要求(
):$data = Resolve-DnsName mmydomain.com
# By Select method
Write-Host 'Select the IpAddress property of $data:'
$data | Select IPAddress | Out-Host
# By property name
Write-Host 'Get by property name:'
$data.IpAddress
通常,您只会使用所需的内容。
$Data | select Name,Ip4Address,Type
在您的示例中:
If ($data.IpAddress -like "*11.22.33.44*") {
Write-Host "Got it!"
}
Else {
Write-Host "Nothing found!"
}