Verwenden von Haltepunkten in Windows PowerShell-Skripts
Ein Haltepunkt hält ein Skript an und stellt eine interaktive Eingabeaufforderung zur Verfügung. An der interaktiven Eingabeaufforderung können Sie Variablenwerte abfragen oder ändern und das Skript dann fortsetzen. Sie verwenden Haltepunkte für die Problembehandlung von Skripts, wenn sie sich nicht wie erwartet verhalten.
An einer Windows PowerShell-Eingabeaufforderung können Sie Haltepunkte mithilfe des Cmdlets Set-PSBreakPoint festlegen. Haltepunkte können basierend auf der Zeile des Skripts, der Verwendung eines bestimmten Befehls oder einer bestimmten Variable festgelegt werden. In diesem Beispiel wird ein Haltepunkt an einer bestimmten Zeile eines Skripts festgelegt:
Set-PSBreakPoint -Script "MyScript.ps1" -Line 23
Wenn Sie einen Haltepunkt basierend auf einer Zeile festlegen, achten Sie beim Bearbeiten des Skripts darauf. Das Hinzufügen oder Entfernen von Zeilen kann den Haltepunkt vom ursprünglich beabsichtigten Code weg verschieben.
In diesem Beispiel wird ein Haltepunkt für einen bestimmten Befehl festgelegt:
Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"
Wenn Sie einen Haltepunkt basierend auf einem Befehl festlegen, können Sie Platzhalter einschließen. Sie können beispielsweise den Wert *-ADUser verwenden, um einen Haltepunkt für Get-ADUser, Set-ADUser, New-ADUser und Remove-ADUser auszulösen.
Gehen Sie wie folgt vor, um einen Haltepunkt für eine bestimmte Variable festzulegen:
Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite
Sie können den -Mode Parameter für Variablen verwenden, um zu ermitteln, ob sie beim Lesen, Schreiben oder Beides des Variablenwerts unterbrechen möchten. Die gültigen Werte sind Read, Write und ReadWrite.
Die Standardaktion für Set-PSBreakPoint ist break, wodurch die interaktive Eingabeaufforderung bereitgestellt wird. Sie können den -Action Parameter jedoch verwenden, um stattdessen Code anzugeben, der ausgeführt wird. Mit -Action, können Sie Variablenwerte auswerten und nur unterbrechen, wenn ein Wert außerhalb eines bestimmten Bereichs liegt.
Hinweis
Haltepunkte werden im Arbeitsspeicher und nicht als Teil des Skripts gespeichert. Haltepunkte werden nicht zwischen mehreren Windows PowerShell-Eingabeaufforderungen geteilt und werden entfernt, wenn die Eingabeaufforderung geschlossen wird.
Hinweis
Die Windows PowerShell ISE befindet sich nicht mehr in der aktiven Featureentwicklung und unterstützt nur Windows PowerShell 5.1 und früher. Für die entwicklung neuer Skripts ist Visual Studio Code mit der PowerShell-Erweiterung der empfohlene Editor.
PowerShell ISE
In der integrierten Windows PowerShell-Skriptumgebung (ISE) können Sie Haltepunkte basierend auf der Zeile festlegen. Optionen im Zusammenhang mit Haltepunkten finden sich im Menü Debuggen. Zeilen, die Sie als Haltepunkte konfigurieren, werden hervorgehoben, sodass sie leicht identifiziert werden können. Im Windows PowerShell ISE werden beim Hinzufügen oder Entfernen von Zeilen die Haltepunkte automatisch mit der richtigen Zeilennummer aktualisiert.
Visual Studio Code
In Microsoft Visual Studio Code können Sie Haltepunkte mit gegenüber der PowerShell ISE erweiterten Optionen festlegen und verwenden. Sie können bedingte Haltepunkte konfigurieren, die ausgelöst werden, wenn Variablen außerhalb eines Bereichs liegen oder einem bestimmten Wert entsprechen.
Visual Studio Code erleichtert auch die Überprüfung von variablen Inhalten. Wenn ein Haltepunkt ausgelöst wird, zeigt der Debugger einen Variablenabschnitt an, in dem die Inhalte der einzelnen Variablen angezeigt werden.