Windows PowerShell スクリプトでブレークポイントを使用する

完了

"ブレークポイント" によってスクリプトが一時停止し、対話型プロンプトが表示されます。 対話型プロンプトで、変数値のクエリまたは変更を行った後で、スクリプトを続行できます。 スクリプトが期待どおりに動作しない場合、ブレークポイントを使用してそのスクリプトをトラブルシューティングします。

Windows PowerShell プロンプトでは、 Set-PSBreakPoint コマンドレットを使用してブレークポイントを設定できます。 ブレークポイントは、スクリプトの行、使用されている特定のコマンド、または使用されている特定の変数に基づいて設定できます。 次の例は、スクリプトの特定の行にブレークポイントを設定する方法を示しています。

Set-PSBreakPoint -Script "MyScript.ps1" -Line 23

行に基づいてブレークポイントを設定する場合、スクリプトを編集するときに注意が必要になります。 スクリプトを編集するときに、行を追加または削除した場合、当初対象としていたコードと同じコードにブレークポイントが作用しません。

次の例は、特定のコマンドにブレークポイントを設定する方法を示しています。

Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"

コマンドに基づいてブレークポイントを設定する場合は、ワイルドカードを含めることができます。 たとえば、値 *-ADUser を使用して、Get-ADUserSet-ADUserNew-ADUser、Remove-ADUser のブレークポイントをトリガーできます

特定の変数にブレークポイントを設定するには、次のようにします。

Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite

変数の -Mode パラメーターを使用すると、変数値の読み取り、書き込み、またはその両方の場合に中断するかどうかを識別できます。 有効な値は、 読み取り書き込みおよび ReadWrite です

Set-PSBreakPoint の既定のアクションは break であり、対話型プロンプトが表示されます。 ただし、 -Action パラメーターを使用して、代わりに実行するコードを指定できます。 これにより、変数値の評価や、値が特定の範囲外の場合にのみ中断するなど、複雑な操作を実行できます。

注意

ブレークポイントは、スクリプトの一部としてではなく、メモリに格納されます。 ブレークポイントは、複数の Windows PowerShell プロンプト間で共有されず、プロンプトが閉じられると削除されます。

PowerShell ISE

Windows PowerShell Integrated Scripting Environment (ISE) では、行に基づいてブレークポイントを設定できます。 ブレークポイントに関連するオプションは、[ デバッグ ] メニューにあります。 ブレークポイントとして構成する行は強調表示され、簡単に識別できます。 また、Windows PowerShell ISE では、スクリプトに行を追加したり削除したりすると、ブレークポイントが正しい行番号で自動的に更新されます。

Visual Studio Code

Microsoft Visual Studio Code では、PowerShell ISE よりも高度なオプションを使用してブレークポイントを設定および使用できます。 変数が範囲外の場合、または特定の値と一致したときにトリガーされる条件付きブレークポイントを構成できます。

Visual Studio Code では、変数の内容に関する情報も見つけやすくなっています。 ブレークポイントがトリガーされ、デバッガーに移動すると、変数の内容を表示する 変数 セクションがあるため、それらを問い合させる必要はありません。