Get-Process
로컬 컴퓨터 또는 원격 컴퓨터에서 실행 중인 프로세스를 가져옵니다.
구문
Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersionInfo] [-Module] [<CommonParameters>]
설명
Get-Process cmdlet은 로컬 또는 원격 컴퓨터의 프로세스를 가져옵니다.
매개 변수를 지정하지 않을 경우 Get-Process는 로컬 컴퓨터의 모든 프로세스를 가져옵니다. 프로세스 이름 또는 프로세스 ID(PID)로 특정 프로세스를 지정하거나 프로세스 개체를 파이프라인을 통해 Get-Process로 전달할 수도 있습니다.
기본적으로 Get-Process는 프로세스에 대한 자세한 정보가 있고 프로세스를 시작 및 중지할 수 있는 메서드를 지원하는 프로세스 개체를 반환합니다. 또한 Get-Process의 매개 변수를 사용하여 프로세스에서 실행되는 프로그램의 파일 버전 정보를 가져오거나 프로세스에서 로드한 모듈을 가져올 수도 있습니다.
매개 변수
-ComputerName <string[]>
지정된 컴퓨터에서 실행 중인 프로세스를 가져옵니다. 기본값은 로컬 컴퓨터입니다.
하나 이상의 컴퓨터의 NetBIOS 이름, IP 주소 또는 정규화된 도메인 이름을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) 또는 "localhost"를 입력합니다.
이 매개 변수는 Windows PowerShell 원격에 독립적입니다. 원격 명령을 실행하도록 컴퓨터를 구성하지 않은 경우에도 Get-Process의 ComputerName 매개 변수를 사용할 수 있습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-FileVersionInfo
프로세스에서 실행되는 프로그램의 파일 버전 정보를 가져옵니다.
Windows Vista 이상의 경우 소유하지 않은 프로세스에 대해 이 매개 변수를 사용하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 열어야 합니다.
이 매개 변수를 사용하는 것은 각 프로세스 개체의 MainModule.FileVersionInfo 속성을 가져오는 것과 동일합니다. 이 매개 변수를 사용하는 경우 Get-Process는 프로세스 개체가 아닌 FileVersionInfo 개체(System.Diagnostics.FileVersionInfo)를 반환합니다. 따라서 Stop-Process와 같이 프로세스 개체가 필요한 cmdlet으로 명령의 출력을 파이프할 수 없습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Id <Int32[]>
프로세스 ID(PID)로 하나 이상의 프로세스를 지정합니다. 여러 ID를 지정하려면 쉼표를 사용하여 ID를 구분합니다. 프로세스의 PID를 찾으려면 "get-process"를 입력합니다.
필수 여부 |
true |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-InputObject <Process[]>
하나 이상의 프로세스 개체를 지정합니다. 개체가 포함된 변수를 입력하거나 개체를 가져오는 명령 또는 식을 입력하십시오.
필수 여부 |
true |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-Module
프로세스에서 로드한 모듈을 가져옵니다.
Windows Vista 이상의 경우 소유하지 않은 프로세스에 대해 이 매개 변수를 사용하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 열어야 합니다.
이 매개 변수는 각 프로세스 개체의 Modules 속성을 가져오는 것과 동일합니다. 이 매개 변수를 사용하는 경우 Get-Process는 프로세스 개체가 아닌 ProcessModule 개체(System.Diagnostics.ProcessModule)를 반환합니다. 따라서 Stop-Process와 같이 프로세스 개체가 필요한 cmdlet으로 명령의 출력을 파이프할 수 없습니다.
같은 명령에 Module 및 FileVersionInfo 매개 변수를 모두 사용하는 경우 Get-Process는 모든 모듈의 파일 버전에 대한 정보가 포함된 FileVersionInfo 개체를 반환합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Name <string[]>
프로세스 이름으로 하나 이상의 프로세스를 지정합니다. 쉼표로 구분된 여러 프로세스 이름을 입력하거나 와일드카드 문자를 사용할 수 있습니다. 매개 변수 이름("Name")은 선택 사항입니다.
필수 여부 |
false |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
true |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Diagnostics.Process 프로세스 개체를 Get-Process로 파이프할 수 있습니다. |
출력 |
System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagnostics.ProcessModule 기본적으로 Get-Process는 System.Diagnostics.Process 개체를 반환합니다. FileVersionInfo 매개 변수를 사용하는 경우 System.Diagnotics.FileVersionInfo 개체를 반환합니다. FileVersionInfo 매개 변수 없이 Module 매개 변수를 사용하는 경우 System.Diagnostics.ProcessModule 개체를 반환합니다. |
참고
Name, ID, 및 InputObject 매개 변수를 같은 명령에 사용할 수 없습니다.
또한 해당 기본 제공 별칭("ps" 및 "gps")으로 Get-Process를 참조할 수 있습니다. 자세한 내용은 about_Aliases를 참조하십시오.
Windows PowerShell에서는 WMI Win32_Process 개체의 속성 및 메서드도 사용할 수 있습니다. 자세한 내용은 Get-WmiObject 및 WMI(Windows Management Instrument) SDK를 참조하십시오.
프로세스는 기본적으로 다음 열을 포함하는 테이블로 표시됩니다.
-- Handles: 프로세스에서 연 핸들 수
-- NPM(K): 프로세스에서 사용 중인 비페이징 메모리의 양(KB)
-- PM(K): 프로세스에서 사용 중인 페이징 가능한 메모리의 양(KB)
-- WS(K): 프로세스 작업 집합의 크기(KB). 작업 집합은 프로세스에서 최근에 참조한 메모리의 페이지로 구성됩니다.
-- VM(M): 프로세스에서 사용 중인 가상 메모리의 양(MB). 가상 메모리는 디스크 페이징 파일의 저장소를 포함합니다.
-- CPU(s): 모든 프로세서에서 프로세스를 사용한 시간의 양(초)
-- ID: 프로세스의 프로세스 ID(PID)
-- ProcessName: 프로세스의 이름
프로세스와 관련된 개념에 대한 자세한 설명은 도움말 및 지원 센터의 용어 설명과 작업 관리자에 대한 도움말을 참조하십시오.
또한 Format-Table에서 사용할 수 있는 프로세스의 기본 제공 대체 보기(예: "StartTime" 및 "Priority")를 사용하고 사용자 고유의 보기를 디자인할 수도 있습니다. 자세한 내용은 Format-Table을 참조하십시오.
예 1
C:\PS>Get-Process
설명
-----------
이 명령은 로컬 컴퓨터에서 실행 중인 모든 프로세스 목록을 가져옵니다. 각 열에 대한 정의는 Get-Help 도움말 항목의 "추가 참고" 섹션을 참조하십시오.
예 2
C:\PS>Get-Process winword, explorer | format-list *
설명
-----------
이 명령은 컴퓨터의 Winword 및 Explorer 프로세스에 대한 모든 사용 가능한 데이터를 가져옵니다. 이 명령은 Name 매개 변수를 사용하여 프로세스를 지정하지만 선택적 매개 변수 이름은 생략합니다. 파이프라인 연산자(|)는 Format-List cmdlet으로 데이터를 전달합니다. 이 cmdlet은 Winword 및 Explorer 개체의 사용 가능한 모든(*) 속성을 표시합니다.
프로세스 ID로 프로세스를 식별할 수도 있습니다. 예를 들면 "get-process -id 664, 2060"과 같습니다.
예 3
C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000}
설명
-----------
이 명령은 작업 집합이 20MB보다 큰 모든 프로세스를 가져옵니다. 먼저 Get-Process cmdlet을 사용하여 실행 중인 모든 프로세스를 가져옵니다. 파이프라인 연산자(|)는 Where-Object cmdlet으로 프로세스 개체를 전달합니다. Where-Object cmdlet은 WorkingSet 속성 값이 20,000,000바이트보다 큰 개체만 선택합니다.
WorkingSet는 프로세스 개체의 많은 속성 중 하나입니다. 속성을 모두 보려면 "Get-Process | Get-Member"를 입력하십시오. 모든 수량 속성의 값은 기본 표시에 킬로바이트 및 메가바이트로 나열되더라도 기본적으로 바이트 단위입니다.
예 4
C:\PS>$a = get-process
C:\PS> get-process -inputobject $a | format-table -view priority
설명
-----------
이들 명령은 그룹에 있는 컴퓨터의 우선 순위별로 컴퓨터의 프로세스를 나열합니다.
첫 번째 명령은 컴퓨터의 모든 프로세스를 가져와서 $a 변수에 저장합니다.
두 번째 명령은 InputObject 매개 변수를 사용하여 $a 변수에 저장되어 있는 프로세스 개체를 Get-Process cmdlet으로 전달합니다. 파이프라인 연산자(|)가 개체를 Format-Table cmdlet으로 전달하면 이 cmdlet은 우선 순위 보기를 사용하여 프로세스 형식을 지정합니다.
우선 순위 보기 및 다른 보기는 Windows PowerShell 홈 디렉터리($pshome)의 PS1XML 형식 파일에 정의되어 있습니다.
예 5
C:\PS>get-process powershell -computername S1, localhost | ft @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, @{Label="PM(K)";Expression={[int]($_.PM/1024)}},@{Label="WS(K)";Expression={[int]($_.WS/1024)}},@{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, @{Label="CPU(s)";Expression={if ($_.CPU -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName
------ ----- ----- ----- ------ -- ----------- -----------
6 23500 31340 142 1980 S1 powershell
6 23500 31348 142 4016 S1 powershell
27 54572 54520 576 4428 localhost powershell
설명
-----------
이 예에서는 표준 Get-Process 출력 표시에 MachineName 속성을 추가하는 Format-Table(별칭 = ft) 명령을 제공합니다.
예 6
C:\PS>get-process powershell -fileversioninfo
ProductVersion FileVersion FileName
-------------- ----------- --------
6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
설명
-----------
이 명령은 FileVersionInfo 매개 변수를 사용하여 PowerShell 프로세스의 주 모듈인 PowerShell.exe 파일에 대한 버전 정보를 가져옵니다.
Windows Vista 이상에서 자신이 소유하지 않은 프로세스에 대해 이 명령을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 열어야 합니다.
예 7
C:\PS>get-process sql* -module
설명
-----------
이 명령은 Module 매개 변수를 사용하여 프로세스에서 로드한 모듈을 가져옵니다. 이 명령은 이름이 "sql"로 시작하는 모든 프로세스에 대한 모듈을 가져옵니다.
Windows Vista 이상에서 자신이 소유하지 않은 프로세스에 대해 이 명령을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작해야 합니다.
예 8
C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'"
C:\PS> $p.getowner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
설명
-----------
이 명령은 프로세스의 소유자를 찾는 방법을 보여 줍니다. Get-Process가 반환하는 System.Diagnostics.Process 개체에는 프로세스 소유자를 반환하는 속성이나 메서드가 없기 때문에 이 명령은
Get-WmiObject cmdlet을 사용하여 같은 프로세스를 나타내는 Win32_Process 개체를 가져옵니다.
첫 번째 명령은 Get-WmiObject를 사용하여 PowerShell 프로세스를 가져온 다음 $p 변수에 저장합니다.
두 번째 명령은 GetOwner 메서드를 사용하여 $p에 있는 프로세스의 소유자를 가져옵니다. 이 명령은 소유자가 Domain01\user01임을 보여 줍니다.
예 9
C:\PS>get-process powershell
C:\PS> get-process -id $pid
C:\PS> get-process powershell
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
308 26 52308 61780 567 3.18 5632 powershell
377 26 62676 63384 575 3.88 5888 powershell
C:\PS> get-process -id $pid
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
396 26 56488 57236 575 3.90 5888 powershell
설명
-----------
이들 명령은 $pid 자동 변수를 사용하여 현재 Windows PowerShell 세션을 호스팅하는 프로세스를 식별하는 방법을 보여 줍니다. 이 방법을 사용하면 호스트 프로세스를 중지하거나 닫으려고 하는 다른 PowerShell 프로세스와 쉽게 구별할 수 있습니다.
첫 번째 명령은 현재 세션의 모든 PowerShell 프로세스를 가져옵니다.
두 번째 명령은 현재 세션을 호스팅하는 PowerShell 프로세스를 가져옵니다.
참고 항목
개념
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process