Ich versuche festzustellen, ob ein Prozess auf mehreren Servern ausgeführt wird, und formatiere ihn dann in eine Tabelle.
get-process -ComputerName server1,server2,server3 -name explorer | Select-Object processname,machinename
Das ist der einfache Teil - Wenn der Prozess nicht existiert oder der Server nicht verfügbar ist, gibt Powershell einen großen hässlichen Fehler aus, verunstaltet die Tabelle und fährt nicht fort. Beispiel
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
Wie komme ich darum herum? Wenn ich trotzdem benachrichtigt werden möchte, wenn der Prozess nicht verfügbar ist oder ausgeführt wird.
quelle
get-process
meiner aktualisierten Antwort oben hinzu oder werfen Sie einen Blick darauf.Kurze Antwort: Fügen Sie
$ErrorActionPreference = 'SilentlyContinue'
am Anfang Ihres Codes hinzu, damit Sie nicht-ErrorAction SilentlyContinue
jeden Befehl hinzufügen müssenLange Antwort: https://www.gitbook.com/book/devopscollective/the-big-book-of-powershell-error-handling/details
quelle
$ErrorActionPreference = ‘SilentlyContinue’