Win32_Service 類別的 ResumeService 方法 (CIMWin32 WMI 提供者)
ResumeServiceWMI 類別方法會嘗試將參考的服務置於繼續狀態。
本主題使用Managed物件格式 (MOF) 語法。 如需使用此方法的詳細資訊,請參閱 呼叫方法。
語法
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方法 StartService 和 ResumeService 應該在下列情況下使用:
- 如果服務目前已停止,您必須使用 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 |
Namespace |
Root\CIMv2 |
MOF |
|
DLL |
|