Méthode Delete de la classe Win32_Service (fournisseurs WMI CIMWin32)
La méthode declasse Delete WMI supprime un service existant.
Cette rubrique utilise la syntaxe MOF (Managed Object Format). Pour plus d’informations sur l’utilisation de cette méthode, consultez Appel d’une méthode.
Syntaxe
uint32 Delete();
Paramètres
Cette méthode n’a aucun paramètre.
Valeur retournée
Retourne l’une des valeurs répertoriées dans la liste suivante ou toute autre valeur pour indiquer une erreur. Pour obtenir des codes d’erreur supplémentaires, consultez Constantes d’erreur WMI ou WbemErrorEnum. Pour connaître les valeurs HRESULT générales, consultez Codes d’erreur système.
-
0
-
La demande a été acceptée.
-
1
-
La demande n'est pas prise en charge.
-
2
-
L’utilisateur n’avait pas l’accès nécessaire.
-
3
-
Le service ne peut pas être arrêté car d'autres services en cours d'exécution en dépendent.
-
4
-
Le code de contrôle demandé n'est pas valide ou est inacceptable pour le service.
-
5
-
Le code de contrôle demandé ne peut pas être envoyé au service, car l’état du service (Win32_BaseService. State property) est égal à 0, 1 ou 2.
-
6
-
Le service n'a pas été démarré.
-
7
-
Le service n'a pas répondu à la demande de démarrage en temps voulu.
-
8
-
Échec inconnu lors du démarrage du service.
-
9
-
Le chemin du répertoire du fichier exécutable de service est introuvable.
-
10
-
Le service est déjà en cours d'exécution.
-
11
-
La base de données pour ajouter un nouveau service est verrouillée.
-
12
-
Une dépendance sur laquelle ce service s’appuie a été supprimée du système.
-
13
-
Le service n'a pas pu trouver le service nécessaire à partir d'un service dépendant.
-
14
-
Le service a été désactivé du système.
-
15
-
Le service ne dispose pas de l'authentification correcte pour être exécuté sur le système.
-
16
-
Ce service est supprimé du système.
-
17
-
Le service n’a pas de thread d’exécution.
-
18
-
Le service a des dépendances circulaires lorsqu’il démarre.
-
19
-
Un service s’exécute sous le même nom.
-
20
-
Le nom du service comporte des caractères non valides.
-
21
-
Des paramètres non valides ont été passés au service.
-
22
-
Le compte sous lequel ce service s’exécute n’est pas valide ou n’a pas les autorisations nécessaires pour exécuter le service.
-
23
-
Le service existe dans la base de données des services disponibles dans le système.
-
24
-
Le service est actuellement mis en pause dans le système.
Notes
À mesure que votre organization change, vous pouvez décider de supprimer certains services de certains ordinateurs. Les services internes et tiers peuvent être supprimés à l’aide de WMI, tandis que les services du système d’exploitation peuvent être supprimés à l’aide de Sysocmgr.exe.
Lorsque vous vous préparez à supprimer des services, gardez à l’esprit les informations suivantes :
Les services doivent être arrêtés avant de les supprimer. Si le service est en cours d’exécution lorsque vous émettez la commande delete, le service est marqué pour suppression, mais il continue à s’exécuter jusqu’à ce qu’il s’arrête et que tous les handles ouverts soient fermés.
Si le service n’est jamais arrêté, ce service ne sera jamais supprimé.
La suppression d’un service ne supprime pas le fichier exécutable du service.
La suppression d’un service à l’aide de WMI supprime les entrées de Registre associées sous HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Par conséquent, le service n’est plus installé et n’est pas disponible via le composant logiciel enfichable Services. Toutefois, WMI ne supprime pas le fichier exécutable, ce qui signifie que vous pouvez facilement réinstaller le service. Pour supprimer le fichier exécutable, vous devez récupérer le nom du chemin d’accès, puis supprimer le fichier.
La suppression d’un service Windows 2000 de base (par exemple, DHCP) à l’aide de WMI supprime les entrées de Registre pour ce service, mais ne supprime pas le raccourci du menu Outils d’administration ni le service de l’Assistant Composants Windows. Cela peut embrouiller quiconque essayant de déterminer comment l’ordinateur a été configuré.
Par exemple, si vous supprimez le service DHCP à l’aide d’un script WMI, le service DHCP n’est plus répertorié dans le composant logiciel enfichable Services. Toutefois, un raccourci non fonctionnel vers la console DHCP reste dans le menu Outils d’administration et, si vous démarrez l’Assistant Composant Windows, cela indique que le service DHCP est installé.
Pour cette raison, vous devez toujours utiliser Sysocmgr.exe pour supprimer par programmation les services Windows 2000.
Exemples
L’exemple de code VBScript suivant décrit comment supprimer un service.
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
L’exemple de code Perl suivant décrit comment supprimer un service.
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";
}
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge |
Windows Vista |
Serveur minimal pris en charge |
Windows Server 2008 |
Espace de noms |
Racine\CIMV2 |
MOF |
|
DLL |
|