Разрешение имен хостов в сети с помощью PowerShell
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
чтобы получить статус подключения.
Моя проблема в том, что когда имя хоста не может быть разрешено, команда возвращает ошибку. Мне нужно хранить "НЕИЗВЕСТНО" в HostName
свойство для этого конкретного члена, есть ли конструкция, которую я могу использовать для достижения этой цели?
1 ответ
Поставьте Try/Catch после того, как вы начнете определять HostName.
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