次の方法で共有


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