Get-Process
로컬 컴퓨터 또는 원격 컴퓨터에서 실행 중인 프로세스를 가져옵니다.
구문
Get-Process
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
[[-Name] <String[]>]
[-IncludeUserName]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-IncludeUserName]
[<CommonParameters>]
Get-Process
-Id <Int32[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-IncludeUserName]
[<CommonParameters>]
Get-Process
-InputObject <Process[]>
[-ComputerName <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
Description
cmdlet은 Get-Process
로컬 또는 원격 컴퓨터에서 프로세스를 가져옵니다.
매개 변수가 없으면 이 cmdlet은 로컬 컴퓨터의 모든 프로세스를 가져옵니다. 프로세스 이름 또는 프로세스 ID(PID)로 특정 프로세스를 지정하거나 파이프라인을 통해 프로세스 개체를 이 cmdlet에 전달할 수도 있습니다.
기본적으로 이 cmdlet은 프로세스에 대한 자세한 정보를 포함하는 프로세스 개체를 반환하고 프로세스를 시작하고 중지할 수 있는 메서드를 지원합니다. cmdlet의 Get-Process
매개 변수를 사용하여 프로세스에서 실행되는 프로그램에 대한 파일 버전 정보를 가져와서 프로세스가 로드된 모듈을 가져올 수도 있습니다.
예제
예제 1: 로컬 컴퓨터의 모든 활성 프로세스 목록 가져오기
Get-Process
이 명령은 로컬 컴퓨터에서 실행 중인 모든 활성 프로세스의 목록을 가져옵니다. 각 열에 대한 정의는 Notes 섹션을 참조하세요.
예제 2: 하나 이상의 프로세스에 대해 사용 가능한 모든 데이터 가져오기
Get-Process winword, explorer | Format-List *
이 명령은 컴퓨터의 Winword 및 Explorer 프로세스에 대해 사용 가능한 모든 데이터를 가져옵니다. Name 매개 변수를 사용하여 프로세스를 지정하지만 선택적 매개 변수 이름은 생략합니다. 파이프라인 연산자(|
)는 데이터를 cmdlet에 Format-List
전달하여 Winword 및 Explorer 프로세스 개체의 사용 가능한 모든 속성(*
)을 표시합니다.
프로세스 ID로 프로세스를 식별할 수도 있습니다. 예: Get-Process -Id 664, 2060
예제 3: 작업 집합이 지정된 크기보다 큰 모든 프로세스 가져오기
Get-Process | Where-Object {$_.WorkingSet -gt 20000000}
이 명령은 작업 집합이 20MB보다 큰 모든 프로세스를 가져옵니다. cmdlet을 Get-Process
사용하여 실행 중인 모든 프로세스를 가져옵니다. 파이프라인 연산자(|
)는 프로세스 개체를 cmdlet에 Where-Object
전달합니다. 이 cmdlet은 WorkingSet 속성에 대해 값이 20,000,000바이트보다 큰 개체만 선택합니다.
WorkingSet 은 프로세스 개체의 여러 속성 중 하나입니다. 모든 속성을 보려면 .를 입력합니다 Get-Process | Get-Member
. 모든 수량 속성 값은 기본 표시에 킬로바이트 및 메가바이트 단위로 나열되더라도 기본적으로 바이트 단위입니다.
예제 4: 우선 순위에 따라 그룹에 컴퓨터의 프로세스 나열
$A = Get-Process
$A | Get-Process | Format-Table -View priority
이 명령은 우선 순위 클래스에 따라 컴퓨터의 프로세스를 그룹으로 나열합니다. 첫 번째 명령은 컴퓨터의 모든 프로세스를 가져오고 변수에 $A
저장합니다.
두 번째 명령은 변수에 $A
저장된 Process 개체를 cmdlet으로 Get-Process
파이프한 다음Format-Table
, 우선 순위 보기를 사용하여 프로세스의 형식을 지정하는 cmdlet으로 파이프합니다.
우선 순위 보기 및 기타 보기는 PowerShell 홈 디렉터리($pshome
)의 PS1XML 형식 파일에 정의됩니다.
예제 5: 표준 Get-Process 출력 디스플레이에 속성 추가
Get-Process powershell | Format-Table `
@{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) {$_.CPU.ToString("N")}}},
Id, ProcessName, StartTime -AutoSize
NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName StartTime
------ ----- ----- ----- ------ -- ----------- ---------
143 239540 259384 2366162 22.73 12720 powershell 12/5/2022 3:21:51 PM
114 61776 104588 2366127 11.45 18336 powershell 12/5/2022 7:30:53 AM
156 77924 82060 2366185 10.47 18812 powershell 12/5/2022 7:30:52 AM
85 48216 115192 2366074 1.14 24428 powershell 12/8/2022 9:14:15 AM
이 예제에서는 로컬 컴퓨터에서 프로세스를 검색합니다. 검색된 프로세스는 표준 Get-Process
출력 디스플레이에 Format-Table
StartTime 속성을 추가하는 명령에 파이프됩니다.
예제 6: 프로세스에 대한 버전 정보 가져오기
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: 지정된 프로세스로 로드된 모듈 가져오기
Get-Process SQL* -Module
이 명령은 Module 매개 변수를 사용하여 프로세스에 의해 로드된 모듈을 가져옵니다.
이 명령은 이름이 .로 시작하는 프로세스에 대한 모듈을 SQL
가져옵니다.
소유하지 않은 프로세스를 사용하여 Windows Vista 이상 버전의 Windows에서 이 명령을 실행하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작해야 합니다.
예제 8: 프로세스의 소유자 찾기
Get-Process pwsh -IncludeUserName
Handles WS(K) CPU(s) Id UserName ProcessName
------- ----- ------ -- -------- -----------
782 132080 2.08 2188 DOMAIN01\user01 powershell
$p = Get-WmiObject Win32_Process -Filter "name='powershell.exe'"
$p.GetOwner()
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 3
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
Domain : DOMAIN01
ReturnValue : 0
User : user01
첫 번째 명령은 프로세스의 소유자를 찾는 방법을 보여줍니다. IncludeUserName 매개 변수에는 관리자 권한(관리자 권한으로 실행)이 필요합니다. 출력에 소유자가 있는 것으로 Domain01\user01
표시됩니다.
두 번째 및 세 번째 명령은 프로세스의 소유자를 찾는 또 다른 방법입니다.
두 번째 명령은 PowerShell 프로세스를 가져오는 데 사용합니다 Get-WmiObject
.
변수에 $p
저장합니다.
세 번째 명령은 GetOwner 메서드를 사용하여 프로세스의 소유자를 가져옵니다$p
. 출력에 소유자가 있는 것으로 Domain01\user01
표시됩니다.
예제 9: 자동 변수를 사용하여 현재 세션을 호스팅하는 프로세스를 식별합니다.
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
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
사용하여 현재 PowerShell 세션을 호스팅하는 프로세스를 식별하는 방법을 보여 줍니다. 이 메서드를 사용하여 중지하거나 닫을 수 있는 다른 PowerShell 프로세스와 호스트 프로세스를 구분할 수 있습니다.
첫 번째 명령은 현재 세션의 모든 PowerShell 프로세스를 가져옵니다.
두 번째 명령은 현재 세션을 호스팅하는 PowerShell 프로세스를 가져옵니다.
예제 10: 주 창 제목이 있는 모든 프로세스를 가져와 테이블에 표시
Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize
이 명령은 주 창 제목이 있는 모든 프로세스를 가져오고 프로세스 ID와 프로세스 이름을 가진 테이블에 표시합니다.
mainWindowTitle 속성은 반환하는 Get-Process
Process 개체의 많은 유용한 속성 중 하나일 뿐입니다. 모든 속성을 보려면 명령 결과를 Get-Process
cmdletGet-Process | Get-Member
으로 Get-Member
파이프합니다.
매개 변수
-ComputerName
이 cmdlet이 활성 프로세스를 가져오는 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다.
하나 이상의 컴퓨터의 NetBIOS 이름, IP 주소 또는 FQDN(정규화된 도메인 이름)을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.
) 또는 localhost
.를 입력합니다.
이 매개 변수는 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 이 cmdlet의 ComputerName 매개 변수를 사용할 수 있습니다.
형식: | String[] |
별칭: | Cn |
Position: | Named |
Default value: | Local computer |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-FileVersionInfo
이 cmdlet은 프로세스에서 실행되는 프로그램에 대한 파일 버전 정보를 가져옵니다.
Windows Vista 이상 버전의 Windows에서는 소유하지 않은 프로세스에서 이 매개 변수를 사용하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 열어야 합니다.
동일한 명령에서 cmdlet의 Get-Process
FileVersionInfo 및 ComputerName 매개 변수를 사용할 수 없습니다.
원격 컴퓨터의 프로세스에 대한 파일 버전 정보를 얻으려면 cmdlet을 Invoke-Command
사용합니다.
이 매개 변수를 사용하는 것은 각 프로세스 개체의 MainModule.FileVersionInfo 속성을 가져오는 것과 같습니다. 이 매개 변수 Get-Process
를 사용하는 경우 프로세스 개체가 아닌 FileVersionInfo 개체 System.Diagnostics.FileVersionInfo를 반환합니다. 따라서 명령의 출력을 프로세스 개체를 예상하는 cmdlet(예: Stop-Process
)으로 파이프할 수 없습니다.
형식: | SwitchParameter |
별칭: | FV, FVI |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Id
PID(프로세스 ID)로 프로세스를 하나 이상 지정합니다. 여러 ID를 지정하려면 쉼표로 ID를 구분합니다. 프로세스의 PID를 찾으려면 .를 입력합니다 Get-Process
.
형식: | Int32[] |
별칭: | PID |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-IncludeUserName
Process 개체의 UserName 값이 명령의 결과와 함께 반환됨을 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
프로세스 개체를 하나 이상 지정합니다. 개체를 포함하는 변수를 입력하거나 개체를 가져오는 명령 또는 식을 입력하세요.
형식: | Process[] |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Module
이 cmdlet은 프로세스에 의해 로드된 모듈을 가져옵니다.
Windows Vista 이상 버전의 Windows에서는 소유하지 않은 프로세스에서 이 매개 변수를 사용하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 열어야 합니다.
원격 컴퓨터의 프로세스에 의해 로드된 모듈을 얻으려면 cmdlet을 Invoke-Command
사용합니다.
이 매개 변수는 각 프로세스 개체의 Modules 속성을 가져오는 것과 같습니다. 이 매개 변수를 사용하는 경우 이 cmdlet은 프로세스 개체가 아닌 ProcessModule 개체 System.Diagnostics.ProcessModule을 반환합니다. 따라서 명령의 출력을 프로세스 개체를 예상하는 cmdlet(예: Stop-Process
)으로 파이프할 수 없습니다.
동일한 명령에서 Module 및 FileVersionInfo 매개 변수를 모두 사용하는 경우 이 cmdlet은 모든 모듈의 파일 버전에 대한 정보가 포함된 FileVersionInfo 개체를 반환합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Name
프로세스 이름으로 하나 이상의 프로세스를 지정합니다. 여러 프로세스 이름(쉼표로 구분)을 입력하고 와일드카드 문자를 사용할 수 있습니다. 매개 변수 이름(Name
)은 선택 사항입니다.
형식: | String[] |
별칭: | ProcessName |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | True |
입력
프로세스 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
기본적으로 이 cmdlet은 System.Diagnostics.Process 개체를 반환합니다.
FileVersionInfo 매개 변수를 사용하는 경우 이 cmdlet은 FileVersionInfo 개체를 반환합니다.
FileVersionInfo 매개 변수 없이 Module 매개 변수를 사용하는 경우 이 cmdlet은 ProcessModule 개체를 반환합니다.
참고
Windows PowerShell에는 다음 별칭이 포함됩니다.Get-Process
gps
ps
64비트 버전의 Windows를 실행하는 컴퓨터에서 64비트 버전의 PowerShell은 64비트 프로세스 모듈만 가져오고 PowerShell의 32비트 버전은 32비트 프로세스 모듈만 가져옵니다.
원격 컴퓨터에서 프로세스 정보를 얻으려면 cmdlet을 Invoke-Command
사용합니다. 자세한 내용은 Invoke-Command를 참조 하세요.
PowerShell에서 WMI(Windows Management Instrumentation) Win32_Process 개체의 속성과 메서드를 사용할 수 있습니다. 자세한 내용은 Win32_Process 참조하세요.
프로세스의 기본 표시는 다음 열을 포함하는 테이블입니다. 프로세스 개체의 모든 속성에 대한 설명은 프로세스 속성을 참조 하세요.
- 핸들: 프로세스가 열린 핸들 수입니다.
- NPM(K): 프로세스가 사용 중인 페이징되지 않은 메모리의 양(킬로바이트)입니다.
- PM(K): 프로세스에서 사용 중인 페이징 가능한 메모리 양(킬로바이트)입니다.
- WS(K): 프로세스의 작업 집합 크기(킬로바이트)입니다. 작업 집합은 프로세스에서 최근에 참조한 메모리 페이지로 구성됩니다.
- VM(M): 프로세스에서 사용하는 가상 메모리의 양(MB)입니다. 가상 메모리에는 디스크 페이징 파일의 스토리지가 포함됩니다.
- CPU: 프로세스가 모든 프로세서에서 사용한 프로세서 시간(초)입니다.
- ID: 프로세스의 PID(프로세스 ID)입니다.
- ProcessName: 프로세스의 이름입니다. 프로세스와 관련된 개념에 대한 설명은 도움말 및 지원 센터의 용어집 및 작업 관리자 도움말을 참조하세요.
StartTime 및 Priority와 같이 사용 가능한 Format-Table
프로세스의 기본 제공 대체 보기를 사용할 수도 있으며 고유한 보기를 디자인할 수 있습니다.
관련 링크
PowerShell