PowerShell에서 실행 중인 프로세스 목록을 가져오는 방법

  1. PowerShell에서 Get-Process Cmdlet을 사용하여 실행 중인 프로세스 목록 표시하기
  2. 결론
PowerShell에서 실행 중인 프로세스 목록을 가져오는 방법

이 기사에서는 PowerShell을 이용한 프로세스 모니터링에 대해 다루며, Get-Process cmdlet에 중점을 둡니다. Get-Process cmdlet은 프로세스 관리에서 필수적인 도구로, Windows 머신에서 실행 중인 프로세스에 대한 종합적인 뷰를 제공하며, 프로세스 ID, 이름, 메모리 사용량, CPU 소비와 같은 중요한 정보를 표시합니다.

이 기사는 cmdlet의 구문 및 매개변수를 체계적으로 설명하여, 일반적인 프로세스 문의와 특정 프로세스 문의 모두를 다룹니다.

PowerShell에서 Get-Process Cmdlet을 사용하여 실행 중인 프로세스 목록 표시하기

PowerShell 환경에서는 200개 이상의 cmdlet을 사용할 수 있습니다. 각 cmdlet은 특정 기능을 수행하는 역할을 합니다.

Get-Process는 Windows 머신에서 실행 중인 프로세스 목록을 검색하는 데 도움이 되는 자주 사용되는 cmdlet 중 하나입니다.

이 cmdlet은 각 프로세스와 관련된 유용한 정보인 프로세스 ID, 이름, 메모리 사용량 등을 제공합니다. 또한 시스템에서 실행 중인 프로세스의 스냅샷을 표시합니다.

구문:

Get-Process [[-ProcessName] string[]] [-NameOfTheComputer string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -processID Int32[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

Get-Process -ProcessInputObject Process[] [-ComputerName string[]]
[-FileVersionInfo] [-Module] [CommonParameters]

매개변수:

  • ProcessName string[]: 검색할 프로세스 이름의 배열을 지정합니다. 이 매개변수는 패턴 일치를 위한 와일드카드 문자를 허용합니다. 이 매개변수를 생략하면 Get-Process는 모든 프로세스를 검색합니다.
  • ProcessId Int32[]: 검색할 프로세스의 프로세스 ID를 지정합니다. 이 매개변수는 특정 프로세스를 직접 지정할 수 있게 해줍니다.
  • InputObject Process[]: 프로세스 객체의 배열을 지정합니다. 이 매개변수는 프로세스 객체를 Get-Process에 파이프할 수 있게 해줍니다.
  • NameOfTheComputer string[]: 명령을 실행할 컴퓨터의 이름을 지정합니다. 이 매개변수를 생략하면 Get-Process는 로컬 컴퓨터에서 프로세스를 검색합니다.
  • FileVersionInfo: 프로세스 객체에 파일 버전 정보를 추가합니다. 이는 프로세스의 실행 파일에 대한 세부 정보(예: 버전, 제품 이름 등)를 원할 때 유용합니다.
  • Module: 각 프로세스에 의해 로드된 모듈(DLL 및 실행 파일)을 포함합니다. 이는 프로세스에 의해 로드된 DLL을 확인하는 것과 같은 더 자세한 분석에 도움이 됩니다.
  • [CommonParameters]: 모든 cmdlet이 지원하는 매개변수로, -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutVariable, -OutBuffer, -PipelineVariable 등이 있습니다.

매개변수는 Get-Process cmdlet에 대해 선택적이며, 필요에 따라 사용할 수 있습니다.

모든 실행 중인 프로세스 표시

매개변수 없이 Get-Process 명령을 직접 사용할 수 있습니다. 이 명령은 해당 시간에 실행 중인 모든 프로세스를 표시해야 합니다.

또한 Get-Process 명령 대신 gps 별칭을 사용할 수 있습니다.

Get-Process
gps

출력:

모든 실행 중인 프로세스 표시

Get-Process 또는 gps를 실행하면 PowerShell은 시스템 전체 쿼리를 시작하여 모든 활성 프로세스에 대한 정보를 수집합니다. 이 명령에서 매개변수가 없다는 것은 PowerShell에게 필터를 적용하지 않고 모든 프로세스의 세부 정보를 검색하라는 신호입니다.

PowerShell은 각 실행 중인 프로세스에 대한 상세 데이터를 수집합니다. 이 데이터에는 이러한 프로세스의 상태와 특성을 설명하는 다양한 속성이 포함됩니다.

PowerShell은 이를 표시하기 위해 테이블 형식으로 포맷합니다. 이 표 형식은 정보를 명확하고 읽기 쉽게 제시하기 위해 설계되었습니다.

표에는 일반적으로 여러 주요 열이 포함됩니다:

  1. Id: 이 열은 각 프로세스에 할당된 고유한 숫자 레이블인 프로세스 식별자(PID)를 보여줍니다. PID는 특정 프로세스를 고유하게 식별하고 관리하는 데 매우 중요합니다.
  2. ProcessName: 이는 프로세스를 시작한 실행 파일의 이름입니다. 이는 잘 알려진 애플리케이션의 경우 프로세스를 쉽게 인식하는 데 도움을 줍니다.
  3. CPU(s): 여기에서는 프로세스가 소모한 CPU 시간의 양을 볼 수 있습니다. 이는 초로 측정되며, 시스템 성능에 영향을 미칠 수 있는 중요한 CPU 리소스를 사용하는 프로세스를 평가하는 데 중요합니다.
  4. PM(K): 이는 킬로바이트로 된 페이지된 메모리를 나타냅니다. 이는 디스크로 페이지될 수 있는 프로세스가 사용하는 메모리의 크기를 나타냅니다. 이 메트릭은 성능 조정과 리소스 관리에 매우 중요합니다.

특정 프로세스에 대한 정보 검색

PowerShell을 사용하여 특정 프로세스에 대한 정보를 검색할 때 몇 가지 구문 옵션이 있습니다. Get-Process -Name processNameGet-Process processName 두 가지 모두 유효하며 동일한 결과를 얻지만, 구문 구조에서 약간의 차이가 있습니다.

Get-Process -Name typora

또는

Get-Process typora

Get-Process -Name typora 또는 Get-Process typora를 실행하면 PowerShell은 실행 중인 프로세스를 필터링하고 typora라는 이름을 가진 프로세스에 대한 정보를 반환합니다. 이는 우리가 관심 있는 프로세스의 정확한 이름을 알 때 특히 유용합니다.

PowerShell 내부에서는 모든 프로세스 목록을 살펴보고 프로세스 이름과 typora를 일치시킵니다. 프로세스가 실행 중인 경우 그 세부 정보가 표시됩니다.

출력:

Get-Process -Name

여러 프로세스에 대한 정보 검색

PowerShell에서 여러 프로세스에 대한 정보를 검색하기 위해 Get-Process cmdlet을 사용할 때, Get-Process NotePad, Outlook와 같은 명령어를 사용함으로써 PowerShell의 여러 항목을 동시에 처리할 수 있는 기능을 활용하고 있습니다.

Get-Process NotePad, Outlook

Get-Process NotePad, Outlook를 실행함으로써 PowerShell은 여러 프로세스에 대한 세부 정보, 즉 NotePadOutlook의 세부 정보를 동시에 가져오도록 지시합니다. 이 명령은 여러 특정 프로세스를 모니터링할 때 유용합니다.

PowerShell은 단일 프로세스 명령과 유사한 작업을 실행하지만 각 지정된 프로세스 이름에 대해 모든 일치를 표시합니다.

출력:

여러 프로세스 가져오기

또한, 프로세스 이름에 와일드 카드를 사용할 수도 있습니다.

주어진 속성으로 프로세스 객체 검색

필요할 때 특정 속성에 대한 프로세스 객체 정보를 표시할 수 있습니다. NotePad 프로세스에 대한 Process ID만 검색해 보겠습니다.

(Get-Process NotePad).Id

명령어 (Get-Process NotePad).Id에서, 먼저 NotePad에 대한 프로세스 객체를 가져온 후 그 Id 속성에 접근합니다. 이 기술은 프로세스에 대한 특정 정보, 즉 Process ID와 같은 정보만 필요할 때 유용합니다.

출력:

주어진 속성으로 프로세스 객체 검색

또한, 다음과 같이 NotePad 프로세스의 CPU 시간 속성을 검색할 수도 있습니다.

(Get-Process NotePad).CPU

비슷하게, (Get-Process NotePad).CPUNotePad 프로세스의 CPU 사용 정보 검색합니다. 이러한 명령은 프로세스 객체에서 특정 데이터 포인트를 추출하는 방법을 보여줍니다.

출력:

프로세스 CPU 얻기

프로세스 소유자 표시

Get-Process 명령의 기본 출력에는 ProcessOwner 속성이 표시되지 않습니다. 그러나 주어진 프로세스를 종료해야 할 때 이 정보는 유용할 수 있습니다.

-IncludeUserName 매개변수를 사용하여 출력에 ProcessOwner 속성을 포함할 수 있습니다.

Get-Process -Name notepad -IncludeUserName

Get-Process -Name notepad -IncludeUserName 명령은 기본적으로 Get-Process의 동작을 확장하여 프로세스 소유자의 사용자 이름을 출력에 포함시킵니다. -IncludeUserName 매개변수는 특정 프로세스를 실행하는 사용자를 식별할 필요가 있을 때 필수적이며, 이는 다중 사용자 환경이나 문제 해결 시 매우 중요할 수 있습니다.

이 명령은 프로세스의 소유권과 관련하여 프로세스를 더욱 잘 볼 수 있게 해줍니다.

출력:

Get-Process IncludeUserName

결론

이 포괄적인 가이드는 시스템 프로세스를 관리하고 모니터링하는 데 있어 PowerShell의 강력함과 다재다능성을 밝혀주었습니다. 우리는 Get-Process cmdlet의 실용적인 응용 프로그램을 살펴보았으며, 모든 실행 중인 프로세스를 나열하는 것부터 특정 프로세스를 정확하게 지목하고 특정 프로세스 속성을 추출하는 데까지 여정을 떠났습니다.

이 기사는 또한 여러 프로세스를 동시에 처리하는 PowerShell의 기량과 프로세스 소유권과 같은 사용자 중심 정보를 통합하는 쉬운 방법을 보여주었습니다.

Get-Process cmdlet의 통합은 PowerShell의 프로세스 관리 분야에서의 강력하고 적응력을 강조하며, 시스템 관리자가 Windows 환경 내에서 프로세스를 효과적으로 모니터링하고 분석하며 관리할 수 있는 도구의 스펙트럼을 제공합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.