Skip to the main content.

PowerShell-Erfolgsrezepte – die Profi-Tipps für effektives Scripting

Bahn frei, schneller zum Ziel! Streame Fehler direkt zum Handler

Hier kommt die nächste Strategie zur Fehlerbehandlung, nachdem wir zuvor die Echtzeit und verzögerte Fehlerbehandlung kennen gelernt haben.

Leite Fehler direkt zum passenden Handler

Es gibt zwei Standardstrategien für die Fehlerbehandlung, die bereits in dieser Serie behandelt wurden:

  • Echtzeit-Fehlerbehandlung mit Try/Catch: Wird sofort beim Auftreten des Fehlers aufgerufen, bricht aber das Cmdlet ab, das nach dem Auftreten des Fehlers nicht fortgesetzt werden kann.
  • Verzögerte Fehlerbehandlung mit Fehlervariable: Fehler werden gesammelt und können erst behandelt werden, nachdem ein Cmdlet abgeschlossen wurde. 

Hier ist der dritte Ansatz, der die Vorteile der beiden Standardansätze kombinieren kann: Er behandelt Fehler in Echtzeit, sofort wenn sie auftreten, und er erfordert nicht, dass Cmdlets abbrechen oder ‑ErrorAction Stop verwenden:


Get-ChildItem -Path C:\Windows -Depth 1 -Filter *.log 2>&1 | ForEach-Object { if ($_ -is [System.Management.Automation.ErrorRecord]) { $text = $_ | Convert-ErrorRecord | Out-String Write-Host $text } else { $_ } }

 

Wiedu siehst, verwendet das Cmdlet (in diesem Beispiel Get‑ChildItem) überhaupt keine ‑ErrorAction. Es läuft völlig unbeeinflusst von jeglicher Fehlerbehandlung.

Stattdessen werden alle ausgegebenen Fehler aus Stream #2 in den regulären Ausgabestream #1 umgeleitet und können nun die Pipeline hinunterlaufen. Auf diese Weise können sie in Echtzeit gestreamt werden.

Das Cmdlet ForEach‑Object kann dann die Ausnahmen von Stream #2 von der regulären Ausgabe von Stream #1 trennen und die empfangenen Ausnahmen in Echtzeit behandeln, während das Cmdlet gleichzeitig seine Arbeit ohne Unterbrechung erledigen kann.

 

Good2know

Dein ultimativer PowerShell-Spickzettel

Entfessele das volle Potenzial von PowerShell mit unserem praktischen Poster. Egal, ob frischer Einsteiger oder erfahrener Profi, dieser Spickzettel ist so konzipiert, dass du schnell die wichtigsten und am häufigsten verwendeten Cmdlets findest.

Das Poster ist zum Download und in Papierform erhältlich.

PowerShell Poster 2023

Hol dir hier dein Poster!

 

 

Weiterführende Links 

Zusammenhängende Posts

3 min read

Für besseren Überblick: Wandle Fehlerobjekte in Datenobjekte um

Müde vom Jonglieren mit der PowerShell-Fehlerbehandlung? Hier kommt ein Überblick über verschiedene Strategien, mit...

4 min read

Mehr Ordnung in PowerShell: lagere Konfigurationsdaten einfach aus

Verabschiede dich von fest codierten Pfaden und Einstellungen! Vereinfache deine PowerShell-Skripte, indem du...

2 min read

Werte PowerShell-Funktionen auf durch Hilfe- und Tutorial-Links

Möchtest du deine PowerShell-Funktionen benutzerfreundlicher gestalten? Entdecke, wie du ganz einfach hilfreiche Links...

Über den Autor: