다음을 통해 공유


Win32_Service 클래스의 ResumeService 메서드(CIMWin32 WMI 공급자)

ResumeServiceWMI 클래스 메서드는 참조된 서비스를 다시 시작된 상태로 배치하려고 시도합니다.

이 항목에서는 MOF(Managed Object Format) 구문을 사용합니다. 이 메서드를 사용하는 방법에 대한 자세한 내용은 메서드 호출을 참조 하세요.

구문

uint32 ResumeService();

매개 변수

이 메서드는 매개 변수가 없습니다.

반환 값

다음 목록에 나열된 값 중 하나 또는 오류를 나타내는 다른 값을 반환합니다. 추가 오류 코드는 WMI 오류 상수 또는 WbemErrorEnum을 참조하세요. 일반적인 HRESULT 값은 시스템 오류 코드를 참조 하세요.

0

요청이 수락되었습니다.

1

요청이 지원되지 않습니다.

2

사용자에게 필요한 액세스 권한이 없습니다.

3

실행 중인 다른 서비스가 종속되어 있으므로 서비스를 중지할 수 없습니다.

4

요청된 제어 코드가 유효하지 않거나 서비스에 허용되지 않습니다.

5

요청된 제어 코드는 서비스 상태(Win32_BaseService 때문에 서비스로 보낼 수 없습니다.State 속성)은 0, 1 또는 2와 같습니다.

6

서비스가 시작되지 않았습니다.

7

서비스가 적시에 시작 요청에 응답하지 않았습니다.

8

서비스를 시작할 때 알 수 없는 오류입니다.

9

서비스 실행 파일의 디렉터리 경로를 찾을 수 없습니다.

10

서비스가 이미 실행되고 있습니다.

11

새 서비스를 추가할 데이터베이스가 잠겨 있습니다.

12

이 서비스가 사용하는 종속성이 시스템에서 제거되었습니다.

13

서비스가 종속 서비스에서 필요한 서비스를 찾지 못했습니다.

14

시스템에서 서비스를 사용하지 않도록 설정했습니다.

15

서비스에 시스템에서 실행할 올바른 인증이 없습니다.

16

이 서비스는 시스템에서 제거되고 있습니다.

17

서비스에 실행 스레드가 없습니다.

18

서비스가 시작될 때 순환 종속성이 있습니다.

19

서비스가 동일한 이름으로 실행되고 있습니다.

20

서비스 이름에 잘못된 문자가 있습니다.

21

잘못된 매개 변수가 서비스에 전달되었습니다.

22

이 서비스가 실행되는 계정이 잘못되었거나 서비스를 실행할 수 있는 권한이 없습니다.

23

서비스는 시스템에서 사용할 수 있는 서비스 데이터베이스에 있습니다.

24

서비스가 현재 시스템에서 일시 중지되었습니다.

설명

중지된 서비스와 일시 중지된 서비스 간에 실질적인 차이가 없는 것처럼 보일 수 있지만 두 상태는 SCM과 다르게 표시됩니다. 중지된 서비스는 실행되고 있지 않고 전체 서비스 시작 절차를 거쳐야 하는 서비스입니다. 그러나 일시 중지된 서비스는 여전히 실행 중이지만 작동이 일시 중단되었습니다. 이 때문에 일시 중지된 서비스는 전체 서비스 시작 프로시저를 거치지 않아도 되지만 작동을 다시 시작하려면 다른 절차가 필요합니다.

중지된 서비스를 시작하거나 일시 중지된 서비스를 다시 시작하려면 적절한 방법을 사용해야 합니다. Win32_Service 메서드 StartServiceResumeService는 다음과 같은 경우에 사용해야 합니다.

  • 서비스가 현재 중지된 경우 StartService 메서드를 사용하여 다시 시작해야 합니다.ResumeService는 현재 중지된 서비스를 시작할 수 없습니다.
  • 서비스가 일시 중지된 경우 ResumeService를 사용해야 합니다. 일시 중지된 서비스에서 StartService 메서드를 사용하는 경우 "서비스가 이미 실행 중입니다."라는 메시지가 표시됩니다. 그러나 다시 시작 서비스 제어 코드가 전송될 때까지 서비스가 다시 일시 중지된 기본.

예제

다음 VBScript 코드 샘플에서는 Win32_Service 인스턴스에서 일시 중지된 서비스를 다시 시작하는 방법을 설명합니다.

참고 항목

서비스는 일시 중지를 지원하고 이미 실행 중이어야 합니다.

Set ServiceSet = GetObject("winmgmts:").ExecQuery("select * from Win32_Service where Name='Schedule'")

for each Service in ServiceSet
 SupportsPause = Service.AcceptPause
 if SupportsPause = true then
  RetVal = Service.ResumeService()
  if RetVal = 0 then 
   WScript.Echo "Service resumed"   
  else
   if RetVal = 1 then 
    WScript.Echo "Pause not supported" 
   else WScript.Echo "An error occurred:" & RetVal
   End If
  End If
 else
  WScript.Echo "Service does not support pause"
 end if
next

다음 Perl 코드 샘플에서는 Win32_Service 인스턴스에서 일시 중지된 서비스를 다시 시작하는 방법을 설명합니다.

참고 항목

서비스는 일시 중지를 지원하고 이미 실행 중이어야 합니다.

use strict;
use Win32::OLE;

my $ServiceSet;

eval { $ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };

if (!$@ && defined $ServiceSet)
{
 foreach my $Service (in $ServiceSet)
 {
  my $SupportsPause = $Service->{AcceptPause};
  if ($SupportsPause)
  {
   my $RetVal = $Service->ResumeService();
   if ($RetVal == 0)
   {
    print "\nService resumed\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print STDERR "\nPause not supported\n";
    }
    else
    {
     print STDERR "\nAn error occurred: ", $RetVal, "\n";
    }
   }
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista
지원되는 최소 서버
Windows Server 2008
네임스페이스
Root\CIMv2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

참고 항목

운영 체제 클래스

Win32_Service

WMI 작업: 서비스