【问题标题】:How do I try/catch inside invoke-command and continue? [duplicate]如何在调用命令中尝试/捕获并继续? [复制]
【发布时间】:2020-03-10 11:10:15
【问题描述】:

我试图在调用命令循环中捕获错误。我想捕捉,写一个我自己的错误,然后继续我的循环,但我不断打印出异常,我的捕捉什么也没做。下面的例子是我想要做的。

$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
            }

【问题讨论】:

标签: powershell try-catch invoke-command


【解决方案1】:

找不到指定的服务不被认为是关键 - 这是一个“非终止”错误。您仍然会收到错误消息/对象,但它(按设计)不足以调用 catch。您可以使用ErrorAction 参数强制它(即使其“终止”),如下所示:

$sqlService = Get-Service -Name $instanceName -ErrorAction Stop

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 2017-11-04
    • 2012-02-08
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多