gpt4 book ai didi

powershell - 如何创建Powershell自定义错误输出?

转载 作者:行者123 更新时间:2023-12-03 08:09:14 25 4
gpt4 key购买 nike

我想制作一个小的PS脚本,以对照服务器列表检查服务登录帐户的状态。
我需要做的是,如果服务器关闭,它会显示一条自定义错误消息,告诉我列表中的哪台服务器处于脱机状态,而不是默认的笨重的红色错误消息。
到目前为止,这是我想出的。
这是Powershell在服务器出错时显示的RPC错误。

Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
At V:\HRG01\MPE_HRG01_Information-Technology\Share\ITSS-Core\Icinga Monitor Software\Service Check\Get-Service Log On.ps1:1 char:1
+ Get-WmiObject win32_service -ComputerName (Get-Content -path ".\serverlist.txt") ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException
+ FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
PS异常(exception)
PS c:\> $Error[0].Exception.GetType().FullName
System.Runtime.InteropServices.COMException
我在互联网上搜索了一个解决方案,这是我最后想出的解决方案,但是当然不起作用。
$servers= Get-Content -path ".\serverlist.txt"

foreach ($server in $servers)
{
try {
Get-WmiObject win32_service -ComputerName $server |
Where-Object {$_.Name -eq "icinga2"} -ErrorAction Continue |
format-list -Property PSComputerName,Name,StartName
}
catch [System.Runtime.InteropServices.COMException]
{
Write-Host "ERROR: $Server connection error"
}
}

Tee-Object .\Results.txt -Append
Read-Host -Prompt "Press Enter to exit"
非常感谢您的帮助

最佳答案

错误发生在Get-WmiObject而非Where-Object上。而且,您必须设置错误操作以停止捕获终止错误。

$servers= Get-Content -path ".\serverlist.txt"

foreach ($server in $servers)
{
try {
Get-WmiObject win32_service -ComputerName $server -ErrorAction Stop |
Where-Object {$_.Name -eq "icinga2"} |
format-list -Property PSComputerName,Name,StartName
}
catch [System.Runtime.InteropServices.COMException]
{
Write-Host "ERROR: $Server connection error"
}
}

Tee-Object .\Results.txt -Append
Read-Host -Prompt "Press Enter to exit"

关于powershell - 如何创建Powershell自定义错误输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62798955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com