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. Das folgende Beispiel veranschaulicht, wie Sie einen Haltepunkt in einer bestimmten Zeile eines Skripts festlegen:
Set-PSBreakPoint -Script "MyScript.ps1" -Line 23
Wenn Sie einen Haltepunkt basierend auf einer Zeile festlegen, müssen Sie beim Bearbeiten des Skripts vorsichtig sein. Beim Bearbeiten des Skripts können Sie Zeilen hinzufügen oder entfernen, und der Haltepunkt wirkt sich nicht auf denselben Code aus, den Sie ursprünglich beabsichtigt haben.
Das folgende Beispiel veranschaulicht, wie Sie einen Haltepunkt für einen bestimmten Befehl festlegen:
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 Parameter -Mode verwenden, um anzugeben, ob Sie unterbrechen möchten, wenn der Variablenwert gelesen, geschrieben oder beides wird. 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 jedoch den Parameter -Action verwenden, um Code anzugeben, der stattdessen ausgeführt wird. Auf diese Weise können Sie komplexe Vorgänge wie das Auswerten von Variablenwerten ausführen und nur unterbrechen, wenn der Wert außerhalb eines bestimmten Bereichs liegt.
Hinweis
Haltepunkte werden nicht als Teil des Skripts, sondern im Arbeitsspeicher gespeichert. Haltepunkte werden nicht zwischen mehreren Windows PowerShell-Eingabeaufforderungen geteilt und werden entfernt, wenn die Eingabeaufforderung geschlossen wird.
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. Darüber hinaus werden die Haltepunkte in der Windows PowerShell ISE beim Hinzufügen oder Entfernen von Zeilen zu Ihrem Skript 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.
Informationen zu den Inhalten von Variablen sind in Visual Studio Code auch einfacher zu finden. Nachdem ein Haltepunkt ausgelöst wurde und Sie sich im Debugger befinden, gibt es einen Abschnitt Variablen, der den Inhalt von Variablen anzeigt, damit Sie sie nicht abfragen müssen.