Debug-Process
로컬 컴퓨터에서 실행 중인 하나 이상의 프로세스를 디버깅합니다.
구문
Debug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>]
Debug-Process [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>]
Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParameters>]
설명
Debug-Process cmdlet은 로컬 컴퓨터에서 실행 중인 하나 이상의 프로세스에 디버거를 연결합니다. 프로세스 이름 또는 프로세스 ID(PID)로 프로세스를 지정하거나 프로세스 개체를 Debug-Process로 파이프할 수 있습니다.
Debug-Process는 프로세스에 대해 현재 등록되어 있는 디버거를 연결합니다. 이 cmdlet을 사용하기 전에 디버거를 다운로드하여 올바르게 구성했는지 확인하십시오.
매개 변수
-Id <Int32[]>
디버깅할 프로세스의 프로세스 ID를 지정합니다. 매개 변수 이름("-Id")은 선택 사항입니다.
프로세스의 프로세스 ID를 찾으려면 "Get-Process"를 입력합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-InputObject <Process[]>
디버깅할 프로세스를 나타내는 프로세스 개체를 지정합니다. 프로세스 개체가 포함된 변수를 입력하거나 프로세스 개체를 가져오는 명령(예: Get-Process 명령)을 입력합니다. 또한 프로세스 개체를 Debug-Process로 파이프할 수 있습니다.
필수 여부 |
true |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-Name <string[]>
디버깅할 프로세스의 이름을 지정합니다. 이름이 같은 프로세스가 두 개 이상 있는 경우 Debug-Process는 해당 이름의 모든 프로세스에 디버거를 연결합니다. 매개 변수 이름("Name")은 선택 사항입니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Confirm
명령을 실행하기 전에 확인 메시지를 표시합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-WhatIf
명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Int32, System.Diagnostics.Process, System.String 프로세스 ID(Int32), 프로세스 개체(System.Diagnostics.Process) 또는 프로세스 이름(String)을 Debug-Process로 파이프할 수 있습니다. |
출력 |
없음 이 cmdlet은 어떠한 출력도 생성하지 않습니다. |
참고
이 cmdlet은 WMI(Windows Management Instrumentation) Win32_Process 클래스의 AttachDebugger 메서드를 사용합니다. 이 메서드에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 라이브러리(https://go.microsoft.com/fwlink/?LinkId=143640)의 "AttachDebugger 메서드"를 참조하십시오.
예 1
C:\PS>debug-process -name powershell
설명
-----------
이 명령은 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다.
예 2
C:\PS>debug-process -name sql*
설명
-----------
이 명령은 이름이 "sql"로 시작하는 모든 프로세스에 디버거를 연결합니다.
예 3
C:\PS>debug-process winlogon, explorer, outlook
설명
-----------
이 명령은 Winlogon, Explorer 및 Outlook 프로세스에 디버거를 연결합니다.
예 4
C:\PS>debug-process -id 1132, 2028
설명
-----------
이 명령은 프로세스 ID가 1132 및 2028인 프로세스에 디버거를 연결합니다.
예 5
C:\PS>get-process powershell | debug-process
설명
-----------
이 명령은 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다. Get-Process cmdlet을 사용하여 컴퓨터의 PowerShell 프로세스를 가져온 다음 파이프라인 연산자(|)를 사용하여 Debug-Process cmdlet으로 보냅니다.
특정 PowerShell 프로세스를 지정하려면 Get-Process의 ID 매개 변수를 사용합니다.
예 6
C:\PS>$pid | debug-process
설명
-----------
이 명령은 컴퓨터의 현재 PowerShell 프로세스에 디버거를 연결합니다.
현재 PowerShell 프로세스의 프로세스 ID가 포함된 $pid 자동 변수를 사용합니다. 그런 다음 파이프라인 연산자(|)를 사용하여 프로세스 ID를 Debug-Process cmdlet으로 보냅니다.
$pid 자동 변수에 대한 자세한 내용을 보려면 about_Automatic_Variables를 참조하십시오.
예 7
C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-process
설명
-----------
이 명령은 Server01 및 Server02 컴퓨터의 MyApp 프로세스에 디버거를 연결합니다.
Get-Process cmdlet을 사용하여 Server01 및 Server02 컴퓨터의 MyApp 프로세스를 가져온 다음 파이프라인 연산자를 사용하여 프로세스를 Debug-Process cmdlet으로 보냅니다. 그러면 이 cmdlet이 디버거를 연결합니다.
예 8
C:\PS>$p = get-process powershell
C:\PS> debug-process -inputobject $p
설명
-----------
이 명령은 로컬 컴퓨터의 PowerShell 프로세스에 디버거를 연결합니다.
첫 번째 명령은 Get-Process cmdlet을 사용하여 컴퓨터의 PowerShell 프로세스를 가져옵니다. 그런 다음 결과 프로세스 개체를 $P 변수에 저장합니다.
두 번째 명령은 Debug-Process의 InputObject 매개 변수를 사용하여 $p 변수의 프로세스 개체를 Debug-Process로 전송합니다.
참고 항목
개념
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process