Start-Service

하나 이상의 중지된 서비스를 시작합니다.

Syntax

Start-Service
     [-InputObject] <ServiceController[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-Name] <String[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-PassThru]
     -DisplayName <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

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

cmdlet은 Start-Service 지정된 각 서비스에 대해 Windows 서비스 컨트롤러에 시작 메시지를 보냅니다. 서비스가 이미 실행 중인 경우 메시지는 오류 없이 무시됩니다. 서비스 이름 또는 표시 이름으로 서비스를 지정하거나 InputObject 매개 변수를 사용하여 시작하려는 서비스를 나타내는 서비스 개체를 제공할 수 있습니다.

예제

예제 1: 해당 이름을 사용하여 서비스 시작

다음은 로컬 컴퓨터에서 EventLog 서비스를 시작하는 예제입니다. Name 매개 변수는 서비스 이름으로 서비스를 식별합니다.

Start-Service -Name "eventlog"

예제 2: 서비스를 시작하지 않고 정보 표시

이 예제에서는 "remote"을 포함하는 표시 이름이 있는 서비스를 시작한 경우 어떤 일이 발생하는지 보여 줍니다.

Start-Service -DisplayName *remote* -WhatIf

DisplayName 매개 변수는 서비스 이름 대신 표시 이름으로 서비스를 식별합니다. WhatIf 매개 변수를 사용하면 명령을 실행할 때 발생하는 작업을 cmdlet에 표시하지만 변경하지는 않습니다.

예제 3: 서비스 시작 및 텍스트 파일에 작업 기록

다음은 컴퓨터에서 WMI(Windows Management Instrumentation) 서비스를 시작하고 작업의 레코드를 services.txt 파일에 추가하는 예제입니다.

$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt

먼저 WMI 서비스를 나타내는 개체를 가져와 변수에 $s 저장하는 데 사용합니다Get-Service. 다음으로 서비스를 시작합니다. PassThru 매개 변수가 없으면 출력을 Start-Service 만들지 않습니다. 파이프라인 연산자(|)는 개체 출력을 Format-List cmdlet에 Start-Service 전달하여 개체를 해당 속성 목록으로 서식을 지정합니다. 추가 리디렉션 연산자(>>)는 출력을 services.txt 파일로 리디렉션합니다. 출력은 기존 파일의 끝에 추가됩니다.

예제 4: 비활성화된 서비스 시작

이 예제에서는 서비스의 시작 유형이 사용 안 함인 경우 서비스를 시작하는 방법을 보여줍니다.

PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service  <<<< tlntsvr

PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr

텔넷 서비스(tlntsvr)를 시작하는 첫 번째 시도가 실패합니다. 이 Get-CimInstance 명령은 Tlntsvr 서비스의 StartMode 속성이 Disabled임을 보여 줍니다. cmdlet은 Set-Service 시작 유형을 수동으로 변경합니다. 이제 명령을 다시 제출할 Start-Service 수 있습니다. 이번에는 명령이 성공합니다. 명령이 성공했는지 확인하려면 .를 실행 Get-Service합니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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

-DisplayName

시작할 서비스의 표시 이름을 지정합니다. 와일드카드 문자를 사용할 수 있습니다.

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

-Exclude

이 cmdlet에서 생략하는 서비스를 지정합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 요소 또는 패턴(예: s*.)을 입력합니다. 와일드카드 문자를 사용할 수 있습니다.

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

-Include

이 cmdlet이 시작하는 서비스를 지정합니다. 이 매개 변수의 값은 Name 매개 변수를 한정합니다. 이름 요소 또는 패턴(예: s*.)을 입력합니다. 와일드카드 문자를 사용할 수 있습니다.

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

-InputObject

시작할 서비스를 나타내는 ServiceController 개체를 지정합니다. 개체를 포함하는 변수를 입력하거나 개체를 가져오는 명령 또는 식을 입력하세요.

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

-Name

시작할 서비스의 서비스 이름을 지정합니다.

매개 변수 이름은 선택 사항입니다. 이름 또는 해당 별칭인 ServiceName을 사용하거나 매개 변수 이름을 생략할 수 있습니다.

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

-PassThru

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

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

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. 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 개체를 반환합니다.

참고

PowerShell에는 다음 별칭이 포함됩니다.Start-Service

  • Windows:
    • sasv

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

  • Start-Service 는 현재 사용자에게 이 작업을 수행할 수 있는 권한이 있는 경우에만 서비스를 제어할 수 있습니다. 따라서 명령이 제대로 작동하지 않는 경우 필요한 권한이 없을 수 있습니다.
  • 시스템에서 서비스 이름을 찾고 서비스 이름을 표시하려면 .를 입력 Get-Service합니다. 서비스 이름은 이름 열에 표시되고 표시 이름은 DisplayName 열에 표시됩니다.
  • 수동, 자동 또는 자동(지연된 시작)의 시작 유형이 있는 서비스만 시작할 수 있습니다. 시작 유형이 Disabled인 서비스는 시작할 수 없습니다. Start-Service 메시지 Cannot start service \<service-name\> on computerGet-CimInstance 와 함께 명령이 실패하는 경우 서비스의 시작 유형을 찾고, 이 경우 cmdlet을 사용하여 Set-Service 서비스의 시작 유형을 변경합니다.
  • 성능 로그 및 경고(SysmonLog)와 같은 일부 서비스는 수행할 작업이 없는 경우 자동으로 중지됩니다. PowerShell이 거의 즉시 중지되는 서비스를 시작하면 다음 메시지가 표시됩니다. Service \<display-name\> start failed.