ResumeService-Methode der Win32_Service -Klasse (CIMWin32-WMI-Anbieter)

Die ResumeService WMI-Klassenmethode versucht, den Dienst, auf den verwiesen wird, im fortgesetzten Zustand zu platzieren.

In diesem Thema wird Managed Object Format -Syntax (MOF) verwendet. Weitere Informationen zur Verwendung dieser Methode finden Sie unter Aufrufen einer Methode.

Syntax

uint32 ResumeService();

Parameter

Diese Methode hat keine Parameter.

Rückgabewert

Gibt einen der in der folgenden Liste aufgeführten Werte oder einen anderen Wert zurück, um einen Fehler anzugeben. Weitere Fehlercodes finden Sie unter WMI-Fehlerkonstistenzen oder WbemErrorEnum. Allgemeine HRESULT-Werte finden Sie unter Systemfehlercodes.

0

Die Anforderung wurde akzeptiert.

1

Die Anforderung wird nicht unterstützt.

2

Der Benutzer hatte nicht den erforderlichen Zugriff.

3

Der Dienst kann nicht beendet werden, da andere ausgeführte Dienste davon abhängig sind.

4

Der angeforderte Steuerungscode ist nicht gültig, oder es ist für den Dienst nicht akzeptabel.

5

Der angeforderte Steuerungscode kann nicht an den Dienst gesendet werden, da der Zustand des Diensts (Win32 _ BaseService ) ist.State-Eigenschaft) ist gleich 0, 1 oder 2.

6

Der Dienst wurde nicht gestartet.

7

Der Dienst hat auf die Startanforderung nicht rechtzeitig reagiert.

8

Unbekannter Fehler beim Starten des Diensts.

9

Der Verzeichnispfad zur ausführbaren Dienstdatei wurde nicht gefunden.

10

Der Dienst wird schon ausgeführt.

11

Die Datenbank zum Hinzufügen eines neuen Diensts ist gesperrt.

12

Eine Abhängigkeit, von der dieser Dienst abhängig ist, wurde aus dem System entfernt.

13

Der Dienst hat den Dienst nicht gefunden, der von einem abhängigen Dienst benötigt wird.

14

Der Dienst wurde vom System deaktiviert.

15

Der Dienst hat nicht die richtige Authentifizierung, um im System ausgeführt zu werden.

16

Dieser Dienst wird aus dem System entfernt.

17

Der Dienst verfügt über keinen Ausführungsthread.

18

Der Dienst verfügt beim Start über zirkuläre Abhängigkeiten.

19

Ein Dienst wird unter demselben Namen ausgeführt.

20

Der Dienstname enthält ungültige Zeichen.

21

Ungültige Parameter wurden an den Dienst übergeben.

22

Das Konto, unter dem dieser Dienst ausgeführt wird, ist entweder ungültig oder verfügt nicht über die Berechtigungen zum Ausführen des Diensts.

23

Der Dienst ist in der Datenbank der im System verfügbaren Dienste vorhanden.

24

Der Dienst ist im System derzeitig angehalten.

Bemerkungen

Obwohl es möglicherweise keinen praktischen Unterschied zwischen einem beendeten und einem angehaltenen Dienst zu geben scheint, werden die beiden Zustände im SCM anders angezeigt. Ein beendeter Dienst ist ein Dienst, der nicht ausgeführt wird und die gesamte Dienststartprozedur durchgehen muss. Ein angehaltener Dienst wird jedoch noch ausgeführt, hat aber seine Funktion angehalten. Aus diesem Grund muss ein angehaltener Dienst nicht die gesamte Dienststartprozedur durchgehen, sondern benötigt ein anderes Verfahren, um wieder funktionsfähig zu sein.

Sie müssen die richtige Methode verwenden, um einen beendeten Dienst zu starten oder einen angehaltenen Dienst wieder aufzunehmen. Die Win32-Dienstmethoden _ StartService und ResumeService sollten in den folgenden Situationen verwendet werden:

  • Wenn ein Dienst derzeit beendet wird, müssen Sie ihn mithilfe der StartService-Methode neu starten. ResumeService kann keinen Dienst starten, der derzeit beendet ist.
  • Wenn ein Dienst angehalten wird, müssen Sie ResumeService verwenden. Wenn Sie die StartService-Methode für einen angehaltenen Dienst verwenden, erhalten Sie die Meldung "Der Dienst wird bereits ausgeführt." Der Dienst bleibt jedoch angehalten, bis der Code zum Fortsetzen der Dienststeuerung an ihn gesendet wird.

Beispiele

Im Beispiel AutoStart-Dienste fortsetzen, bei denen es sich um angehaltene VBScript-Dienste handelt, werden alle angehaltenen Automatischstartdienste neu gestartet.

Im folgenden VBScript-Codebeispiel wird beschrieben, wie ein angehaltener Dienst von Instanzen des Win32-Diensts fortgesetzt _ wird.

Hinweis

Der Dienst muss das Anhalten unterstützen und bereits ausgeführt werden.

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

Im folgenden Perl-Codebeispiel wird beschrieben, wie ein angehaltener Dienst von Instanzen des Win32-Diensts fortgesetzt _ wird.

Hinweis

Der Dienst muss das Anhalten unterstützen und bereits ausgeführt werden.

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";
}

Anforderungen

Anforderungen Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
Windows Server 2008
Namespace
Root\CIMv2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Weitere Informationen

Betriebssystemklassen

Win32-Dienst _

WMI-Aufgaben: Dienste