Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법

화면에서 실행되고 있는 애플리케이션은 Windows 내부에서 일어나는 일의 극히 일부에 불과합니다. 장치 드라이버 관리부터 보안 유지까지, 수많은 백그라운드 프로세스가 Windows PC가 정상적으로 작동하도록 뒷받침하고 있습니다.

여러 대의 컴퓨터를 관리하는 시스템 관리자라면 이러한 핵심 서비스들의 상태를 한눈에 파악할 수 있는 능력이 필수적입니다. 작업 관리자를 이용한 방식은 너무 느릴 뿐 아니라 스크립트로 자동화할 수도 없습니다.

그렇다면 해결책은 무엇일까요? 바로 명령줄 도구입니다. 명령 프롬프트나 PowerShell을 활용하면 시스템에서 실행 중인 Microsoft 서비스의 상태를 빠르게 조회하여 문제를 신속하게 진단할 수 있습니다.

명령 프롬프트에서 Windows 서비스 목록 확인하기

PowerShell만큼 유연하고 강력하지는 않지만, 명령 프롬프트 역시 시스템 관리자에게 유용한 도구입니다. queryex 명령으로 활성 및 비활성 서비스의 상태를 확인하고, taskkill 명령으로 성가신 프로세스를 종료할 수 있습니다.

  1. queryex 명령을 사용하려면 명령 프롬프트를 관리자 권한으로 실행해야 합니다. 시작 메뉴에서 'cmd'를 검색하면 앱을 찾을 수 있습니다.
PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. sc queryex 명령은 다양한 방식으로 활용할 수 있으며, 그중 Type과 State가 가장 널리 쓰이는 두 가지 매개변수입니다. 예를 들어 모든 Windows 프로세스를 조회하려면 아래 명령을 입력합니다.

sc queryex type=service state=all

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 기본 출력 형식은 다소 복잡하게 느껴질 수 있습니다. 프로세스 이름만 표시하도록 하면 목록을 훨씬 쉽게 분석할 수 있습니다.

sc queryex type=service state=all | find /i “SERVICE_NAME:”

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 기본적으로 이 명령은 활성 상태의 모든 프로세스를 나열합니다. 비활성 프로세스를 찾으려면 state 매개변수 값을 변경하면 됩니다.

sc queryex type=service state=inactive

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 특정 프로세스의 상태를 이름으로 조회할 수도 있습니다. 배치 파일을 만들어 여러 프로세스를 한 번에 점검할 수 있어 시스템 관리자에게 특히 유용합니다. 아래는 그 예시입니다.

sc query DeviceInstall

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법

PowerShell에서 Windows 서비스 목록 확인하기

PowerShell은 최신 Windows를 위해 설계된 전용 명령줄 셸입니다. 따라서 거의 모든 운영체제 구성 요소에 명령으로 접근할 수 있으며, Windows 서비스 역시 예외가 아닙니다.

PowerShell의 가장 큰 장점은 손쉬운 자동화입니다. 모든 PowerShell 명령은 복잡한 스크립트로 조합할 수 있어, 여러 대의 PC에서 시스템 관리 작업을 번거로움 없이 자동화할 수 있습니다.

  1. 먼저 PowerShell을 엽니다. 시작 메뉴에서 검색할 수 있으며, 반드시 관리자 권한(승격된 인스턴스)으로 실행해야 합니다.
PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. PowerShell에서 Windows 서비스를 나열하는 가장 간단한 명령은 Get-Service입니다. 컴퓨터의 모든 서비스와 각각의 상태 및 이름이 표시됩니다. 다만 서비스 목록이 상당히 길어질 수 있다는 점은 감안해야 합니다.
PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. Get-Service를 사용할 때는 목록을 텍스트 파일로 내보내는 것이 좋습니다. 파이프(|)를 활용하면 다음과 같이 간단히 처리할 수 있습니다.

Get-Service | Out-File “C:\logs\All_Services.txt”

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 특정 서비스의 상태를 확인하려면 Get-Service 명령 뒤에 서비스 이름을 입력하면 됩니다. 이름을 쉼표로 구분하면 여러 프로세스의 상태를 한 번에 요청할 수도 있습니다.

Get-Service CryptSvc, COMSysApp

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 파이프를 사용하면 Get-Service cmdlet을 Where-Object 함수와 결합하여 Status 기준으로 결과를 필터링할 수도 있습니다. 다음 명령은 Running 상태인 모든 서비스를 가져오는 예입니다.

Get-Service | Where-Object {$_.Status -EQ “Running”}

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법

서비스 종속성 확인하기

복잡한 프로세스는 여러 개의 상호 의존적인 서비스로 구성됩니다. 그렇기 때문에 특정 서비스의 상태만 확인하는 것으로는 부족한 경우가 많습니다. 해당 서비스가 의존하는 서비스들의 상태까지 함께 점검해야 합니다.

  1. 특정 서비스가 필요로 하는 서비스를 보려면 Get-Service cmdlet에 -RequiredServices 플래그를 붙여 사용합니다. 아래는 예시입니다.

Get-Service -Name CryptSvc –RequiredServices

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 반대로 특정 서비스에 의존하는 서비스 목록을 확인하려면 -DependentServices 플래그를 활용합니다.

Get-Service -Name CryptSvc -DependentServices

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법

이 두 플래그는 Windows 서비스를 자동으로 시작하거나 중지하는 스크립트를 작성할 때 매우 중요합니다. 영향받는 서비스와 연관된 모든 서비스를 추적할 수 있는 수단을 제공하기 때문입니다.

원격 컴퓨터에서 Windows 서비스 목록 확인하기

PowerShell 방식은 로컬 컴퓨터에만 국한되지 않습니다. 위에서 설명한 것과 동일한 구문의 Get-Service cmdlet을 사용하여 원격 PC의 프로세스도 조회할 수 있습니다. 명령 끝에 -ComputerName 플래그를 추가해 정보를 가져올 원격 컴퓨터를 지정하기만 하면 됩니다.

아래는 그 예시입니다.

get-service CryptSvc -ComputerName Workstation7

PowerShell로 Windows 서비스 관리하기

서비스 상태 확인만이 PowerShell에서 할 수 있는 전부는 아닙니다. 완전한 스크립팅 환경인 만큼, GUI에서 제공하는 모든 기능에 대한 스크립트 기반 대안을 제공합니다.

PowerShell cmdlet으로 서비스를 중지, 시작, 재시작할 수 있을 뿐만 아니라 속성까지 수정할 수 있습니다. 자동화된 Get-Service 명령과 결합하면 일상적인 시스템 관리 작업을 완전히 자동화하는 스크립트를 작성할 수 있습니다.

  1. 서비스 상태 조회 외에도 PowerShell로 직접 서비스를 제어할 수 있습니다. 서비스 시작과 중지는 서비스 이름만 알면 단일 명령으로 처리됩니다. 예를 들어 서비스를 중지하는 방법은 다음과 같습니다.

Stop-Service -Name Spooler

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 서비스를 시작하는 방법도 이와 유사합니다.

Start-Service -Name Spooler

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 서비스가 정상적으로 작동하지 않는다면 재시작을 선택할 수도 있습니다.

Restart-Service -Name Spooler

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법
  1. 또한 Set-Service cmdlet을 사용하면 서비스의 속성을 변경할 수 있습니다. 아래 예시에서는 Print Spooler 서비스의 자동 시작을 비활성화합니다.

Set-Service ‘Spooler’ -StartupType Disabled

PowerShell과 명령 프롬프트로 Windows 서비스 목록 손쉽게 확인하는 방법

Windows 서비스 목록 확인, 어떤 방법이 가장 좋을까?

Windows 10이든 Windows Server든, 전체 Windows 서비스 목록을 확인할 수 있다면 여러모로 유용합니다. 핵심 시스템 기능의 문제를 진단하거나, 불필요한 Microsoft 서비스를 중지해 성능을 개선할 수 있기 때문입니다.

이러한 용도로는 PowerShell이 가장 좋은 선택입니다. 명령 프롬프트로도 서비스 목록을 얻을 수 있지만, PowerShell이 제공하는 추가 기능이 실무에서 훨씬 더 유용합니다.

PowerShell cmdlet을 사용하면 Windows 프로세스의 서비스 상태를 조회하면서 상태나 기타 매개변수별로 필터링할 수 있습니다. 또한 종속 서비스를 손쉽게 파악하고 필요에 따라 시작하거나 중지하는 것도 가능합니다.