Fehler unterdrücken mit SilentlyContinue in PowerShell
In PowerShell werden oft Aufgaben ausgeführt, in denen die Chance groß ist, dass ein Fehler auftritt. Wenn man nichts im PowerShell Script angibt, dann kann dieser Fehler das Script pausieren oder sogar komplett abbrechen. Abhilfe schafft der Parameter SilentlyContinue, welcher Fehler unterdrücken kann.
PowerShell Fehler unterdrücken mit -ErrorAction SilentlyContinue
Führt man eine Ausgabe aus kann es passieren, dass PowerShell mit roter Schrift einen Fehler ausgibt. Manchmal sind es keine schlimmen Fehler, wie beispielsweise beim Durchsuchen von Verzeichnissen. Hier durchsuchen wir ein Verzeichnis, haben aber auf eines keinen Zugriff. PowerShell meldet einen Fehler, da wir das SilentlyContinue noch nicht angegeben haben um den Fehler zu unterdrücken.
Get-ChildItem C:\Windows\ -Recurse -Filter *.txt
Wie man sieht werden die Verzeichnisse, auf die der Benutzer keine Lese-Berechtigung besitzt als Fehler ausgegeben. Nun kommt der Parameter -ErrorAction SilentlyContinue zum Einsatz. Nun können zwar die Ordner immer noch nicht gelesen werden, allerdings werden die Fehler jetzt unterdrückt.
Get-ChildItem C:\Windows\ -Recurse -Filter *.txt -ErrorAction SilentlyContinue
Nun werden die Fehler beim Durchsuchen unterdrückt, also nicht angezeigt. Das bedeutet, dass das PowerShell Script durch den Parameter SilentlyContinue ohne Fehler läuft und nicht abbricht.
In dem Fall, dass man den Fehler doch anzeigen möchte, ist dieser nicht verloren. In PowerShell gibt es die Variable $error
, welche den letzten Fehler automatisch beinhaltet. Diese kann man entweder ausgeben lassen, oder mit $error.Count
zählen. Ein Fehler beim Ausführen kann auch an der Execution Policy liegen.