共用方式為


Debug-Job

對執行中的背景、遠端或 Windows PowerShell 工作流程工作進行偵錯。

Syntax

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>]

Description

Debug-Job Cmdlet 可讓您對在工作內執行的指令碼進行偵錯。 此 Cmdlet 專門設計來對 Windows PowerShell 工作流程工作、背景工作,以及在遠端工作階段中執行的工作進行偵錯。 Debug-Job 接受以執行中的工作物件、名稱、識別碼或執行個體識別碼做為輸入,並在執行的指令碼上啟動偵錯工作階段。 偵錯工具 quit 命令會停止工作和正在執行的指令碼。 從 Windows PowerShell 5.0 開始,exit 命令會中斷偵錯工具,並允許工作繼續執行。

範例

範例 1:依工作識別碼對工作進行偵錯

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"

此命令會中斷識別碼為 3 的執行中工作。

參數

-Confirm

在執行 Cmdlet 前提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

指定執行中工作的識別碼。 若要取得工作的識別碼,請執行 Get-Job Cmdlet。

Type:Int32
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

指定執行中工作的執行個體識別碼 GUID。 若要取得工作的 InstanceId,請執行 Get-Job Cmdlet,將結果使用管道傳送到 Format-* Cmdlet,如下列範例所示︰

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

依工作的好記名稱指定工作。 當您啟動工作時,您可以在 Cmdlet (例如 Invoke-Command 和 Start-Job) 中加入 JobName 參數指定工作名稱。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

System.Management.Automation.RemotingJob