Debug-Job

除錯正在執行的背景或遠端工作。

語法

JobParameterSet (預設值)

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

JobNameParameterSet

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

JobIdParameterSet

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

JobInstanceIdParameterSet

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

Description

這個 Debug-Job cmdlet 讓你能除錯正在工作中執行的腳本。 此指令小程式設計用來除錯 PowerShell 工作流程工作、背景工作以及遠端工作階段執行的工作。 Debug-Job 接受正在執行的工作物件、名稱、ID 或實例 ID 作為輸入,並對其執行的腳本啟動除錯工作階段。 除錯指令 quit 會停止工作並執行腳本。 此 exit 指令會分離除錯器,並允許工作繼續執行。

範例

範例 1:依工作 ID 除錯工作

此指令會入侵一個 ID 為 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中新增。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:參見

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Id

指定執行中的作業的 ID 編號。 要取得作業的 ID 編號,執行 Get-Job cmdlet。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

JobIdParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InstanceId

指定執行中的作業的實例 ID GUID。

參數屬性

類型:Guid
預設值:None
支援萬用字元:False
不要顯示:False

參數集

JobInstanceIdParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Job

指定一個正在執行的工作物件。 使用這個參數最簡單的方法是將一個指令的結果 Get-Job 儲存在一個變數中,然後指定該變數作為該參數的值。

參數屬性

類型:Job
預設值:None
支援萬用字元:False
不要顯示:False

參數集

JobParameterSet
Position:0
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Name

以工作名稱指定工作。 當你開始工作時,可以透過在 cmdlet Invoke-CommandStart-Job和 中加入 JobName 參數來指定工作名稱。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False

參數集

JobNameParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:威斯康辛

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

System.Management.Automation.RemotingJob