Powershell Try&;使用Invoke命令时Catch不工作
我的剧本中有一个奇怪的问题。 我正在一些服务器上调用一个命令。如果我无法连接到服务器(因为它处于脱机状态或其他原因),我仍然希望记录它(服务器处于脱机状态>log.txt) 显然,当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"
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
参数。现在真是魅力四射!