다음을 통해 공유


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-CimInstanceInvoke-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)으로 파이프할 수 없습니다.

ModuleFileVersionInfo 매개 변수를 함께 사용하는 경우 이 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: 프로세스의 이름입니다.

StartTimePriority와 같이 사용할 수 있는 Format-Table프로세스 개체에 대한 기본 제공 대체 보기를 사용할 수 있습니다. 사용자 고유의 보기를 디자인할 수도 있습니다.

사용 가능한 모든 Process 개체 멤버에 대한 설명은 프로세스 속성프로세스 메서드를 참조하세요.