다음을 통해 공유


Debug-Job

실행 중인 백그라운드, 원격 또는 Windows PowerShell 워크플로 작업을 디버그합니다.

구문

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 실행 중인 작업 개체, 이름, ID 또는 인스턴스 ID를 입력으로 허용하고 실행 중인 스크립트에서 디버깅 세션을 시작합니다. 디버거 종료 명령은 작업을 중지하고 스크립트를 실행합니다. Windows PowerShell 5.0부터 종료 명령은 디버거를 분리하고 작업을 계속 실행할 수 있도록 합니다.

예제

예제 1: 작업 ID별로 작업 디버그

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"

이 명령은 ID가 3인 실행 중인 작업으로 나뉩니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지를 표시합니다.

형식:SwitchParameter
별칭:cf
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Id

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

형식:Int32
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-InstanceId

실행 중인 작업의 인스턴스 ID GUID를 지정합니다. 작업의 InstanceId 얻으려면 다음 예제와 같이 Get-Job cmdlet을 실행하여 결과를 Format-* cmdlet으로 파이핑합니다.

Get-Job | Format-List -Property Id,Name,InstanceId,State

형식:Guid
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Job

실행 중인 작업 개체를 지정합니다. 이 매개 변수를 사용하는 가장 간단한 방법은 변수에서 디버그하려는 실행 중인 작업을 반환하는 Get-Job 명령의 결과를 저장한 다음 변수를 이 매개 변수의 값으로 지정하는 것입니다.

형식:Job
Position:0
Default value:None
필수:True
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

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

형식:String
Position:0
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-WhatIf

cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.

형식:SwitchParameter
별칭:wi
Position:Named
Default value:False
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

System.Management.Automation.RemotingJob