我如何 try/catch invoke-command 并继续?
How do I try/catch inside invoke-command and continue?
我正在尝试捕获调用命令循环中的错误。我想捕获,写一个我自己的错误,然后继续我的循环,但我不断打印出异常,而我的捕获什么也不做。下面的示例是我想要工作的。
$Result = Invoke-Command -Computer $computer -ScriptBlock {
$instanceName = "MSSQL`$SQLEXPRESS"
try {
$sqlService = Get-Service -Name $instanceName
} catch {
Write-Host "No SQL on server $env:COMPUTERNAME"
return $_
continue
}
找不到指定的服务不被认为是严重的 - 这是一个 "non-terminating" 错误。您仍然会收到错误 message/object,但它(按设计)不足以调用 catch
。您可以使用 ErrorAction
参数强制它(即使其成为 "terminating"),如下所示:
$sqlService = Get-Service -Name $instanceName -ErrorAction Stop
我正在尝试捕获调用命令循环中的错误。我想捕获,写一个我自己的错误,然后继续我的循环,但我不断打印出异常,而我的捕获什么也不做。下面的示例是我想要工作的。
$Result = Invoke-Command -Computer $computer -ScriptBlock {
$instanceName = "MSSQL`$SQLEXPRESS"
try {
$sqlService = Get-Service -Name $instanceName
} catch {
Write-Host "No SQL on server $env:COMPUTERNAME"
return $_
continue
}
找不到指定的服务不被认为是严重的 - 这是一个 "non-terminating" 错误。您仍然会收到错误 message/object,但它(按设计)不足以调用 catch
。您可以使用 ErrorAction
参数强制它(即使其成为 "terminating"),如下所示:
$sqlService = Get-Service -Name $instanceName -ErrorAction Stop