로컬 컴퓨터 또는 원격 컴퓨터에서 실행 중인 프로세스를 가져옵니다.

구문

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 프로세스를 가져옵니다.






참고 항목




목차