如何测试 powershell 中的命令失败?

如何测试 powershell 中的命令失败?

我们在工作中使用一个名为 tectia ssh 的程序。它在 Windows 上启用了 ssh。

用法是

SSHG3 server02 "arp -a"

它将arp -a在 server02 上运行并给我结果。

嗯,有时 SSH 守护进程没有运行或者被冻结,所以我无法 ssh 进入。但由于这不是 Windows 的本机命令,所以我不知道如何测试它。

当连接失败时,它会说无法建立连接。

但我不知道该如何操作。我尝试这样做是$test = sshg3 server05因为现在那台机器不允许连接。

我没有得到任何控制台输出,并且我write-host $test得到的是一个空字段。它也没有对象属性。

我希望做类似的事情

if ($test.Text -contains 'failed'){
    write-host -foreground red "Connection failed"
}

答案1

调用命令后检查$LASTEXITCODE失败代码。非零通常表示错误。有时会根据失败类型的数量出现多个错误代码。或者,如果您喜欢更花哨的东西,您可以使用包装函数,就像 VSCode 团队所做的那样。

执行.ps1
https://github.com/microsoft/vscode/blob/4cd50470733dfaaf9cd3f2ee863cef89fadde4b2/build/azure-pipelines/win32/exec.ps1

相关内容