8 | foreach {
New-Object PSObject -Prop @{
Address ="192.168.1.$_";
Status = (Test-Connection "192.168.1.$_" -Quiet -Count 1);
try {HostName=[System.Net.Dns]::GetHostEntry("192.168.1.$_").HostName} catch {HostName="UNKNOWN"}
}
} | Format-Table -Auto
我想使用[System.Net.Dns]::GetHostEntry()
解析主机名。我正在使用Test-Connection
来获取连接状态。
我的问题是,当无法解析主机名时,该命令会返回错误。我需要存储" UNKNOWN"在该特定成员的HostName
属性中,是否有可用于实现此目的的构造?
答案 0 :(得分:2)
开始定义HostName后放置Try / Catch。
8 | foreach {
new-object psobject -prop @{
Address = "192.168.1.$_"
Status = Test-connection "192.168.1.$_" -quiet -count 1
HostName = Try {[System.Net.Dns]::gethostentry("192.168.1.$_").HostName} Catch {"UNKNOWN"}
}
} | format-table -auto