Get-Process
로컬 컴퓨터에서 실행 중인 프로세스를 가져옵니다.
구문
Name (기본값)
Get-Process
[[-Name] <String[]>]
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
NameWithUserName
Get-Process
[[-Name] <String[]>]
-IncludeUserName
[<CommonParameters>]
Id
Get-Process
-Id <Int32[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
IdWithUserName
Get-Process
-Id <Int32[]>
-IncludeUserName
[<CommonParameters>]
InputObject
Get-Process
-InputObject <Process[]>
[-Module]
[-FileVersionInfo]
[<CommonParameters>]
InputObjectWithUserName
Get-Process
-InputObject <Process[]>
-IncludeUserName
[<CommonParameters>]
Description
Get-Process cmdlet은 로컬 컴퓨터에서 프로세스를 가져옵니다.
매개 변수가 없으면 이 cmdlet은 로컬 컴퓨터의 모든 프로세스를 가져옵니다. 프로세스 이름 또는 프로세스 ID(PID) 또는 System.Diagnostics.Process 개체를 이 cmdlet에 파이핑하여 특정 프로세스를 지정할 수도 있습니다.
기본적으로 이 cmdlet은 프로세스에 대한 자세한 정보를 포함하는 Process 개체를 반환하고 이를 제어할 수 있는 메서드를 지원합니다. 매개 변수를 사용하면 이 cmdlet에서 반환되는 정보 유형을 변경할 수 있습니다.
- 모듈: 프로세스에 로드된 각 모듈에 대한 정보를 검색합니다.
- FileVersionInfo: 프로세스의 주 모듈에 대한 파일 버전 정보를 검색합니다.
비고
모듈은 실행 파일 또는 프로세스에 로드된 DLL(동적 연결 라이브러리)입니다. 프로세스에는 하나 이상의 모듈이 있습니다. 주 모듈은 프로세스를 처음 시작하는 데 사용되는 모듈입니다. 자세한 내용은 ProcessModule 클래스를 참조하세요.
예제
예제 1: 로컬 컴퓨터에서 실행 중인 모든 프로세스 목록 가져오기
Get-Process
이 명령은 로컬 컴퓨터에서 실행 중인 모든 프로세스의 목록을 가져옵니다. 각 표시 열의 정의는 NOTES 섹션을 참조하세요.
Process 개체의 모든 속성을 보려면 .를 사용합니다Get-Process | Get-Member. 기본적으로 PowerShell은 K(K) 및 메가바이트(M)와 같은 단위를 사용하여 특정 속성 값을 표시합니다. 멤버 액세스 연산자(.)를 사용하여 액세스할 때의 실제 값은 바이트 단위입니다.
예제 2: 하나 이상의 프로세스에 대한 자세한 정보 표시
Get-Process winword, explorer | Format-List *
이 파이프라인은 컴퓨터의 winword 프로세스 및 explorer 프로세스에 대한 자세한 정보를 표시합니다.
Name 매개 변수를 사용하여 프로세스를 지정하지만 선택적 매개 변수 이름은 생략합니다. 파이프라인 연산자(|)는 Process 개체를 cmdlet으로 Format-List 파이프하여 사용 가능한 모든 속성(*)과 각 개체의 값을 표시합니다.
프로세스 ID로 프로세스를 식별할 수도 있습니다. 예: Get-Process -Id 664, 2060
예제 3: 작업 집합이 지정된 크기보다 큰 모든 프로세스 가져오기
Get-Process | Where-Object { $_.WorkingSet -gt 20971520 }
Get-Process | Where-Object WorkingSet -GT 20MB
cmdlet은 Get-Process 실행 중인 프로세스를 반환합니다. 출력은 cmdlet에 Where-Object 파이프되어 WorkingSet 값이 20,971,520바이트보다 큰 개체를 선택합니다.
첫 번째 예제 Where-Object 에서는 scriptblock을 사용하여 각 Process 개체의 WorkingSet 속성을 비교합니다. 두 번째 예제에서 cmdlet은 Where-Object 간소화된 구문을 사용하여 WorkingSet 속성을 비교합니다. 이 경우 -GT 비교 연산자가 아닌 매개 변수입니다. 두 번째 예제에서는 숫자 리터럴 접미사를 간결한 대안 20971520으로 사용합니다. PowerShell MB 에서 MiB(mebibyte) 승수를 나타냅니다.
20MB 는 20,971,520바이트와 같습니다.
예제 4: 우선 순위에 따라 그룹에 컴퓨터의 프로세스 표시
$processes = Get-Process
$processes | Sort-Object { $_.PriorityClass } | Format-Table -View Priority
이러한 명령은 우선 순위 클래스에 따라 그룹에 컴퓨터의 프로세스를 표시합니다. 첫 번째 명령은 컴퓨터의 모든 프로세스를 가져오고 변수에 $processes 저장합니다.
두 번째 명령은 변수에 $processes 저장된 Process 개체를 cmdlet으로 Sort-Object 파이프한 다음Format-Table, 우선 순위 보기를 사용하여 프로세스의 형식을 지정하는 cmdlet으로 파이프합니다.
예제 5: 기본 'Get-Process' 출력 디스플레이에 속성 추가
Get-Process -Name pwsh | Format-Table -Property @(
@{ Name = 'NPM(K)'; Expression = { [int] ($_.NPM / 1KB) } }
@{ Name = 'PM(M)'; Expression = { [int] ($_.PM / 1MB) } }
@{ Name = 'WS(M)'; Expression = { [int] ($_.WS / 1MB) } }
@{ Name = 'CPU(s)'; Expression = { if ($_.CPU) { $_.CPU.ToString('N') } } }
'Id'
@{ Name = 'SI'; Expression = 'SessionId' }
'ProcessName'
'StartTime'
) -AutoSize
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName StartTime
------ ----- ----- ------ -- -- ----------- ---------
84 46 79 18.297 3188 1 pwsh 4/14/2025 10:40:10 AM
66 30 90 4.328 4640 1 pwsh 4/13/2025 3:33:50 PM
66 30 90 4.516 9204 1 pwsh 4/14/2025 9:54:27 AM
다음은 로컬 컴퓨터에서 프로세스를 검색하고 각 Process 개체를 cmdlet으로 Format-Table 파이프하는 예제입니다.
Format-Table속성 이름과 계산 속성을 혼합하여 Process 개체의 기본 출력 표시를 다시 만듭니다. 디스플레이에는 기본 디스플레이에 없는 추가 StartTime 속성이 포함됩니다.
예제 6: 프로세스에 대한 버전 정보 가져오기
Get-Process -Name pwsh -FileVersionInfo
ProductVersion FileVersion FileName
-------------- ----------- --------
7.5.0 SHA: 99da… 7.5.0.500 C:\Program Files\PowerShell\7\pwsh.exe
이 명령은 FileVersionInfo 매개 변수를 사용하여 프로세스의 pwsh 주 모듈에 대한 파일 버전 정보를 가져옵니다. 주 모듈은 프로세스를 시작하는 데 사용되는 파일이며, 이 경우는 .입니다 pwsh.exe.
Windows Vista 이상 버전의 Windows에서 소유하지 않은 프로세스에서 이 명령을 사용하려면 관리자 권한(관리자 권한으로 실행)을 사용하여 PowerShell을 실행해야 합니다.
예제 7: 지정된 프로세스로 로드된 모듈 가져오기
Get-Process -Name SQL* -Module
이 명령은 Module 매개 변수를 사용하여 이름이 .로 시작하는 SQL모든 프로세스에서 로드되는 모듈을 가져옵니다.
Windows Vista 이상 버전의 Windows에서 소유하지 않은 프로세스에서 이 명령을 사용하려면 관리자 권한(관리자 권한으로 실행)을 사용하여 PowerShell을 실행해야 합니다.
예제 8: 프로세스의 소유자 찾기
Get-Process -Name pwsh -IncludeUserName
WS(M) CPU(s) Id UserName ProcessName
----- ------ -- -------- -----------
46.53 21.70 3188 DOMAIN01\user01 pwsh
Get-CimInstance -ClassName Win32_Process -Filter "name='pwsh.exe'" |
Invoke-CimMethod -MethodName GetOwner
Domain ReturnValue User PSComputerName
------ ----------- ---- --------------
DOMAIN01 0 user01
첫 번째 명령은 프로세스의 소유자를 가져오는 방법을 보여줍니다. 출력은 소유자가 DOMAIN01\user01있음을 표시합니다.
두 번째 파이프라인은 프로세스 소유자를 사용 Get-CimInstance 및 Invoke-CimMethod가져오는 다른 방법을 보여줍니다. 필터가 있는 Win32_Process 클래스는 프로세스를 검색 pwsh 하고 호출된 메서드는 GetOwner() 프로세스의 도메인 및 사용자에 대한 정보를 반환합니다. 이 메서드는 Windows에서만 사용할 수 있으며 상승된 사용자 권한이 필요하지 않습니다.
예제 9: 자동 변수를 사용하여 현재 세션을 호스팅하는 프로세스를 식별합니다.
Get-Process -Name pwsh
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 105.95 4.33 1192 10 pwsh
79 83.81 117.61 2.16 10580 10 pwsh
Get-Process -Id $PID
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
83 96.21 77.53 4.39 1192 10 pwsh
이러한 명령은 $PID 자동 변수를 사용하여 현재 PowerShell 세션을 호스팅하는 프로세스를 식별하는 방법을 보여 줍니다. 이 메서드를 사용하여 제어할 수 있는 다른 pwsh 프로세스와 호스트 프로세스를 구분할 수 있습니다.
첫 번째 명령은 실행 중인 모든 pwsh 프로세스를 가져옵니다. 두 번째 명령은 현재 세션을 호스팅하는 프로세스를 가져옵니다 pwsh .
예제 10: 주 창 제목이 있는 모든 프로세스를 가져와 테이블에 표시
Get-Process |
Where-Object -Property MainWindowTitle |
Format-Table -Property Id, Name, MainWindowTitle -AutoSize
이 파이프라인은 주 창 제목이 있는 모든 프로세스를 가져오고 프로세스 ID 및 이름이 있는 테이블에 표시합니다.
MainWindowTitle 은 반환되는 Diagnostics.Process 개체 형식 Get-Process 의 많은 유용한 속성 중 하나입니다. 모든 속성을 보려면 .를 사용합니다 Get-Process | Get-Member.
매개 변수
-FileVersionInfo
이 cmdlet은 프로세스에서 실행되는 프로그램에 대한 파일 버전 정보를 가져옵니다.
Windows Vista 이상 버전의 Windows에서는 관리자 권한(관리자 권한으로 실행)으로 PowerShell을 실행하여 소유하지 않은 프로세스에서 이 매개 변수를 사용해야 합니다.
이 매개 변수를 사용하는 것은 각 Process 개체의 MainModule.FileVersionInfo 속성에 액세스하는 것과 같습니다. 이 매개 변수 Get-Process 를 사용하는 경우 Process 개체가 아닌 FileVersionInfo 개체를 반환합니다. 이 매개 변수를 사용하여 생성된 출력을 Process 개체를 예상하는 cmdlet(예: Stop-Process)으로 파이프할 수 없습니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | FV, FVI |
매개 변수 집합
Name
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
Id
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
InputObject
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Id
PID(프로세스 ID)로 하나 이상의 프로세스를 지정합니다. 여러 ID를 쉼표로 구분하여 지정할 수 있습니다. 프로세스의 PID를 얻으려면 .를 사용합니다 Get-Process. 현재 PowerShell 세션의 PID를 얻으려면 .를 사용합니다 $PID.
매개 변수 속성
| 형식: | Int32[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | PID |
매개 변수 집합
Id
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
IdWithUserName
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-IncludeUserName
이 명령은 반환된 각 Process 개체에 UserName 속성을 추가한다는 것을 나타냅니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
NameWithUserName
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
IdWithUserName
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
InputObjectWithUserName
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-InputObject
하나 이상의 Process 개체를 지정합니다. 개체를 포함하는 변수 또는 개체를 가져오는 명령이나 식을 사용합니다.
매개 변수 속성
| 형식: | Process[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
InputObject
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
InputObjectWithUserName
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Module
이 cmdlet은 프로세스가 로드한 모듈을 가져옵니다.
Windows Vista 이상 버전의 Windows에서는 관리자 권한(관리자 권한으로 실행)으로 PowerShell을 실행하여 소유하지 않은 프로세스에서 이 매개 변수를 사용해야 합니다.
이 매개 변수를 사용하는 것은 각 Process 개체의 Modules 속성에 액세스하는 것과 같습니다.
이 매개 변수 Get-Process 를 사용하는 경우 Process 개체가 아닌 ProcessModule 개체를 반환합니다. 이 매개 변수를 사용하여 생성된 출력을 Process 개체를 예상하는 cmdlet(예: Stop-Process)으로 파이프할 수 없습니다.
Module 및 FileVersionInfo 매개 변수를 함께 사용하는 경우 이 cmdlet은 모든 모듈의 파일 버전에 대한 정보가 포함된 FileVersionInfo 개체를 반환합니다.
매개 변수 속성
| 형식: | SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
Name
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
Id
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
InputObject
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Name
프로세스 이름으로 하나 이상의 프로세스를 지정합니다. 여러 프로세스 이름을 쉼표로 구분하여 지정하고 와일드카드 문자를 사용할 수 있습니다. 매개 변수 사용 -Name 은 선택 사항입니다.
매개 변수 속성
| 형식: | String[] |
| Default value: | None |
| 와일드카드 지원: | True |
| DontShow: | False |
| 별칭: | ProcessName |
매개 변수 집합
Name
| Position: | 0 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
NameWithUserName
| Position: | 0 |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.
입력
Process
프로세스 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
Process
기본적으로 이 cmdlet은 System.Diagnostics.Process 개체를 반환합니다.
FileVersionInfo
FileVersionInfo 매개 변수를 사용하는 경우 이 cmdlet은 System.Diagnostics.FileVersionInfo 개체를 반환합니다.
ProcessModule
FileVersionInfo 매개 변수 없이 Module 매개 변수를 사용하는 경우 이 cmdlet은 System.Diagnostics.ProcessModule 개체를 반환합니다.
참고
PowerShell에는 Get-Process에 대한 다음과 같은 별칭들이 포함되어 있습니다.
- 모든 플랫폼:
gps
- Windows:
ps
64비트 Windows를 실행하는 컴퓨터에서 PowerShell의 64비트 버전은 기본 모듈 및 64비트 프로세스 모듈을 가져옵니다. PowerShell의 32비트 버전은 32비트 프로세스 모듈만 가져옵니다.
경고
PowerShell의 32비트 버전에서 64비트 프로세스를 가져오는 데 사용하는 Get-Process 경우 반환된 Process 개체와 MainModule 같은 Path 속성은 다음과 같습니다$null. 64비트 버전의 PowerShell 또는 Win32_Process 클래스를 사용해야 합니다.
원격 컴퓨터에서 프로세스 정보를 얻으려면 Invoke-Command cmdlet을 사용합니다. 자세한 내용은 Invoke-Command참조하세요.
Windows에서는 PowerShell에서 WMI(Windows Management Instrumentation) Win32_Process 클래스를 대신 사용할 수 있습니다 Get-Process. 자세한 내용은 다음을 참조하세요.
Process 개체의 기본 표시는 다음 열을 포함하는 테이블 뷰입니다.
- NPM(K): 프로세스에서 사용 중인 페이징되지 않은 메모리의 양(킬로바이트)입니다.
- PM(M): 프로세스에서 사용 중인 페이지 가능한 메모리 양(메가바이트)입니다.
- WS(M): 프로세스의 작업 집합 크기(메가바이트)입니다. 작업 집합은 프로세스에서 최근에 참조한 메모리 페이지로 구성됩니다.
- CPU: 프로세스가 모든 프로세서에서 사용한 프로세서 시간(초)입니다.
- ID: 프로세스의 PID(프로세스 ID)입니다.
- SI: 프로세스의 세션 ID입니다.
- ProcessName: 프로세스의 이름입니다.
StartTime 및 Priority와 같이 사용할 수 있는 Format-Table프로세스 개체에 대한 기본 제공 대체 보기를 사용할 수 있습니다. 사용자 고유의 보기를 디자인할 수도 있습니다.