Set-Service

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

Syntax

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

이 cmdlet은 Windows 플랫폼에서만 사용할 수 있습니다.

cmdlet은 Set-Service 상태, 설명, DisplayName 및 StartupType같은 서비스의 속성을 변경합니다. Set-Service 는 서비스를 시작, 중지, 일시 중단 또는 일시 중지할 수 있습니다. 서비스를 식별하려면 서비스 이름을 입력하거나 서비스 개체를 제출합니다. 또는 파이프라인 Set-Service아래로 서비스 이름 또는 서비스 개체를 보냅니다.

예제

예제 1: 표시 이름 변경

이 예제에서는 서비스의 표시 이름이 변경됩니다. 원래 표시 이름을 보려면 .를 사용합니다 Get-Service.

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service는 Name 매개 변수를 사용하여 서비스의 이름인 LanmanWorkstation을 지정합니다. DisplayName 매개 변수는 새 표시 이름인 LanMan Workstation을 지정합니다.

예제 2: 서비스의 시작 유형 변경

이 예제에서는 서비스의 시작 유형을 변경하는 방법을 보여줍니다.

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-ServiceName 매개 변수를 사용하여 서비스의 이름인 BITS를 지정합니다. StartupType 매개 변수는 서비스를 자동으로 설정합니다.

Get-ServiceName 매개 변수를 사용하여 BITS 서비스를 지정하고 개체를 파이프라인 아래로 보냅니다. Select-Object는 Property 매개 변수를 사용하여 BITS 서비스의 상태 표시합니다.

예제 3: 서비스에 대한 설명 변경

다음은 BITS 서비스의 설명을 변경하고 결과를 표시하는 예제입니다.

Get-CimInstance cmdlet은 서비스의 설명이 포함된 Win32_Service 개체를 반환하기 때문에 사용됩니다.

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance 는 파이프라인 Format-List 아래로 개체를 보내고 서비스의 이름과 설명을 표시합니다. 비교를 위해 설명이 업데이트되기 전과 후에 명령이 실행됩니다.

Set-ServiceName 매개 변수를 사용하여 BITS 서비스를 지정 합니다 . Description 매개 변수는 서비스 설명에 대한 업데이트된 텍스트를 지정합니다.

예제 4: 서비스 시작

이 예제에서는 서비스가 시작됩니다.

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-ServiceName 매개 변수를 사용하여 서비스 WinRM을 지정합니다. Status 매개 변수는 실행 중인 값을 사용하여 서비스를 시작합니다. PassThru 매개 변수는 결과를 표시하는 ServiceController 개체를 출력합니다.

예제 5: 서비스 일시 중단

이 예제에서는 파이프라인을 사용하여 서비스를 일시 중지합니다.

Get-Service -Name Schedule | Set-Service -Status Paused

Get-ServiceName 매개 변수를 사용하여 Schedule 서비스를 지정하고 개체를 파이프라인 아래로 보냅니다. Set-ServiceStatus 매개 변수를 사용하여 서비스를 일시 중지됨으로 설정합니다.

예제 6: 서비스 중지

이 예제에서는 변수를 사용하여 서비스를 중지합니다.

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-ServiceName 매개 변수를 사용하여 서비스인 Schedule을 지정합니다. 개체는 변수 $S에 저장됩니다. Set-Service 에서는 InputObject 매개 변수를 사용하고 저장된 $S개체를 지정합니다. Status 매개 변수는 서비스를 중지됨으로 설정합니다.

예제 7: 원격 시스템에서 서비스 중지

다음은 원격 컴퓨터에서 서비스를 중지하는 예제입니다. 자세한 내용은 Invoke-Command를 참조 하세요.

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential 는 사용자 이름 및 암호를 묻는 메시지를 표시하고 자격 증명을 변수에 $Cred 저장합니다. Get-ServiceName 매개 변수를 사용하여 Schedule 서비스를 지정합니다. 개체는 변수 $S에 저장됩니다.

Invoke-CommandComputerName 매개 변수를 사용하여 원격 컴퓨터를 지정합니다. 자격 증명 매개 변수는 변수를 $Cred 사용하여 컴퓨터에 로그온합니다. ScriptBlock호출합니다Set-Service. InputObject 매개 변수는 저장된 $S서비스 개체를 지정합니다. Status 매개 변수는 서비스를 중지됨으로 설정합니다.

예제 8: 서비스의 자격 증명 변경

다음은 서비스를 관리하는 데 사용되는 자격 증명을 변경하는 예제입니다.

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential 는 사용자 이름 및 암호를 묻는 메시지를 표시하고 자격 증명을 변수에 $credential 저장합니다. Set-ServiceName 매개 변수를 사용하여 Schedule 서비스를 지정합니다. 자격 증명 매개 변수는 변수를 $credential 사용하고 Schedule 서비스를 업데이트합니다.

예제 9: 서비스의 SecurityDescriptor 변경

다음은 서비스의 SecurityDescriptor를 변경하는 예제입니다.

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor는 변수에 $SDDL 저장됩니다. Set-ServiceName 매개 변수를 사용하여 BITS 서비스를 지정 합니다 . SecurityDescriptorSddl 매개 변수는 BITS 서비스의 SecurityDescriptor변경하는 데 사용합니다$SDDL.

예제 10: 여러 서비스에 대한 시작 유형 설정

cmdlet은 Set-Service 한 번에 하나의 서비스 이름만 허용합니다. 그러나 여러 서비스를 파이프하여 Set-Service 여러 서비스의 구성을 변경할 수 있습니다.

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

매개 변수

-Confirm

를 실행 Set-Service하기 전에 확인 메시지를 표시합니다.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

서비스에서 서비스 로그온 계정으로 사용하는 계정을 지정합니다.

User01 또는 Do기본01\User01과 같은 사용자 이름을 입력하거나 cmdlet에서 생성된 것과 같은 PSCredential 개체를 Get-Credential 입력합니다. 사용자 이름을 입력하는 경우 이 cmdlet은 암호를 묻는 메시지를 표시합니다.

자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString으로 저장됩니다.

참고 항목

SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?를 참조하세요.

이 매개 변수는 PowerShell 6.0에서 도입되었습니다.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

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

서비스 설명은 컴퓨터 관리, 서비스에 표시됩니다. DescriptionServiceController 개체의 속성이 Get-Service아닙니다. 서비스 설명을 보려면 서비스를 나타내는 Win32_Service 개체를 반환하는 데 사용합니다Get-CimInstance.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

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

참고 항목

일반적으로 Set-Service 드라이버가 아닌 Windows 서비스에서만 작동합니다. 그러나 드라이버의 이름을 지정하는 경우 드라이버를 Set-Service 대상으로 지정할 수 있습니다.

Type:String
Aliases:DN
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

서비스의 중지 모드를 지정합니다. 이 매개 변수는 사용되는 경우에만 작동합니다 -Status Stopped . 사용하도록 설정된 Set-Service 경우 대상 서비스가 중지되기 전에 종속 서비스를 중지합니다. 기본적으로 다른 실행 중인 서비스가 대상 서비스에 의존할 때 예외가 발생합니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

변경할 서비스를 나타내는 ServiceController 개체를 지정합니다. 개체가 포함된 변수를 입력하거나 명령과 같이 Get-Service 개체를 가져오는 명령이나 식을 입력합니다. 파이프라인을 사용하여 서비스 개체 Set-Service를 .에 보낼 수 있습니다.

Type:ServiceController
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

변경할 서비스의 서비스 이름을 지정합니다. 와일드카드 문자는 허용되지 않습니다. 파이프라인을 사용하여 서비스 이름을 Set-Service.에 보낼 수 있습니다.

참고 항목

일반적으로 Set-Service 드라이버가 아닌 Windows 서비스에서만 작동합니다. 그러나 드라이버의 이름을 지정하는 경우 드라이버를 Set-Service 대상으로 지정할 수 있습니다.

Type:String
Aliases:ServiceName, SN
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

변경된 서비스를 나타내는 ServiceController 개체를 반환합니다. 기본적으로 출력은 Set-Service 생성하지 않습니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecurityDescriptorSddl

서비스의 SecurityDescriptor를 Sddl 형식으로 지정합니다. 이 매개 변수를 사용하여 호출하는 Set-Service 계정에는 WRITE_DAC 및 WRITE_OWNER 권한이 있어야 합니다. 자세한 내용은 서비스 보안 및 액세스 권한을 참조 하세요.

Type:String
Aliases:sd
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartupType

서비스의 시작 모드를 지정합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 자동 - 서비스가 시스템 시작 시 운영 체제에서 시작되거나 시작되었습니다. 자동으로 시작되는 서비스가 수동으로 시작되는 서비스에 종속된 경우 수동으로 시작되는 서비스도 시스템 시작 시 자동으로 시작됩니다.
  • AutomaticDelayedStart - 시스템이 부팅된 직후에 시작됩니다.
  • 사용 안 함 - 서비스를 사용할 수 없으며 사용자 또는 애플리케이션에서 시작할 수 없습니다.
  • InvalidValue - 효과가 없습니다. cmdlet은 오류를 반환하지 않지만 서비스의 StartupType은 변경되지 않습니다.
  • 수동 - 서비스는 수동, 사용자, 서비스 제어 관리자 사용 또는 애플리케이션에서만 시작됩니다.
Type:Microsoft.PowerShell.Commands.ServiceStartupType
Aliases:StartMode, SM, ST, StartType
Accepted values:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Status

서비스의 상태 지정합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 일시 중지되었습니다. 서비스를 일시 중단합니다.
  • 실행 중. 서비스를 시작합니다.
  • 중지됨. 서비스를 중지합니다.
Type:String
Accepted values:Paused, Running, Stopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

실행될 경우 Set-Service 어떤 일이 발생하는지 표시합니다. cmdlet이 실행되지 않습니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

ServiceController

서비스 개체를 이 cmdlet으로 파이프할 수 있습니다.

String

서비스 이름이 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

기본적으로 이 cmdlet은 출력을 반환하지 않습니다.

ServiceController

PassThru 매개 변수를 사용하는 경우 이 cmdlet은 ServiceController 개체를 반환합니다.

참고

이 cmdlet은 Windows 플랫폼에서만 사용할 수 있습니다.

Set-Service 에는 상승된 권한이 필요합니다. 관리자 권한으로 실행 옵션을 사용합니다.

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

서비스의 서비스 이름 또는 표시 이름을 찾으려면 .를 사용합니다 Get-Service. 서비스 이름은 이름 열에 있고 표시 이름은 DisplayName 열에 있습니다.