PauseService-Methode der Win32_Service -Klasse (CIMWin32 WMI-Anbieter)
Die WMI-Klassenmethode PauseService versucht, den Dienst im angehaltenen Zustand zu platzieren.
In diesem Thema wird Managed Object Format (MOF)-Syntax verwendet. Weitere Informationen zur Verwendung dieser Methode finden Sie unter Aufrufen einer Methode.
Syntax
uint32 PauseService();
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.
Hinweise
Nachdem Sie ermittelt haben, welche Dienste beendet oder angehalten werden können, können Sie die Methoden StopService und PauseService verwenden, um Dienste zu beenden und anzuhalten. Die Entscheidung, einen Dienst zu beenden, anstatt ihn anzuhalten (oder umgekehrt), hängt von mehreren Faktoren ab, z. B.:
- Kann der Dienst angehalten werden? Wenn nicht, ist die einzige Option das Beenden des Diensts.
- Müssen Sie weiterhin Clientanforderungen für alle Personen behandeln, die bereits mit dem Dienst verbunden sind? In diesem Beispiel ermöglicht das Anhalten eines Diensts in der Regel die Handhabung vorhandener Clients, während der Zugriff auf neue Clients verweigert wird. Wenn Sie dagegen einen Dienst beenden, werden alle Clients sofort getrennt.
- Müssen Sie einen Dienst neu konfigurieren, damit die Änderungen sofort wirksam werden? Obwohl Diensteigenschaften geändert werden können, während ein Dienst angehalten wird, werden die meisten davon erst wirksam, wenn der Dienst tatsächlich beendet und neu gestartet wird.
Der Skriptcode, der zum Beenden eines Diensts erforderlich ist, ist fast identisch mit dem Code, der zum Anhalten des Diensts erforderlich ist.
Beispiele
Im VBScript-Beispiel Zum Anhalten von Diensten, die unter einem bestimmten Konto ausgeführt werden, werden alle Dienste angehalten, die unter dem hypothetischen Dienstkonto "Netsvc" ausgeführt werden.
Im folgenden VBScript-Codebeispiel wird veranschaulicht, wie ein bestimmter Dienst von Instanzen des Win32-Diensts angehalten _ wird.
Hinweis
Der Dienst muss anhalten 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.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
Im folgenden Perl-Codebeispiel wird veranschaulicht, wie ein bestimmter Dienst von Instanzen des Win32-Diensts angehalten _ wird.
Hinweis
Der Dienst muss anhalten und bereits ausgeführt werden.
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";
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows Vista |
| Unterstützte Mindestversion (Server) |
Windows Server 2008 |
| Namespace |
Root\CIMv2 |
| MOF |
|
| DLL |
|