시스템의 실행 중인 프로세스를 표시하는 PowerShell Get-Process cmdlet을 사용하는 것에 관심이 있으신가요? Get-Process
를 사용하여 프로세스 소유자, 프로세스 ID 또는 프로세스가 디스크 상의 어디에 있는지를 찾을 수 있습니다.
이 문서에서는 실제 예제를 통해 PowerShell의 Get-Process
cmdlet을 사용하는 방법을 배우게 될 것입니다. Windows 또는 Linux에서 프로세스를 제어하여 원하는 대로 조작하는 것이 재미있는 일처럼 느껴진다면 계속해서 읽어보세요!
관련: Linux에서 ps, pgrep, pkill 등을 사용하여 프로세스를 종료하는 방법!
전제 조건
더 나아가기 전에, 이 문서의 예제를 따라하기 위해 필요한 전제 조건은 다음과 같습니다.
- 대부분의 예제에는 Windows PowerShell 5.1이 충분하지만, Linux 지원을 위해서는 PowerShell 7.1 이상이 필요합니다.
- 이 문서는 Windows 10과 Ubuntu 20.04 LTS를 사용하지만, PowerShell이 실행되는 모든 운영 체제에서 작동합니다.
준비되셨나요? 프로세스를 관리해봅시다!
실행 중인 프로세스 표시
Get-Process
는 로컬 프로세스를 관리합니다. 이 첫 번째 예제에서는 PowerShell Get-Process cmdlet
을 사용합니다. 이 명령은 모든 실행 중인 프로세스를 표시합니다.
Get-Process
는 시스템의 실행 중인 프로세스 정보의 현재 스냅샷을 반환합니다. 실시간 프로세스 정보를 표시하기 위해 Windows는 Windows 작업 관리자를 제공하고, Linux는 top 명령을 제공합니다.
시작하려면 PowerShell 콘솔을 열고 Get-Process
를 실행하세요. Get-Process
가 실행 중인 프로세스 정보를 반환하는 것을 알 수 있습니다. 아래에 표시된 것과 같이 출력 형식은 Windows 및 Linux 운영 체제에서 동일합니다.

Get-Process
cmdlet on Windows to display local processes.기본적으로
gps
또는ps
는Get-Process
의 명령 별칭으로 존재합니다. PowerShell 7은 크로스 플랫폼이므로ps
명령은 내장된 Linux 명령과 충돌합니다. 따라서ps
는 Linux에서 작동하지 않으며gps
별칭만 작동합니다.
Get-Process
출력의 의미는 즉시 명확하지 않을 수 있습니다. 기본 Get-Process
속성은 아래에서 자세히 설명됩니다.
- NPM(K) – 프로세스가 사용하는 비페이지드 메모리 양을 킬로바이트 단위로 표시합니다.
(K)
표기법으로 표시됩니다. - PM(M) – 프로세스가 사용하는 페이지 가능한 메모리 양을 메가바이트로 표시한 것입니다.
(M)
표기법으로 표시됩니다. - WS(M) – 프로세스의 작업 집합 크기를 메가바이트로 표시한 것입니다. 작업 집합은 프로세스가 최근에 참조한 메모리 페이지로 구성됩니다.
- VM(M) – 프로세스가 사용하는 가상 메모리 양을 메가바이트로 표시한 것입니다. 디스크의 페이징 파일에 저장된 내용을 포함합니다.
- CPU(S) – 프로세스가 모든 프로세스에서 사용한 프로세서 시간을 초로 표시한 것입니다.
- Id – 프로세스의 프로세스 ID (PID)입니다.
- SI – 실행 중인 프로세스의 세션 식별자입니다. 세션
0
은 프로세스가 모든 사용자에게 사용 가능하다는 것을 나타내고,1
은 프로세스가 첫 번째로 로그인한 사용자 아래에 있는 것을 나타냅니다. - ProcessName – 실행 중인 프로세스의 이름입니다.
전체 속성 이름과 매핑된 속성 별칭의 목록을 표시하려면
Get-Process | Get-Member -MemberType 'AliasProperty'
명령을 사용합니다.
아래는 또 다른 좋은 예입니다. brave 프로세스의 각 인스턴스를 찾아 해당 프로세스의 ID($_.id
)를 사용하여 Get-NetTCPConnection
에 전달합니다. PowerShell은 Get-NetTCPConnection
을 사용하여 brave 프로세스가 열려 있는 각 네트워크 연결에 대한 정보를 찾습니다.
Brave 브라우저가 실행 중인 경우에는 PowerShell 세션에서 다음 코드를 실행하십시오.
SystemFrontier의 Jay Adams에게 감사드립니다!
축하합니다. 이제 Windows 및 Linux에서 Get-Process
를 사용하여 모든 실행 중인 프로세스를 볼 수 있습니다!
특정 프로세스 속성 찾기
Get-Process
는 이전에 보았던 대로 많은 다양한 실행 중인 프로세스의 속성을 반환합니다. 다른 PowerShell 개체와 마찬가지로 개체의 속성을 선택적으로 선택할 수 있습니다.
이제 특정 프로세스의 특정 속성을 검색하는 간단한 예제를 따라해 보겠습니다:
- Windows 계산기를 실행하십시오.
2. PowerShell 콘솔을 열어 Name
매개변수를 사용하여 Calculator라는 이름의 모든 실행 중인 프로세스만 표시하도록 Get-Process
를 실행하십시오. 이전에 본 것과 동일한 출력이 표시됩니다.
Get-Process
는 기대한대로 많은 속성을 반환합니다. 아마도 CPU(s)
열 아래의 값으로 CPU 사용률만 찾고 싶을 수 있습니다. 아래에 표시된대로 Get-Process
명령을 괄호로 묶고 CPU
속성을 참조합니다. CPU
속성의 값만 반환되는 것을 확인할 수 있습니다.
Get-Process
는CPU(s)
라는 이름의 속성을 반환하며, 위의 코드 조각은CPU
라는 이름을 사용했습니다. 때로는 PowerShell에서 출력에서 실제 속성 이름을 표시하지 않을 수 있습니다. 이 개념은 PS1XML 형식 파일을 사용하여 수행됩니다.
CPU 시간은 코어 간의 초 단위의 총합으로 표시됩니다. 이를 더 읽기 쉬운 숫자로 만들려면 아래에 표시된 대로 Math
메서드를 사용하여 소수점 첫째 자리까지 반올림하십시오.

위의 방법을 사용하여
Id
와 같은 다른 속성도 찾을 수 있습니다. 프로세스의 ID만 보려는 경우에 사용할 수 있습니다.
계산기 애플리케이션을 실행한 상태로 유지하십시오. 이 애플리케이션은 이후의 예제에서 사용됩니다.
프로세스 메모리 사용량 가져오기
느린 시스템 문제 해결은 제한된 메모리로 인해 도전적일 수 있습니다. 계산기 앱을 사용하여 Calculator
프로세스를 검색하고 VM
속성만 표시하십시오. 아래에서 볼 수 있듯이, 사용된 메모리는 메가바이트(MB)로 표시됩니다.

Calculator
process memory usage.기억 장치 사용량을 이해하기 위해 내장된 PowerShell 변환 배율을 사용하여 메가바이트(MB)를 기가바이트(GB)로 변경하세요. 아래 예제에서는 사용된 메모리를 GB로 변환한 후 .NET 수학 라이브러리의 Round
메서드를 사용하여 값을 반올림하는 방법을 아래 스크린샷에서 확인할 수 있습니다.
값을 변환하기 위해 내장된 PowerShell 유틸리티를 사용하면 출력을 이해하기 쉬워집니다. 프로세스 ID를 찾는 방법에 대해 알아보려면 계속 읽어보세요.

알려지지 않은 속성 노출하기
Get-Process
로 가져온 결과에는 기본적으로 모든 속성이 포함되거나 표시되지 않을 수 있습니다. 아래에서 Path
및 UserName
속성에 대해 자세히 알아보고 사용하는 방법을 알아보세요!
프로세스 실행 파일 위치 찾기
시스템에는 프로세스 실행 파일을 저장할 수 있는 여러 위치가 있습니다. 현재 실행 중인 프로세스의 파일 시스템 경로를 찾는 것은 Get-Process
를 사용하면 쉽지만, 기본적으로 Path
가 표시되지 않습니다. 아래에서는 Path
속성이 프로세스 실행 파일의 파일 시스템 위치를 포함하고 있음을 보여줍니다.

Get-Process
to display a process’s full file system path on Windows.Windows와 마찬가지로 Linux에서도 Get-Process
는 파일 시스템 경로를 반환합니다. 아래 예시에서는 gnome-calculator
프로세스가 실행되고 콘솔 출력에 경로가 표시됩니다.

Get-Process
to display a process’s full file system path on Linux.책략적인 악의적인 행위자들은 신뢰할 수 있는 프로세스와 같거나 비슷한 이름을 가진 프로세스를 사용할 수 있습니다. 따라서 파일 시스템 경로를 찾을 수 있는 능력은 보안 사고 대응(IR) 시나리오에서 도움이 됩니다. 기본 출력에는 UserName
이 포함되어 있지 않기 때문에 프로세스 소유자를 찾는 방법을 알아보세요.
프로세스 소유자 찾기
출력에 UserName
값을 포함하려면 IncludeUserName
매개변수를 사용해야 합니다. 특히 다른 사용자의 프로세스를 알지 못하고 종료하는 일을 방지하기 위해 프로세스 소유자를 알아야 합니다. 아래 예시에서는 UserName
속성이 프로세스 출력에 포함되어 있습니다.

Calculator
process on Windows.마지막으로, 원격 컴퓨터에서 프로세스 정보를 검색하는 방법에 대해 알아보세요!
원격 컴퓨터에서 프로세스 찾기
Windows PowerShell에서는 Get-Process
가 자체적으로 원격 기능을 가지고 있지 않지만, 항상 PowerShell Remoting과 Invoke-Command
을 활용하여 원격 컴퓨터에서 실행할 수 있습니다.
관련: Windows와 Linux에서 PSRemoting 설정하는 방법
하지만, Linux에서 작동하거나 Windows에서 PowerShell 6을 실행 중인 경우, 이제 원격 컴퓨터의 프로세스를 조회하는 데 사용할 수 있는 ComputerName
매개 변수가 있습니다.
-ComputerName
매개 변수는 PowerShell 7.x에서 제거되었으며 해당 cmdlet은 원격 작업과 직접 관련이 없습니다. 동일한 작업을 수행하려면 다음과 같이Invoke-Command
으로 감싸야 합니다:Invoke-Command -ComputerName "컴퓨터이름" -ScriptBlock { Get-Process -ProcessName '프로세스' }
위 명령은 원격 컴퓨터에 대해 실행되면, Get-Process
명령이 로컬에서 실행된 것과 동일한 출력이 표시됩니다.
아래는 다른 컴퓨터로 원격 작업을 수행하고 실행 중인 프로세스를 가져오는 예제입니다:

쉼표로 구분하여 여러 컴퓨터를 대상으로 지정할 수 있습니다. 예:
Get-Process -ComputerName SRV1,SRV2.
다음 단계
이 문서에서는 Linux와 Windows 모두에서 PowerShell을 사용하여 로컬 및 원격 컴퓨터의 실행 중인 프로세스를 찾는 방법을 배웠습니다.
지금 이 지식으로 무엇을 할 것인가요? Get-Process
로 검색한 프로세스를 로컬 또는 원격 컴퓨터에서 Stop-Process
에 전달하여 종료해 보세요!
Source:
https://adamtheautomator.com/powershell-get-process/