서비스를 시작, 중지 및 일시 중단하고 해당 속성을 변경합니다.
구문
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 매개 변수를 사용하여 원하는 상태를 지정합니다.
참고 항목