Debug-Runspace
runspace を使用して対話型デバッグ セッションを開始します。
構文
Debug-Runspace
[-Runspace] <Runspace>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Name] <String>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Id] <Int32>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-InstanceId] <Guid>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
コマンドレットは Debug-Runspace
、ローカルまたはリモートのアクティブな実行空間を使用して対話型デバッグ セッションを開始します。 デバッグする実行空間を見つけるには、最初に を実行 Get-Process
して PowerShell に関連付けられているプロセスを検索し、次 Enter-PSHostProcess
に Id パラメーターで 指定されたプロセス ID を使用してプロセスにアタッチし、次 Get-Runspace
に PowerShell ホスト プロセス内の実行空間を一覧表示します。
デバッグする実行空間を選択した後、runspace が現在コマンドまたはスクリプトを実行している場合、またはスクリプトがブレークポイントで停止している場合、PowerShell は実行空間のリモート デバッガー セッションを開きます。 runspace スクリプトは、リモート セッション スクリプトのデバッグと同じ方法でデバッグできます。
PowerShell ホスト プロセスにアタッチできるのは、プロセスを実行しているコンピューターの管理者であるか、デバッグするスクリプトを実行している場合のみです。 また、現在の PowerShell セッションを実行しているホスト プロセスを入力することはできません。 入力できるのは、別の PowerShell セッションを実行しているホスト プロセスのみです。
例
例 1: リモート実行空間をデバッグする
この例では、リモート コンピューター WS10TestServer で開いている実行空間をデバッグします。 コマンドの最初の行では、リモート コンピューターで を実行Get-Process
し、Windows PowerShellホスト プロセスをフィルター処理します。 この例では、ISE ホスト プロセスWindows PowerShellプロセス ID 1152 をデバッグします。
PS C:\> Get-Process -ComputerName "WS10TestServer" -Name "*powershell*"
Handles WS(K) VM(M) CPU(s) Id ProcessName
------- ----- ----- ------ -- -----------
377 69912 63 2.09 2420 powershell
399 123396 829 4.48 1152 powershell_ise
PS C:\> Enter-PSSession -ComputerName "WS10TestServer"
[WS10TestServer]:PS C:\> Enter-PSHostProcess -Id 1152
[WS10TestServer:][Process:1152]: PS C:\Users\Test\Documents> Get-Runspace
Id Name ComputerName Type State Availability
-- ---- ------------ ---- ----- ------------
1 Runspace1 WS10TestServer Remote Opened Available
2 RemoteHost WS10TestServer Remote Opened Busy
[WS10TestServer][Process:1152]: PS C:\Users\Test\Documents> Debug-Runspace -Id 2
Hit Line breakpoint on 'C:\TestWFVar1.ps1:83'
At C:\TestWFVar1.ps1:83 char:1
+ $scriptVar = "Script Variable"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Process:1152]: [RSDBG: 2]: PS C:\> >
2 番目のコマンドでは、 を実行 Enter-PSSession
して WS10TestServer でリモート セッションを開きます。 3 番目のコマンドでは、 を実行し、最初のコマンド 1152 で取得したホスト プロセスの ID を指定して、リモート サーバーで実行Enter-PSHostProcess
されている WINDOWS POWERSHELL ISE ホスト プロセスにアタッチします。
4 番目のコマンドでは、 を実行して、プロセス ID 1152 で使用可能な実行 Get-Runspace
空間を一覧表示します。
ビジー状態の実行空間の ID 番号をメモします。デバッグするスクリプトが実行されています。
最後のコマンドでは、 を実行し、 を実行し、TestWFVar1.ps1
ID パラメーターを追加して実行空間を ID 2 で識別することで、スクリプトを実行Debug-Runspace
している開かれた実行空間のデバッグを開始します。 スクリプトにブレークポイントがあるため、デバッガーが開きます。
パラメーター
-BreakAll
デバッガーがアタッチされたときに、現在の場所ですぐに中断できます。
このパラメーターは PowerShell 7.2 で追加されました。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
実行スペースの ID 番号を指定します。 を実行 Get-Runspace
して、実行空間 ID を表示できます。
Type: | Int32 |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceId
実行空間をインスタンス ID で指定します。GUID は を実行 Get-Runspace
することで表示できます。
Type: | Guid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
実行空間を名前で指定します。 を実行 Get-Runspace
して、実行スペースの名前を表示できます。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Runspace
runspace オブジェクトを指定します。 このパラメーターの値を指定する最も簡単な方法は、フィルター処理された Get-Runspace
コマンドの結果を含む変数を指定することです。
Type: | Runspace |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
コマンドの Get-Runspace
結果をこのコマンドレットにパイプできます。
メモ
Debug-Runspace
は、Opened 状態の実行空間で機能します。 実行空間の状態が [開かれた] から別の状態に変更された場合、その実行空間は実行中の一覧から自動的に削除されます。 実行スペースは、次の条件を満たす場合にのみ、実行リストに追加されます。
- Invoke-Command から取得される場合は 。つまり、GUID ID を持ちます
Invoke-Command
。 - から
Debug-Runspace
取得される場合は、GUID ID を持ちますDebug-Runspace
。 - PowerShell ワークフローから取得され、そのワークフロー ジョブ ID が現在アクティブなデバッガー ワークフロー ジョブ ID と同じである場合。