Debugging in PowerShell Studio 2017 – etwas mehr

Nachdem in meinem letzten Beitrag das Grundlegende Debugging mit dem PowerShell Studio 2017 gezeigt wurde, geht es diesmal um die weiteren Funktionen die PowerShell Studio im Bereich Debugging mit sich bringt. Im Breakpoint Menü befindet sich der “Edit Breakpoint” Menüpunkt, dieses Fenster beinhaltet alle gesetzten Haltepunkte, bzw. abhängige Haltepunkte. Eine praktische Übersicht und auch super um die Nachfolgenden Haltepunkte zu definieren.

breakpoint menu

 EditBPMenu

Variable Breakpoints

Bei der Auswahl von “Set Variable Breakpoint” öffnet sich ein Fenster bei dem es die Möglichkeit gibt Haltepunkte anhand von Variablen zu definieren. Dabei kann die entsprechende Variable ausgewählt werden und ob bei schreiben, lesen oder beiden Aktionen in den Debug Modus gewechselt werden soll.

Setvariablepreakpointvariablesetvariablebreakpointwriteread

Function Breakpoints

Bei “Set Function Breakpoint” öffnet sich auch ein Fenster in dem Funktionen als Haltepunkte definiert werden können. Das bedeutet, immer wenn diese Funktion aufgerufen wird, stoppt das Skript und wechselt in den Debugger. Im Auswahlfeld sind die im Skript selbst geschriebenen Funktionen zu finden. Es ist aber auch möglich andere Cmdlets anzugeben, welche zum Beispiel innerhalb von Funktionen aufgerufen werden. Eine praktische Sache, wenn Parameter überprüft werden müssen, welche übergeben werden.

setfunctionbreakpoint2 setfunctionbreakpoint1

Conditional Breakpoints

Am spannendsten finde ich jedoch die Conditional Breakpoints (Bedingten Haltepunkte). In den Fenstern zum Erstellen von Variable-, Function – Breakpoints gibt es auch den Action Bereich. In diesem Feld kann definiert werden, was bei dem Aufruf der Funktion, oder dem schreiben/Lesen der Variable ausgeführt werden soll. So können Logeinträge verfasst werden oder Bestimmte Ausgabetexte. Das Skript wechselt dabei nicht in den Debug-Modus sondern führt die Aktion aus. Wie kann man sich dies zu Nutze machen?

 

Meine Funktion ist recht einfach, beschreibt das Verhalten aber sehr gut. Ich möchte, dass es zu einem Stopp kommt, wenn in die Variable $txt geschrieben wird und $number den Wert 5 hat. Es muss also ein Variablen Haltepunkt auf die Variable $txt gesetzt werden. Immer wenn in die Variable geschrieben wird, soll geprüft werden ob $number = 5 ist. Mit dem Set Variable Breakpoint Kontext ist dies ein Kinderspiel.

conditionalBP1conditionalBP2conditionalBP3

Sollen nun 100 Server verarbeitet werden und bei dem 80 treten Probleme aus, muss man nicht 80-mal F5 drücken, sondern definiert so einen Bedingten Haltepunkt. Eine sehr coole Sache wie ich finde.

Euch Viel Spaß mit den Debug Möglichkeiten in PowerShell Studio

Über Andreas Bittner

MCSA Server 2016, MCSA Server 2012R2, Exchange 2010 & SharePoint Devop
Dieser Beitrag wurde unter Grundlage, PowerShell Studio, Scripting abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

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

*