Méthode Delete de la classe Win32_Service (Services Bureau à distance)
La méthode Delete WMI Class supprime un service existant.
Cette rubrique utilise la syntaxe format MOF (MOF). 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 de retour
Retourne l’une des valeurs répertoriées dans la liste suivante ou toute autre valeur pour indiquer une erreur. Pour obtenir d’autres codes d’erreur, consultez constantes d’erreur WMI ou WbemErrorEnum. Pour obtenir les valeurs de 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’a 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.**** La propriété State) est égale à 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 d’accès au répertoire du fichier exécutable du 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 repose ce service 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 en cours de suppression du système.
-
17
-
Le service n’a pas de thread d’exécution.
-
19
-
Le service a des dépendances circulaires lorsqu’il démarre.
-
19
-
Un service est en cours d’exécution sous le même nom.
-
20
-
Le nom du service contient des caractères non valides.
-
21
-
Des paramètres non valides ont été transmis au service.
-
22
-
Le compte sous lequel ce service s’exécute n’est pas valide ou ne dispose pas des 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 organisation 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 exécutez 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 descripteurs 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 de base Windows 2000 (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 ou supprime le service de l’assistant Windows composants. Cela peut dérouter quiconque tente de déterminer la façon dont 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 listé dans le composant logiciel enfichable Services. toutefois, un raccourci non fonctionnel vers la console DHCP reste dans le menu outils d’administration. si vous démarrez l’assistant Windows composant, il indique que le service DHCP est installé.
pour cette raison, vous devez toujours utiliser Sysocmgr.exe pour supprimer par programmation Windows services 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 \ licences TS |
| MOF |
|
| DLL |
|