다음을 통해 공유


Get-Service

로컬 또는 원격 컴퓨터의 서비스를 가져옵니다.

구문

Get-Service
   [[-Name] <String[]>]
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Service
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   -DisplayName <String[]>
   [-Include <String[]>]
   [-Exclude <String[]>]
   [<CommonParameters>]
Get-Service
   [-ComputerName <String[]>]
   [-DependentServices]
   [-RequiredServices]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-InputObject <ServiceController[]>]
   [<CommonParameters>]

Description

Get-Service cmdlet은 실행 및 중지된 서비스를 포함하여 로컬 컴퓨터 또는 원격 컴퓨터의 서비스를 나타내는 개체를 가져옵니다.

서비스 이름 또는 서비스의 표시 이름을 지정하여 특정 서비스만 받도록 이 cmdlet에 지시하거나 서비스 개체를 이 cmdlet으로 파이프할 수 있습니다.

예제

예제 1: 컴퓨터의 모든 서비스 가져오기

Get-Service

이 명령은 컴퓨터의 모든 서비스를 가져옵니다. Get-Service *입력한 것처럼 동작합니다. 기본 표시에는 각 서비스의 상태, 서비스 이름 및 표시 이름이 표시됩니다.

예제 2: 검색 문자열로 시작하는 서비스 가져오기

Get-Service "wmi*"

이 명령은 WMI(Windows Management Instrumentation의 약어)로 시작하는 서비스 이름을 사용하여 서비스를 검색합니다.

예제 3: 검색 문자열을 포함하는 서비스 표시

Get-Service -Displayname "*network*"

이 명령은 네트워크라는 단어를 포함하는 표시 이름을 가진 서비스를 표시합니다. 표시 이름을 검색하면 서비스 이름에 xmlprov, Network Provisioning Service와 같은 "Net"이 포함되지 않은 경우에도 네트워크 관련 서비스를 찾습니다.

예제 4: 검색 문자열 및 제외로 시작하는 서비스 가져오기

Get-Service -Name "win*" -Exclude "WinRM"

이러한 명령은 WinRM 서비스를 제외하고 win으로 시작하는 서비스 이름이 있는 서비스만 가져옵니다.

예제 5: 현재 활성 상태인 서비스 표시

Get-Service | Where-Object {$_.Status -eq "Running"}

이 명령은 현재 활성 상태인 서비스만 표시합니다. Get-Service cmdlet을 사용하여 컴퓨터의 모든 서비스를 가져옵니다. 파이프라인 연산자(|)는 결과를 Where-Object cmdlet에 전달합니다. 이 cmdlet은 실행 중과 같은 Status 속성이 있는 서비스만 선택합니다.

상태는 서비스 개체의 속성 중 하나일 뿐입니다. 모든 속성을 보려면 Get-Service | Get-Member입력합니다.

예제 6: 원격 컴퓨터에서 서비스 가져오기

Get-Service -ComputerName "Server02"

이 명령은 Server02 원격 컴퓨터에서 서비스를 가져옵니다.

Get-ServiceComputerName 매개 변수는 Windows PowerShell 원격을 사용하지 않으므로 컴퓨터가 Windows PowerShell에서 원격으로 구성되지 않은 경우에도 이 매개 변수를 사용할 수 있습니다.

예제 7: 종속 서비스가 있는 로컬 컴퓨터의 서비스 나열

Get-Service |
  Where-Object {$_.DependentServices} |
    Format-List -Property Name, DependentServices, @{
      Label="NoOfDependentServices"; Expression={$_.dependentservices.count}
    }

Name                  : AudioEndpointBuilder
DependentServices     : {AudioSrv}
NoOfDependentServices : 1

Name                  : Dhcp
DependentServices     : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...

첫 번째 명령은 Get-Service cmdlet을 사용하여 컴퓨터에서 서비스를 가져옵니다. 파이프라인 연산자(|)는 DependentServices 속성이 null이 아닌 서비스를 선택하는 Where-Object cmdlet으로 서비스를 보냅니다.

다른 파이프라인 연산자는 결과를 Format-List cmdlet으로 보냅니다. 이 명령은 Property 매개 변수를 사용하여 서비스의 이름, 종속 서비스의 이름 및 각 서비스에 있는 종속 서비스 수를 표시하는 계산된 속성을 표시합니다.

예제 8: 속성 값별로 서비스 정렬

Get-Service "s*" | Sort-Object status

Status   Name               DisplayName
------   ----               -----------
Stopped  stisvc             Windows Image Acquisition (WIA)
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  SysmonLog          Performance Logs and Alerts
Running  Spooler            Print Spooler
Running  srservice          System Restore Service
Running  SSDPSRV            SSDP Discovery Service
Running  ShellHWDetection   Shell Hardware Detection
Running  Schedule           Task Scheduler
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon

이 명령은 서비스를 Status 속성 값으로 오름차순으로 정렬하면 서비스를 실행하기 전에 중지된 서비스가 나타납니다. 상태 값은 중지된 값이 1이고 실행 중 값이 4인 열거형이기 때문에 발생합니다.

실행 중인 서비스를 먼저 나열하려면 Sort-Object cmdlet의 내림차순 매개 변수를 사용합니다.

예제 9: 여러 컴퓨터에서 서비스 가져오기

Get-Service -Name "WinRM" -ComputerName "localhost", "Server01", "Server02" |
 Format-Table -Property MachineName, Status, Name, DisplayName -auto

MachineName    Status  Name  DisplayName
------------   ------  ----  -----------
localhost      Running WinRM Windows Remote Management (WS-Management)
Server01       Running WinRM Windows Remote Management (WS-Management)
Server02       Running WinRM Windows Remote Management (WS-Management)

이 명령은 Get-Service cmdlet을 사용하여 두 원격 컴퓨터와 로컬 컴퓨터("localhost")에서 Get-Service Winrm 명령을 실행합니다.

이 명령은 원격 컴퓨터에서 실행되고 결과는 로컬 컴퓨터로 반환됩니다. 파이프라인 연산자(|)는 Format-Table cmdlet으로 결과를 전송하며, 이 cmdlet은 서비스의 형식을 테이블로 지정합니다. Format-Table 명령은 Property 매개 변수를 사용하여 MachineName 속성을 포함하여 테이블에 표시되는 속성을 지정합니다.

예제 10: 서비스의 종속 서비스 가져오기

Get-Service "WinRM" -RequiredServices

이 명령은 WinRM 서비스에 필요한 서비스를 가져옵니다.

이 명령은 서비스의 ServicesDependedOn 속성 값을 반환합니다.

예제 11: 파이프라인 연산자를 통해 서비스 가져오기

"WinRM" | Get-Service

이 명령은 로컬 컴퓨터에서 WinRM 서비스를 가져옵니다. 이 예제에서는 서비스 이름 문자열(따옴표로 묶음)을 get-Service파이프할 수 있음을 보여 줍니다.

매개 변수

-ComputerName

지정된 컴퓨터에서 실행되는 서비스를 가져옵니다. 기본값은 로컬 컴퓨터입니다.

원격 컴퓨터의 NetBIOS 이름, IP 주소 또는 FQDN(정규화된 도메인 이름)을 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, 점(.) 또는 localhost를 입력합니다.

이 매개 변수는 Windows PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 Get-ServiceComputerName 매개 변수를 사용할 수 있습니다.

형식:String[]
별칭:Cn
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-DependentServices

이 cmdlet은 지정된 서비스에 의존하는 서비스만 가져옵니다.

기본적으로 이 cmdlet은 모든 서비스를 가져옵니다.

형식:SwitchParameter
별칭:DS
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-DisplayName

검색할 서비스의 표시 이름을 문자열 배열로 지정합니다. 와일드카드가 허용됩니다. 기본적으로 이 cmdlet은 컴퓨터의 모든 서비스를 가져옵니다.

형식:String[]
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Exclude

이 cmdlet이 작업에서 제외하는 서비스 또는 서비스를 문자열 배열로 지정합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 요소 또는 패턴(예: "s*")을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-Include

문자열 배열로 이 cmdlet이 작업에 포함하는 서비스 또는 서비스를 지정합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 요소 또는 패턴(예: "s*")을 입력합니다. 와일드카드가 허용됩니다.

형식:String[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

-InputObject

검색할 서비스를 나타내는 ServiceController 개체를 지정합니다. 개체가 포함된 변수를 입력하거나 개체를 가져오는 명령이나 식을 입력합니다. 서비스 개체를 이 cmdlet으로 파이프할 수도 있습니다.

형식:ServiceController[]
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:False

-Name

검색할 서비스의 서비스 이름을 지정합니다. 와일드카드가 허용됩니다. 기본적으로 이 cmdlet은 컴퓨터의 모든 서비스를 가져옵니다.

형식:String[]
별칭:ServiceName
Position:0
Default value:None
필수:False
파이프라인 입력 허용:True
와일드카드 문자 허용:True

-RequiredServices

이 cmdlet은 이 서비스에 필요한 서비스만 가져옵니다.

이 매개 변수는 서비스의 ServicesDependedOn 속성 값을 가져옵니다. 기본적으로 이 cmdlet은 모든 서비스를 가져옵니다.

형식:SwitchParameter
별칭:SDO, ServicesDependedOn
Position:Named
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:True

입력

System.ServiceProcess.ServiceController, System.String

서비스 개체 또는 서비스 이름을 이 cmdlet으로 파이프할 수 있습니다.

출력

ServiceController

이 cmdlet은 컴퓨터의 서비스를 나타내는 개체를 반환합니다.

참고

기본 제공 별칭인 "gsv"로 Get-Service 참조할 수도 있습니다. 자세한 내용은 about_Aliases 참조하세요.

이 cmdlet은 현재 사용자에게 볼 수 있는 권한이 있는 경우에만 서비스를 표시할 수 있습니다. 이 cmdlet이 서비스를 표시하지 않으면 서비스를 볼 수 있는 권한이 없을 수 있습니다.

시스템에서 각 서비스의 서비스 이름과 표시 이름을 찾으려면 Get-Service입력합니다. 서비스 이름은 이름 열에 표시되고 표시 이름은 DisplayName 열에 표시됩니다.

상태 값을 기준으로 오름차순으로 정렬하면 "실행 중" 서비스 앞에 "중지됨" 서비스가 표시됩니다. 서비스의 Status 속성은 상태 이름이 정수 값을 나타내는 열거형 값입니다. 정렬은 이름이 아닌 정수 값을 기반으로 합니다. "중지됨"의 값이 "1"이고 "Running"의 값이 "4"이므로 "실행 중"이 "중지됨" 앞에 나타납니다.