我想编写一个返回没有 IP 的主机名的脚本。我写了以下部分脚本,但我不知道如何返回空答案。提前致谢
$numbers=1..255
foreach ($number in $numbers){
{
nslookup host$number
}
答案1
如果您想从 Powershell 使用 nslookup,则必须处理返回的结果,因为它只是文本。相反,使用解析 DNS 名称Powershell 命令。
请注意,该命令将返回所有 DNS 记录,因此结果可以是对象数组。
下面是一个关于如何使用它的小例子(我用 for 替换了 foreach 循环):
for($i=1 ; $i -le 255 ; $i++) {
$DnsQuery = $null
[array]$DnsQuery = Resolve-DnsName -Name "host$i" -ErrorAction SilentlyContinue
# If no DNS record found, process next host
if($DnsQuery -eq $null) {
Write-Host "No DNS record found for host$i"
continue ;
}
# Look for DNS record without IP address
foreach($Result in $DnsQuery) {
if($Result.IPAddress -eq $null) {
Write-Host "DNS record without IP address found for host$i (Record type: $($Result.Type))"
}
}
}