다음을 통해 공유


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

PauseServiceWMI 클래스 메서드는 서비스를 일시 중지된 상태로 배치하려고 시도합니다.

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

구문

uint32 PauseService();

매개 변수

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

반환 값

다음 목록에 나열된 값 중 하나 또는 오류를 나타내는 다른 값을 반환합니다. 추가 오류 코드는 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

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

설명

중지하거나 일시 중지할 수 있는 서비스를 결정한 후에는 StopService PauseService 메서드를 사용하여 서비스를 중지하고 일시 중지할 수 있습니다. 서비스를 일시 중지하지 않고 중지하거나 그 반대의 경우도 마찬가지라는 결정은 다음을 비롯한 여러 요인에 따라 달라집니다.

  • 서비스를 일시 중지할 수 있나요? 그렇지 않은 경우 유일한 옵션은 서비스 중지입니다.
  • 서비스에 이미 연결된 모든 사용자에 대한 클라이언트 요청을 계속 처리해야 합니까? 이 경우 서비스를 일시 중지하면 일반적으로 새 클라이언트에 대한 액세스를 거부하면서 기존 클라이언트를 처리할 수 있습니다. 반대로 서비스를 중지하면 모든 클라이언트의 연결이 즉시 끊어집니다.
  • 서비스를 다시 구성하고 변경 내용을 즉시 적용해야 합니까? 서비스가 일시 중지되는 동안 서비스 속성을 변경할 수 있지만 서비스가 실제로 중지되고 다시 시작될 때까지는 대부분 적용되지 않습니다.

서비스를 중지하는 데 필요한 스크립팅 코드는 서비스를 일시 중지하는 데 필요한 코드와 거의 동일합니다.

예제

다음 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.PauseService()
  if RetVal = 0 then 
   WScript.Echo "Service paused"   
  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, $SupportsPause, $RetVal);  
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\Root\\CIMv2")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='Schedule'"); };
unless($@)
{
 foreach my $ServiceInst (in $ServiceSet)
 {
  if ($ServiceInst->{AcceptPause})
  {
   $RetVal = $ServiceInst->PauseService();
   if ($RetVal == 0)
   {
    print "\nService paused\n";
   }
   else
   {
    if ($RetVal == 1)
    {
     print "\nPause not supported\n" ;
    }
    else 
    {
     print "\nAn error occurred:", $RetVal, "\n";
    }
   } 
  }
  else
  {
   print "\nService does not support pause\n";
  }
 }
}
else
{
 print STDERR "\n", Win32::OLE->LastError, "\n";
}

요구 사항

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

참고 항목

운영 체제 클래스

Win32_Service

WMI 작업: 서비스

StopService