199 votes

Comment forcer la désinstallation d'un service Windows

J'ai installé un service Windows en utilisant installUtil.exe.

Après avoir mis à jour le code, j'ai de nouveau utilisé installUtil.exe pour installer le service sans désinstaller la version originale au préalable.

Lorsque j'essaie maintenant de désinstaller le service, installUtil.exe effectue la désinstallation avec succès, mais le service apparaît toujours.

Si j'essaie de modifier ses propriétés, je reçois le message "service is marked for deletion".

Comment puis-je forcer la suppression (de préférence sans redémarrer le serveur) ?

0 votes

Si le service est suspendu et que la suppression ne fonctionne pas, voir Comment forcer la désinstallation d'un service Windows

537voto

the_mandrill Points 12530

Une chose qui m'a surpris dans le passé, c'est que si le visualiseur de services est en cours d'exécution, cela empêche la suppression complète des services, il faut donc le fermer au préalable.

88 votes

J'ai du mal à croire que le fait d'avoir ouvert l'observateur empêche la suppression du service - c'est stupide !

0 votes

S'il s'agit d'un serveur (avec des connexions de bureau à distance), vous devrez peut-être aussi fermer toutes les consoles (mmc.exe) qui peuvent être en cours d'exécution dans d'autres sessions.

1 votes

C'est tellement stupide de la part de Microsoft, mais cela fonctionne. Pour une raison inexplicable, le fait d'avoir le visualiseur de services ouvert empêche parfois de les supprimer correctement.

161voto

johan Points 1930

Vous ne devez pas redémarrer votre machine. Lancez cmd ou PowerShell en mode élevé.

sc.exe queryex <SERVICE_NAME>

Vous obtiendrez alors des informations. Un numéro PID s'affichera.

taskkill /pid <SERVICE_PID> /f

Où /f est pour forcer l'arrêt.

Vous pouvez maintenant installer ou lancer votre service.

3 votes

Il a fonctionné brillamment alors que tout le reste, à l'exception d'un redémarrage, a échoué.

0 votes

C'est une excellente réponse. Elle est bien meilleure qu'un redémarrage tel que suggéré dans la réponse acceptée, moins bonne (IMHO).

41 votes

Cela n'a pas fonctionné pour moi - le pid de mon service est revenu à 0 et je n'ai pas pu supprimer un processus critique du système.

108voto

Vous pouvez utiliser SC.EXE pour supprimer de force n'importe quel service Windows si, par hasard, la désinstallation n'aboutit pas.

sc delete <Service_Name>

Lire la suite de "MS Techno Blogging" (en anglais) Suppression forcée de services dans la MMC des services

41voto

Kennifer Points 683

Je sais que cela ne va pas aider, mais cela pourrait aider quelqu'un à l'avenir.

Je viens d'avoir le même problème, la fermeture et la réouverture du gestionnaire de services a supprimé l'entrée du registre et a terminé la désinstallation du service.

Auparavant, le fait de rafraîchir le gestionnaire des services n'avait rien changé.

1 votes

Merci de votre participation. Mon expérience a été exactement comme vous l'avez décrite.

13voto

Aaron Weiker Points 1649
sc delete sericeName

Assurez-vous que le service est arrêté avant d'effectuer cette opération. J'ai constaté que cela fonctionnait la plupart du temps. Parfois, j'ai vu Windows se bloquer sur quelque chose et insister pour redémarrer.

0 votes

Juste un ajout J'ai dû lancer mon invite dos/.NET en tant qu'administrateur pour avoir accès à la commande sc delete juste au cas où quelqu'un d'autre rencontrerait ce problème.

0 votes

Exécutez "NET STOP <nom du service>" avant SC DELETE pour vous assurer que le service a été arrêté avant d'être supprimé.

0 votes

J'ai dû redémarrer pour supprimer un service récalcitrant qui n'avait été que partiellement désinstallé (il apparaissait toujours dans l'encapsulation avec un code 2). C'est le redémarrage qui l'a finalement fait disparaître.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X