Debug-Job

偵錯執行中的背景或遠端作業。

Syntax

Debug-Job
     [-Job] <Job>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-Name] <String>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-Id] <Int32>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-InstanceId] <Guid>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

Cmdlet Debug-Job 可讓您偵錯在作業內執行的腳本。 Cmdlet 的設計目的是偵錯在遠端會話中執行的 PowerShell 工作流程作業、背景工作和作業。 Debug-Job 接受執行中的作業物件、名稱、標識碼或實例識別碼做為輸入,並在正在執行的腳本上啟動偵錯會話。 調試程式 quit 命令會停止作業並執行腳本。 命令 exit 會中斷調試程式中斷連結,並允許作業繼續執行。

範例

範例 1:依作業標識符對作業進行偵錯

此命令會分成標識碼為 3 的執行中作業。

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"

參數

-BreakAll

可讓您在除錯程式附加時立即在目前位置中斷。

此參數已在PowerShell 7.2中新增。

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

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

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

以作業的易記名稱指定作業。 當您啟動作業時,您可以在和 Start-JobInvoke-Command Cmdlet 中新增 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