Powershell Try&;使用Invoke命令时Catch不工作

Powershell Try&;使用Invoke命令时Catch不工作,powershell,try-catch,Powershell,Try Catch,我的剧本中有一个奇怪的问题。 我正在一些服务器上调用一个命令。如果我无法连接到服务器(因为它处于脱机状态或其他原因),我仍然希望记录它(服务器处于脱机状态>log.txt) 显然,当Try块中发生错误时,Catch块不会执行 为了测试这一点,我向ComputerName参数写入了一个不存在的值。 这是我的密码: Try { Invoke-Command -ComputerName hui -ScriptBlock $sb } Catch { Write-Host "Hello"

我的剧本中有一个奇怪的问题。 我正在一些服务器上调用一个命令。如果我无法连接到服务器(因为它处于脱机状态或其他原因),我仍然希望记录它(服务器处于脱机状态>log.txt)

显然,当
Try
块中发生错误时,
Catch
块不会执行

为了测试这一点,我向
ComputerName
参数写入了一个不存在的值。 这是我的密码:

Try {
    Invoke-Command -ComputerName hui -ScriptBlock $sb
}
Catch {
    Write-Host "Hello"
}
但是剧本从来没有说“你好”

我得到的异常是一个
PSRemotingTransportException
。我还试图指定异常,但也不起作用


当我在
Invoke命令
行设置断点时,它也会忽略catch块。为什么?

这不是终止错误,因此它永远不会被
try
/
catch
捕获。添加
-错误操作停止

Try {
    Invoke-Command -ComputerName hui -ScriptBlock $sb -ErrorAction Stop
}
Catch {
    Write-Host "Hello"
}

非常感谢你。这是一个非常有用的信息,因为我从来没有真正了解过我应该如何处理
-ErrorAction
参数。现在真是魅力四射!