我正在尝试查看一个进程是否在多台服务器上运行,然后将其格式化为表格。
get-process -ComputerName server1,server2,server3 -name explorer | Select-Object processname,machinename
Run Code Online (Sandbox Code Playgroud)
这是最简单的部分 - 当进程不存在或服务器不可用时,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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?如果进程不可用或正在运行,我仍希望收到通知。
Bar*_*Vos 66
添加-ErrorAction SilentlyContinue到您的命令中。
当它不是错误而是未处理的异常时,您应该添加-EV Err -EA SilentlyContinue, 以捕获异常。(EA是 的别名ErrorAction)
然后,您可以通过查看脚本来评估错误 $Err[0]
小智 18
简短回答:$ErrorActionPreference = 'SilentlyContinue'在代码的开头
添加,这样您就不需要添加-ErrorAction SilentlyContinue到每个命令中
长答案: https : //www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-handling/details
| 归档时间: |
|
| 查看次数: |
211204 次 |
| 最近记录: |