3 min read
Skriptabbruch verhindern: PowerShell-Fehler clever behandeln
Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...
PowerShell-Erfolgsrezepte – die Profi-Tipps für effektives Scripting
Du bist mit try...catch vertraut? Exceptions kannst du mit Trap-Anweisungen behandeln. Kurz und knackig kommt hier der nächste Tipp von Aleksandar & Tobias:
Die meisten fortgeschrittenen PowerShell-Nutzer sind mit der Try-Catch Fehlerbehandlung vertraut. Hier ist ein Beispiel:
try
{
Write-Host 'Previous Command'
$result = Get-ChildItem -Path $env:windir -Depth 1 -Filter *.log -ErrorAction Stop
Write-Host 'Next Command'
}
catch
{
$_.CategoryInfo | Select-Object -Property Category, TargetName
}
Diese Vorgehensweise kann erwünscht sein, und in diesem Fall ist try...catch die beste Wahl.
Wenn jedoch keine Befehle übersprungen werden sollen, kann stattdessen eine Trap-Anweisung verwendet werden (siehe unten). Und wenn du ein Cmdlet nicht abbrechen, sondern stattdessen Fehler auswerten möchtest, nachdem das Cmdlet abgeschlossen wurde, solltest du unseren nächsten Tipp in dieser Reihe lesen.
Entferne das Schlüsselwort try und die {} Klammern und ersetze catch durch trap, füge continue hinzu und du erhältst:
Write-Host 'Previous Command'
$result = Get-ChildItem -Path $env:windir -Depth 1 -Filter *.log -ErrorAction Stop
Write-Host 'Next Command'
trap
{
$_.CategoryInfo | Select-Object -Property Category, TargetName
continue
}
Entfalte das volle Potential von PowerShell mit unserem praktischen Poster. Egal ob Anfänger oder erfahrener Profi, dieses Cheat Sheet ist darauf ausgelegt, dein Anlaufpunkt für die wichtigsten und am häufigsten verwendeten Cmdlets zu sein.
Zum Download oder ausgedruckt zum Aufhängen an deiner Wand.
Okt 17, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Da $error eine globale Variable ist, solltest du in Erwägung ziehen, eine eigene Protokollierungsvariable für die...
Okt 10, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Du bist mit try...catch vertraut? Exceptions kannst du mit Trap-Anweisungen behandeln. Kurz und knackig kommt hier der...
Okt 30, 2024 by Aleksandar Nikolić und Dr. Tobias Weltner
Verabschiede dich von fest codierten Pfaden und Einstellungen! Vereinfache deine PowerShell-Skripte, indem du...
Tobias Weltner und Aleksandar Nikolić haben gemeinsam die Blogpost-Reihe „Tobias&Aleksandars PowerShell-Tipps“ verfasst. Deshalb möchten wir euch beide hier vorstellen:
----------------------------
Aleksandar Nikolić ist ein Microsoft Azure MVP und Mitbegründer von PowerShellMagazine.com, der ultimativen Online-Ressource für PowerShell-Enthusiasten. Mit über 18 Jahren Erfahrung in der Systemadministration ist er ein angesehener Trainer und Redner, der rund um den Globus reist, um sein Wissen und seine Fähigkeiten über Azure, Entra und PowerShell weiterzugeben. Er hat auf IT-Veranstaltungen wie Microsoft Ignite, ESPC, NIC, CloudBrew, NTK und der PowerShell Conference Europe gesprochen.
----------------------------
Tobias ist ein langjähriger Microsoft MVP und war von Anfang an an der Entwicklung von PowerShell beteiligt. Er hat die PowerShell IDE „ISESteroids“ erfunden, zahlreiche Bücher über PowerShell für Microsoft Press und O'Reilly geschrieben, die PowerShell Conference EU (psconf.eu) gegründet und trägt derzeit als Mitglied der „Microsoft Cmdlet Working Group“ zur Weiterentwicklung der PowerShell bei. Tobias gibt sein Wissen als Berater in Projekten und als Trainer in Inhouse-Schulungen für zahlreiche Unternehmen und Agenturen in ganz Europa weiter.