Freigeben über


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

Die Delete-WMI-Klassenmethode löscht einen vorhandenen Dienst.

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

Syntax

uint32 Delete();

Parameter

Diese Methode hat keine Parameter.

Rückgabewert

Gibt einen der in der folgenden Liste aufgeführten Werte oder einen anderen Wert zurück, der auf einen Fehler hinweist. Weitere Fehlercodes finden Sie unter WMI-Fehlerkonstanten 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 Status des Diensts (Win32_BaseService. 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, auf der sich dieser Dienst stützt, 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 weist ungültige Zeichen auf.

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

Wenn sich Ihr organization ändert, können Sie sich entscheiden, bestimmte Dienste von bestimmten Computern zu entfernen. Interne und Drittanbieterdienste können mithilfe von WMI entfernt werden, während Betriebssystemdienste mithilfe von Sysocmgr.exe entfernt werden können.

Beachten Sie bei der Vorbereitung der Entfernung von Diensten die folgenden Informationen:

  • Dienste müssen beendet werden, bevor Sie sie entfernen. Wenn der Dienst ausgeführt wird, wenn Sie den Delete-Befehl ausgeben, wird der Dienst zum Löschen markiert, aber er wird weiterhin ausgeführt, bis er beendet wird und alle geöffneten Handles geschlossen werden.

    Wenn der Dienst nie beendet wird, wird dieser Dienst nie gelöscht.

  • Wenn Sie einen Dienst entfernen, wird die ausführbare Datei des Diensts nicht entfernt.

    Wenn Sie einen Dienst mithilfe von WMI entfernen, werden die zugehörigen Registrierungseinträge unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services gelöscht. Daher ist der Dienst nicht mehr installiert und über das Snap-In Dienste nicht mehr verfügbar. WMI löscht die ausführbare Datei jedoch nicht, was bedeutet, dass Sie den Dienst problemlos neu installieren können. Um die ausführbare Datei zu löschen, müssen Sie den Pfadnamen abrufen und dann die Datei löschen.

  • Das Entfernen eines Windows 2000-Basisdiensts (z. B. DHCP) mithilfe von WMI löscht die Registrierungseinträge für diesen Dienst, entfernt jedoch nicht die Verknüpfung aus dem Verwaltungsmenü oder entfernt den Dienst aus dem Windows-Komponenten-Assistenten. Dies kann jeden verwirren, der versucht, festzustellen, wie der Computer konfiguriert wurde.

    Wenn Sie beispielsweise den DHCP-Dienst mithilfe eines WMI-Skripts entfernen, wird der DHCP-Dienst nicht mehr im Snap-In Dienste aufgeführt. Eine nicht funktionsfähige Verknüpfung zur DHCP-Konsole verbleibt jedoch im Menü Verwaltung, und wenn Sie den Assistenten für Windows-Komponenten starten, wird angezeigt, dass der DHCP-Dienst installiert ist.

    Daher sollten Sie immer Sysocmgr.exe verwenden, um Windows 2000-Dienste programmgesteuert zu entfernen.

Beispiele

Im folgenden VBScript-Codebeispiel wird das Löschen eines Diensts beschrieben.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colListOfServices = objWMIService.ExecQuery _
 ("SELECT * FROM Win32_Service WHERE Name = 'DbService'")
For Each objService in colListOfServices
 objService.StopService()
 objService.Delete()
Next

Im folgenden Perl-Codebeispiel wird das Löschen eines Diensts beschrieben.

use strict;
use Win32::OLE;

my ($Service, $ServiceSet) ;
eval {$ServiceSet = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}")->
 ExecQuery("SELECT * FROM Win32_Service WHERE Name='MyService'");};
unless($@)
{
 foreach $Service (in $ServiceSet)
 {
  my $RetVal = $Service->Delete();
  if ($RetVal == 0)  
  {
   print "Service deleted \n"; 
  }
  else  
  {
   print "Delete failed: %d", $RetVal;
  }
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

Anforderungen

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

Siehe auch

Betriebssystemklassen

Win32_Service

WMI-Aufgaben: Dienste