共用方式為


Win32_Service 類別的 ResumeService 方法 (CIMWin32 WMI 提供者)

ResumeServiceWMI 類別方法會嘗試將參考的服務置於繼續狀態。

本主題使用Managed物件格式 (MOF) 語法。 如需使用此方法的詳細資訊,請參閱 呼叫方法

語法

uint32 ResumeService();

參數

這個方法沒有任何參數。

傳回值

傳回下列清單中所列的其中一個值,或任何其他值,以指出錯誤。 如需其他錯誤碼,請參閱 WMI 錯誤常數WbemErrorEnum 如需一般 HRESULT 值,請參閱 系統錯誤碼

0

已接受要求。

1

不支援此要求。

2

用戶沒有必要的存取權。

3

無法停止服務,因為正在執行的其他服務相依於它。

4

要求的控制程式代碼無效,或服務無法接受。

5

要求的控制程式代碼無法傳送至服務,因為服務的狀態 (Win32_BaseServiceState 屬性) 等於 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
CIMWin32.mof
DLL
CIMWin32.dll

另請參閱

作業系統類別

Win32_Service

WMI 工作:服務