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