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 |
|
DLL |
|