다음을 통해 공유


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 는 실행 중인 작업 개체, 이름, 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에 추가되었습니다.

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

실행 중인 작업의 ID 번호를 지정합니다. 작업의 ID 번호를 가져오려면 cmdlet을 Get-Job 실행합니다.

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

-InstanceId

실행 중인 작업의 인스턴스 ID 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

작업의 이름을 사용하여 작업을 지정합니다. 작업을 시작할 때 JobName 매개 변수를 cmdlet과 같은 Start-JobInvoke-Command cmdlet에 추가하여 작업 이름을 지정할 수 있습니다.

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