将Test-Connection错误转换为消息

4
我正在使用以下代码获取列表中机器的状态和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.'
}
    }

目标是获取每台计算机的IP地址,如果计算机离线则打印"$computer离线"。

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

1个回答

5
在一个 Try/Catch 中,Catch 块只会在终止错误时被调用。将 -ErrorAction Stop 添加到 Test-Connection 中以强制错误终止,这样 Catch 块就会运行:
Test-Connection $computer -Count 1 -ErrorAction Stop | Select-Object Address, IPV4Address

在这里进行评论,提到当使用Test-Connection -Quiet时,Try/Catch不会在错误上终止。 - user4317867

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接