서비스를 시작, 중지 및 일시 중단하고 해당 속성을 변경합니다.

구문

Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject <ServiceController>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Set-Service cmdlet은 상태, 설명, 표시 이름 및 시작 모드를 포함하여 로컬 또는 원격 서비스의 속성을 변경합니다. 이 cmdlet을 사용하여 서비스를 시작, 중지 또는 일시 중단(일시 중지)할 수 있습니다. 서비스를 식별하려면 해당 서비스 이름을 입력하거나 서비스 개체를 전달하거나, 서비스 이름이나 서비스 개체를 Set-Service로 파이프합니다.

매개 변수

-ComputerName <string[]>

하나 이상의 컴퓨터를 지정합니다. 기본값은 로컬 컴퓨터입니다.

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

이 매개 변수는 Windows PowerShell 원격에 독립적입니다. 원격 명령을 실행하도록 컴퓨터를 구성하지 않은 경우에도 Set-Service의 ComputerName 매개 변수를 사용할 수 있습니다.

필수 여부

false

위치

named

기본값

local computer

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Description <string>

서비스에 대한 새 설명을 지정합니다.

서비스 설명은 컴퓨터 관리의 서비스에 표시됩니다. 설명은 Get-Service가 가져오는 ServiceController 개체의 속성이 아닙니다. 서비스 설명을 보려면 Get-WmiObject를 사용하여 서비스를 나타내는 Win32_Service 개체를 가져옵니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-DisplayName <string>

서비스의 새 표시 이름을 지정합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-InputObject <ServiceController>

변경할 서비스를 나타내는 ServiceController 개체를 지정합니다. 개체가 포함된 변수를 입력하거나 개체를 가져오는 Get-Service 명령과 같은 명령 또는 식을 입력합니다. 또한 서비스 개체를 Set-Service로 파이프할 수 있습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

true (ByValue)

와일드카드 문자 적용 여부

false

-Name <string>

변경할 서비스의 서비스 이름을 지정합니다. 와일드카드는 사용할 수 없습니다. 또한 서비스 이름을 Set-Service로 파이프할 수 있습니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-PassThru

변경된 서비스를 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet에서는 출력을 생성하지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-StartupType <ServiceStartMode>

서비스의 시작 모드를 변경합니다. StartupType의 유효한 값은 다음과 같습니다.

-- Automatic: 시스템 시작 시 시작합니다.

-- Manual: 사용자 또는 프로그램에서 시작할 때만 시작합니다.

-- Disabled: 시작할 수 없습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Status <string>

서비스를 시작, 중지 또는 일시 중단(일시 중지)합니다. 유효한 값은 다음과 같습니다.

-- Running: 서비스를 시작합니다.

-- Stopped: 서비스를 중지합니다.

-- Paused: 서비스를 일시 중단합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Confirm

명령을 실행하기 전에 확인 메시지를 표시합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-WhatIf

명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

<CommonParameters>

이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_Commonparameters.

입력 및 출력

입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.

입력

System.ServiceProcess.ServiceController, System.String

서비스 개체나 서비스 이름이 포함된 문자열을 Set-Service로 파이프할 수 있습니다.

출력

없음

이 cmdlet은 어떠한 개체도 반환하지 않습니다.

참고

Windows Vista 이상에서 Set-Service를 사용하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.

Set-Service는 현재 사용자가 서비스를 제어할 수 있는 권한을 가진 경우에만 서비스를 제어할 수 있습니다. 따라서 명령이 제대로 작동하지 않는 경우 필요한 권한이 없을 수 있습니다.

사용자 시스템의 서비스에 대한 서비스 이름 및 표시 이름을 찾으려면 "Get-Service"를 입력하십시오. 서비스 이름은 Name 열에 나타나고 표시 이름은 DisplayName 열에 나타납니다.

예 1

C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"

설명
-----------
이 명령은 lanmanworkstation 서비스의 표시 이름을 "LanMan Workstation"(기본값은 "Workstation")으로 변경합니다.






예 2

C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

C:\PS> set-service sysmonlog -startuptype automatic

C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto

Name                                  StartMode
----                                  ---------
AdtAgent                              Auto
Alerter                               Disabled
ALG                                   Manual
AppMgmt                               Manual
...

설명
-----------
이들 명령은 성능 로그 및 경고(SysmonLog) 서비스의 시작 유형을 가져오고 시작 모드를 자동으로 설정한 다음 변경 결과를 표시합니다.

Get-Service가 반환하는 ServiceController 개체에는 시작 모드가 포함되어 있지 않으므로 이들 명령은 Get-WmiObject cmdlet을 사용하여 서비스의 Win32_Service 개체를 가져옵니다.

첫 번째 명령은 Get-WmiObject cmdlet을 사용하여 SysmonLog 서비스를 나타내는 WMI(Windows Management Instrumentation) 개체를 가져옵니다. 이 명령의 기본 출력은 서비스의 시작 모드를 표시합니다. 

두 번째 명령은 Set-Service를 사용하여 시작 모드를 자동으로 변경합니다. 그런 다음 변경 내용을 표시하도록 첫 번째 명령이 반복됩니다.

마지막 명령은 컴퓨터에 있는 모든 서비스의 시작 모드를 표시합니다.






예 3

C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks."

C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description

설명
-----------
이들 명령은 S1 원격 컴퓨터의 작업 스케줄러 서비스에 대한 설명을 변경한 다음 결과를 표시합니다.

Get-Service가 반환하는 ServiceController 개체에는 서비스 설명이 포함되어 있지 않으므로 이들 명령은 Get-WmiObject cmdlet을 사용하여 서비스의 Win32_Service 개체를 가져옵니다.

첫 번째 명령은 Set-Service 명령을 사용하여 설명을 변경합니다. 이 명령은 서비스의 서비스 이름("Schedule")을 사용하여 서비스를 식별합니다.

두 번째 명령은 Get-WmiObject cmdlet을 사용하여 작업 스케줄러 서비스를 나타내는 WMI Win32_Service의 인스턴스를 가져옵니다. 명령의 첫 번째 요소는 Win32_service 클래스의 모든 인스턴스를 가져옵니다. 

파이프라인 연산자(|)는 Where-Object cmdlet으로 결과를 전달합니다. Where-Object cmdlet은 Name 속성 값이 "Schedule"인 인스턴스를 선택합니다. 

다른 파이프라인 연산자는 결과를 Format-List cmdlet으로 보냅니다. Format-List cmdlet은 결과 형식을 Name 및 Description 속성만 있는 목록으로 지정합니다.






예 4

C:\PS>set-service winrm -status Running -passthru -computername Server02

설명
-----------
이 명령은 Server02 컴퓨터에서 WinRM 서비스를 시작합니다. Status 매개 변수를 사용하여 원하는 상태("running")를 지정하고 PassThru 매개 변수를 사용하여 Set-Service에서 WinRM 서비스를 나타내는 개체를 반환하도록 지시합니다.






예 5

C:\PS>get-service schedule -computername S1, S2 | set-service -status paused

설명
-----------
이 명령은 S1 및 S2 원격 컴퓨터의 Schedule 서비스를 일시 중단합니다. Get-Service cmdlet을 사용하여 서비스를 가져오며 파이프라인 연산자(|)는 서비스를 Set-Service cmdlet으로 개체를 전달하고 해당 상태를 "Paused"로 변경합니다.






예 6

C:\PS>$s = get-service schedule

C:\PS> set-service -inputobject $s -status stopped

설명
-----------
이들 명령은 로컬 컴퓨터의 Schedule 서비스를 중지합니다. 

첫 번째 명령은 Get-Service cmdlet을 사용하여 Schedule 서비스를 가져온 다음 $s 변수에 해당 서비스를 저장합니다.

두 번째 명령은 Set-Service cmdlet을 사용하여 Schedule 서비스의 상태를 "Stopped"로 변경한 다음 InputObject 매개 변수를 사용하여 $s 변수에 저장된 서비스를 전달하고 Status 매개 변수를 사용하여 원하는 상태를 지정합니다.






참고 항목




목차