Powershell的回报超过了DNS

时间:2014-04-28 21:43:37

标签: powershell

我正在尝试将注册表项与多宿主服务器上的DNS匹配。问题是system.net.dns似乎比DNS中的内容更多。

示例:

nslookup hostname.dns.net
Server DNS.server.naem
Address: IP.Address.of.server

Name: hostname.dns.net
Address: single.ip.of.server

但是当我使用时:

$DNSResult = [System.Net.Dns]::GetHostEntry($Computer)
$DNSresult.addresslist

它输出2个服务器IP地址,已发布的一个和未发布的一个....

如何才能获得DNS发布的结果。

1 个答案:

答案 0 :(得分:0)

重新Net.IPAddress]$dnsip=dnsLookup $computername $dnsip错误。我添加了一个换行字符清理,它隐藏在输出的末尾并阻止了正确的解析。 nslookup的输出被分解为字符串数组。使用$i = 4,您开始处理第5行的输出,即第一个返回的地址所在的输出。 $r.count - 2停止处理最后一行,即空字符串。

function dnsLookup($hostname){
    $r = (nslookup $hostname | Out-String).split("`n")
    for($i = 4; $i -lt ($r.count - 2); $i++){
        $r[$i] -replace ("Address:  |Addresses:  | |`t|`r|Server"),""
    }
}

现在Net.IPAddress]$dnsip=dnsLookup $computername可以使用。