次の方法で共有


Debug-Runspace

実行空間を使用して対話型デバッグ セッションを開始します。

構文

RunspaceParameterSet (既定)

Debug-Runspace
    [-Runspace] <Runspace>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Debug-Runspace
    [-Name] <String>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

IdParameterSet

Debug-Runspace
    [-Id] <Int32>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Debug-Runspace
    [-InstanceId] <Guid>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

説明

Debug-Runspace コマンドレットは、ローカルまたはリモートのアクティブな実行空間で対話型デバッグ セッションを開始します。 デバッグする実行空間を見つけるには、最初に Get-Process を実行して PowerShell に関連付けられているプロセスを検索し Enter-PSHostProcess次に Id パラメーターで指定されたプロセス ID を使用してプロセスにアタッチし、PowerShell ホスト プロセス内の実行空間を一覧表示 Get-Runspace

デバッグする実行空間を選択した後、実行空間が現在コマンドまたはスクリプトを実行している場合、またはスクリプトがブレークポイントで停止している場合、PowerShell は実行空間のリモート デバッガー セッションを開きます。 実行空間スクリプトは、リモート セッション スクリプトをデバッグするのと同じ方法でデバッグできます。

PowerShell ホスト プロセスにアタッチできるのは、プロセスを実行しているコンピューターの管理者である場合、またはデバッグするスクリプトを実行している場合のみです。 また、現在の PowerShell セッションを実行しているホスト プロセスに入ることはできません。 別の PowerShell セッションを実行しているホスト プロセスのみを入力できます。

例 1: リモート実行空間をデバッグする

この例では、リモート コンピューター WS10TestServer で開いている実行空間をデバッグします。 コマンドの最初の行では、リモート コンピューターで Get-Process を実行し、Windows PowerShell ホスト プロセスをフィルター処理します。 この例では、プロセス ID 1152 (Windows PowerShell ISE ホスト プロセス) をデバッグします。

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 番目のコマンドでは、 Enter-PSHostProcess を実行し、最初のコマンド 1152 で取得したホスト プロセスの ID を指定して、リモート サーバーで実行されている Windows PowerShell ISE ホスト プロセスに接続します。

4 番目のコマンドでは、 Get-Runspace を実行して、プロセス ID 1152 の使用可能な実行空間を一覧表示します。 ビジー状態の実行空間の ID 番号をメモします。デバッグするスクリプトを実行しています。

最後のコマンドでは、スクリプトを実行している開いている実行空間のデバッグを開始します。 TestWFVar1.ps1Debug-Runspaceを実行し、 ID パラメーターを追加して ID 2 で実行空間を識別します。 スクリプトにはブレークポイントがあるため、デバッガーが開きます。

パラメーター

-BreakAll

デバッガーがアタッチされると、現在の場所ですぐに中断することができます。

このパラメーターは PowerShell 7.2 で追加されました。

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Confirm

コマンドレットを実行する前に確認を求めるメッセージが表示されます。

パラメーターのプロパティ

型:SwitchParameter
規定値:True
ワイルドカードのサポート:False
DontShow:False
Aliases:cf

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Id

実行空間の ID 番号を指定します。 Get-Runspaceを実行して、実行空間 ID を表示できます。

パラメーターのプロパティ

型:Int32
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

IdParameterSet
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-InstanceId

実行空間をインスタンス ID ( Get-Runspace を実行して表示できる GUID) で指定します。

パラメーターのプロパティ

型:Guid
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

InstanceIdParameterSet
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Name

実行空間を名前で指定します。 Get-Runspace を実行して、実行空間の名前を表示できます。

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

NameParameterSet
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Runspace

実行空間オブジェクトを指定します。 このパラメーターの値を指定する最も簡単な方法は、フィルター選択された Get-Runspace コマンドの結果を含む変数を指定することです。

パラメーターのプロパティ

型:Runspace
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

RunspaceParameterSet
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-WhatIf

コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。

パラメーターのプロパティ

型:SwitchParameter
規定値:True
ワイルドカードのサポート:False
DontShow:False
Aliases:ウィスコンシン

パラメーター セット

(All)
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

Runspace

Get-Runspace コマンドの結果をこのコマンドレットにパイプできます。

メモ

Debug-Runspace は、Opened 状態のランスペースで動作します。 実行空間の状態が [オープン] から別の状態に変わると、その実行空間は実行リストから自動的に削除されます。 実行空間は、次の条件を満たす場合にのみ、実行リストに追加されます。

  • それがInvoke-Commandから来ている場合。つまり、 Invoke-Command GUID ID があります。
  • Debug-Runspace から来ている場合、つまり、Debug-Runspace GUID ID があります。
  • PowerShell ワークフローから送信され、そのワークフロー ジョブ ID が現在アクティブなデバッガー ワークフロー ジョブ ID と同じである場合。