Debug-Job
実行中のバックグラウンド、リモート、またはワークフロー ジョブWindows PowerShellデバッグします。
構文
Debug-Job
[-Job] <Job>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Job
[-Name] <String>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Job
[-Id] <Int32>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Job
[-InstanceId] <Guid>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Debug-Job コマンドレットを使用すると、ジョブ内で実行されているスクリプトをデバッグできます。 コマンドレットは、リモート セッションで実行されているワークフロー ジョブ、バックグラウンド ジョブ、ジョブWindows PowerShellデバッグするように設計されています。 Debug-Job は、実行中のジョブ オブジェクト、名前、ID、またはインスタンス ID を入力として受け入れ、実行中のスクリプトでデバッグ セッションを開始します。 デバッガーの 終了 コマンドは、ジョブを停止し、スクリプトを実行します。 Windows PowerShell 5.0 以降、exit コマンドはデバッガーをデタッチし、ジョブの実行を継続できるようにします。
例
例 1: ジョブ ID でジョブをデバッグする
PS C:\> Debug-Job -ID 3
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
3 Job3 RemoteJob Running True PowerShellIx TestWFDemo1.ps1
Entering debug mode. Use h or ? for help.
Hit Line breakpoint on 'C:\TestWFDemo1.ps1:8'
At C:\TestWFDemo1.ps1:8 char:5
+ Write-Output -InputObject "Now writing output:"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[DBG:PowerShellIx]: PS C:\> > list
3:
4: workflow SampleWorkflowTest
5: {
6: param ($MyOutput)
7:
8:* Write-Output -InputObject "Now writing output:"
9: Write-Output -Input $MyOutput
10:
11: Write-Output -InputObject "Get PowerShell process:"
12: Get-Process -Name powershell
13:
14: Write-Output -InputObject "Workflow function complete."
15: }
16:
17: # Call workflow function
18: SampleWorkflowTest -MyOutput "Hello"
このコマンドは、ID が 3 の実行中のジョブに分割されます。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
実行中のジョブの ID 番号を指定します。 ジョブの ID 番号を取得するには、Get-Job コマンドレットを実行します。
Type: | Int32 |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceId
実行中のジョブのインスタンス ID GUID を指定します。 ジョブの InstanceId を 取得するには、 Get-Job コマンドレットを実行し、次の例に示すように結果を Format-* コマンドレットにパイプします。
Get-Job | Format-List -Property Id,Name,InstanceId,State
Type: | Guid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Job
実行中のジョブ オブジェクトを指定します。 このパラメーターを使用する最も簡単な方法は、デバッグする実行中のジョブを返す Get-Job コマンドの結果を変数に保存し、変数をこのパラメーターの値として指定することです。
Type: | Job |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
ジョブのフレンドリ名でジョブを指定します。 ジョブを開始するときに、Invoke-Command や Start-Job などのコマンドレットで JobName パラメーターを追加することで、ジョブ名を指定できます。
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
System.Management.Automation.RemotingJob