将测试连接错误转换为消息

Pic*_*kle 4 powershell

我正在使用以下代码来获取列表中计算机的状态和IP地址:

    $csv = Get-Content TEST_MACHINES.csv

    foreach ($computer in $csv)
    {
try
{
    Test-Connection $computer -Count 1 | Select-Object Address, IPV4Address
}
catch [System.Net.NetworkInformation.PingException]
{
    '$computer is offline.'
}
    }
Run Code Online (Sandbox Code Playgroud)

目的是获得每台机器的IP地址,如果机器离线,则打印“ $ computer offline”。

但是,它不会显示错误并显示消息,而是显示整个Test-Connection错误。如何获取仅在出现错误时显示我的消息的信息?

mjo*_*nor 5

在中Try/CatchCatch仅在终止错误时调用该块。添加-ErrorAction StopTest-Connection强制终止错误,因此该Catch块将运行:

Test-Connection $computer -Count 1 -ErrorAction Stop | Select-Object Address, IPV4Address
Run Code Online (Sandbox Code Playgroud)