PowerShell Best Practices für Intune: Fehlerbehandlung

Warum Fehlerbehandlung wichtig ist

Wenn Skripte Operationen wie Dateioperationen oder Prozessverwaltung durchführen, können unerwartete Fehler auftreten. Ohne geeignete Fehlerbehandlung bleiben diese oft unbemerkt, was die Fehlersuche erschwert.

Richtige Fehlerbehandlung:
• Erhöht die Stabilität des Skripts
• Liefert hilfreiche Informationen zum Debuggen
• Verhindert, dass Skripte unerwartet abbrechen

Verwendung von Try-Catch-Blöcken

Ein Grundbaustein der Fehlerbehandlung in PowerShell ist der Einsatz von try-catch-Blöcken. So kann man einen Befehl ausführen und eventuelle Fehler sauber abfangen:
try {
Get-Content -Path „C:nichtvorhandeneDatei.txt“
} catch {
Write-Output „Etwas ist schiefgelaufen: $_“
}

Damit dies zuverlässig funktioniert, sollte der ErrorAction-Parameter auf Stop gesetzt werden, um auch nicht-abbrechende Fehler zu erfassen:

Get-Content -Path „C:nichtvorhandeneDatei.txt“ -ErrorAction Stop

Logging mit $_ und .Exception.Message

Gute Logs sind Gold wert. Wenn man eigene Meldungen mit den detaillierten Fehlermeldungen von PowerShell kombiniert, wird schnell klar, was schiefgelaufen ist:

catch {
Write-Output „Fehler abgefangen: $($_.Exception.Message)“
}

oolesche Überprüfung mit $? und Exit-Code mit $LastExitCode

Mit $? lässt sich überprüfen, ob der letzte Befehl erfolgreich war. Es gibt True bei Erfolg und False bei einem Fehler zurück:

if ($?) {
Write-Output „Operation war erfolgreich.“
} else {
Write-Output „Operation ist fehlgeschlagen.“
}

Für genauere Statusprüfungen liefert $LastExitCode den Exit-Code des zuletzt ausgeführten nativen Programms:

ping 127.0.0.1
Write-Output $LastExitCode # Gibt 0 zurück

ping 256.256.256.256
Write-Output $LastExitCode # Gibt 1 zurück

Globale Fehlerunterdrückung mit $ErrorActionPreference

Durch das Setzen von $ErrorActionPreference = ‚SilentlyContinue‘ kann man globale Fehlermeldungen unterdrücken, um die Logs übersichtlicher zu halten:

$ErrorActionPreference = ‚SilentlyContinue‘

⚠️ Vorsicht: Das kann jedoch auch kritische Fehler verschleiern – also nur gezielt einsetzen!

Fazit
Nutze strukturierte try-catch-Blöcke, aussagekräftige Logs und eine saubere Exit-Code-Behandlung – so wird dein Scripting-Alltag deutlich entspannter!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen