0
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该特定成员的属性中存储“未知”,是否有任何构造可以用来实现这一点?

4

1 回答 1

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
于 2017-01-09T16:13:01.600 回答