为什么$ error [0] .tostring()。contains无法正常工作?

时间:2019-02-12 01:18:05

标签: powershell

我有以下try-catch语句来处理数据库表/维度。由于某种原因,如果我关闭服务器上的(MSSQLSERVER)服务,则第一个if语句捕获

  

确保服务器正在运行

从不被触摸,而是进入第二个if条件并写入主机

  

错误处理维度:无法建立连接。确保这件事   服务器正在运行。

        try {
                Invoke-ProcessTable -DatabaseName "$DB" -Server "$server" -RefreshType "Full" -TableName "sometable" > $null

                write-host "Processing completed!"
        }
        catch{
                if($error[0].tostring().contains("Ensure that the server is running"))
                {
                    write-host "`r`nProcessing failed!`r`n(MSSQLSERVER) service is not running on $server!"
                    #$exit = 1
                }
                elseif ($error[0])
                {
                    Write-Host "Error Processing dimension: $($error[0])"
                }
        }

如果服务未在服务器上运行,则异常消息如下:

  

无法建立连接。确保服务器正在运行。

那么$error[0].tostring().contains("Ensure that the server is running")

怎么了?

它应该输出以下内容:

  

处理失败!(MSSQLSERVER)服务未在服务器上运行!

0 个答案:

没有答案