다음을 통해 공유


Debug-Process

로컬 컴퓨터에서 실행되는 하나 이상의 프로세스를 디버그합니다.

구문

Debug-Process
     [-Name] <String[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Process
     [-Id] <Int32[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Process
     -InputObject <Process[]>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

디버그 프로세스 cmdlet은 로컬 컴퓨터에서 실행 중인 하나 이상의 프로세스에 디버거를 연결합니다. 프로세스 이름 또는 프로세스 ID(PID)로 프로세스를 지정하거나 프로세스 개체를 이 cmdlet으로 파이프할 수 있습니다.

이 cmdlet은 현재 프로세스에 등록된 디버거를 연결합니다. 이 cmdlet을 사용하기 전에 디버거가 다운로드되고 올바르게 구성되었는지 확인합니다.

예제

예제 1: 컴퓨터의 프로세스에 디버거 연결

PS C:\> Debug-Process -Name "Windows Powershell"

이 명령은 컴퓨터의 Windows PowerShell 프로세스에 디버거를 연결합니다.

예제 2: 지정된 문자열로 시작하는 모든 프로세스에 디버거 연결

PS C:\> Debug-Process -Name "SQL*"

이 명령은 SQL로 시작하는 이름이 있는 모든 프로세스에 디버거를 연결합니다.

예제 3: 여러 프로세스에 디버거 연결

PS C:\> Debug-Process "Winlogon", "Explorer", "Outlook"

이 명령은 디버거를 Winlogon, Explorer 및 Outlook 프로세스에 연결합니다.

예제 4: 여러 프로세스 ID에 디버거 연결

PS C:\> Debug-Process -Id 1132, 2028

이 명령은 프로세스 ID 1132 및 2028이 있는 프로세스에 디버거를 연결합니다.

예제 5: Get-Process 사용하여 프로세스를 가져와서 디버거를 연결합니다.

PS C:\> Get-Process "Windows PowerShell" | Debug-Process

이 명령은 컴퓨터의 Windows PowerShell 프로세스에 디버거를 연결합니다. Get-Process cmdlet을 사용하여 컴퓨터에서 Windows PowerShell 프로세스를 가져와 파이프라인 연산자(|)를 사용하여 프로세스를 Debug-Process cmdlet으로 보냅니다.

특정 PowerShell 프로세스를 지정하려면 Get-ProcessID 매개 변수를 사용합니다.

예제 6: 로컬 컴퓨터의 현재 프로세스에 디버거 연결

PS C:\> $PID | Debug-Process

이 명령은 컴퓨터의 현재 Windows PowerShell 프로세스에 디버거를 연결합니다.

이 명령은 현재 Windows PowerShell 프로세스의 프로세스 ID를 포함하는 $PID 자동 변수를 사용합니다. 그런 다음 파이프라인 연산자(|)를 사용하여 프로세스 ID를 Debug-Process cmdlet으로 보냅니다.

$PID 자동 변수에 대한 자세한 내용은 about_Automatic_Variables 참조하세요.

예제 7: 여러 컴퓨터에서 지정된 프로세스에 디버거 연결

PS C:\> Get-Process -ComputerName "Server01", "Server02" -Name "MyApp" | Debug-Process

이 명령은 Server01 및 Server02 컴퓨터의 MyApp 프로세스에 디버거를 연결합니다.

이 명령은 Get-Process cmdlet을 사용하여 Server01 및 Server02 컴퓨터에서 MyApp 프로세스를 가져옵니다. 파이프라인 연산자를 사용하여 디버거를 연결하는 Debug-Process cmdlet에 프로세스를 보냅니다.

예제 8: InputObject 매개 변수를 사용하는 프로세스에 디버거 연결

PS C:\> $P = Get-Process "Windows PowerShell"
PS C:\> Debug-Process -InputObject $P

이 명령은 로컬 컴퓨터의 Windows PowerShell 프로세스에 디버거를 연결합니다.

첫 번째 명령은 Get-Process cmdlet을 사용하여 컴퓨터에서 Windows PowerShell 프로세스를 가져옵니다. 결과 프로세스 개체를 $P 변수에 저장합니다.

두 번째 명령은 Debug-Process cmdlet의 InputObject 매개 변수를 사용하여 $P 변수에 프로세스 개체를 제출합니다.

매개 변수

-Confirm

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

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

-Id

디버그할 프로세스의 프로세스 ID를 지정합니다. ID 매개 변수 이름은 선택 사항입니다.

프로세스의 프로세스 ID를 찾으려면 Get-Process입력합니다.

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

-InputObject

디버그할 프로세스를 나타내는 프로세스 개체를 지정합니다. 프로세스 개체 또는 프로세스 개체를 가져오는 명령(예: Get-Process cmdlet)을 포함하는 변수를 입력합니다. 프로세스 개체를 이 cmdlet으로 파이프할 수도 있습니다.

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

-Name

디버그할 프로세스의 이름을 지정합니다. 이름이 같은 프로세스가 두 개 이상 있는 경우 이 cmdlet은 해당 이름의 모든 프로세스에 디버거를 연결합니다. Name 매개 변수는 선택 사항입니다.

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

-WhatIf

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

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

입력

System.Int32, System.Diagnostics.Process, System.String

프로세스 ID(Int32), 프로세스 개체(System.Diagnostics.Process) 또는 프로세스 이름(String)을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 생성하지 않습니다.

참고

  • 이 cmdlet은 WMI(Windows Management Instrumentation) Win32_Process 클래스의 AttachDebugger 메서드를 사용합니다. 이 메서드에 대한 자세한 내용은 MSDN 라이브러리의 AttachDebugger 메서드 참조하세요.