如何忽略Powershell中的错误并让它继续?

我正在尝试查看一个进程是否在多个服务器上运行,然后将其格式化为一个表格。

get-process -ComputerName server1,server2,server3 -name explorer | Select-Object processname,machinename 

这就是最简单的部分 – 当进程不存在或服务器不可用时,powershell会输出一个很大的丑陋的错误,混淆了表并且不会继续。 例

 Get-Process : Couldn't connect to remote machine.At line:1 char:12 + get-process <<<< -ComputerName server1,server2,server3 -name explorer | format-table processname,machinename + CategoryInfo : NotSpecified: (:) [Get-Process], InvalidOperatio nException + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Power Shell.Commands.GetProcessCommand 

我如何解决这个问题? 如果我仍然希望得到通知,如果进程不可用或正在运行。

添加-ErrorAction SilentlyContinue继续你的命令。

当它不是一个错误,而是一个未处理的exception,你应该添加-EV Err -EA "SilentlyContinue"为了赶上例外。 ( EAErrorAction的别名)

然后,您可以通过查看$Err[0]来评估脚本中的错误。

简短的回答:在你的代码开始处添加$ErrorActionPreference = 'SilentlyContinue' ,所以你不需要添加-ErrorAction SilentlyContinue继续每一个命令

长答案: https //www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-handling/details