Comment désinstaller un service Windows .NET si les fichiers de service n'existent plus?
J'ai installé un service Windows .NET à l'aide de InstallUtil. J'ai depuis supprimé les fichiers mais j'ai oublié de courir
InstallUtil /u
première. Le service est donc toujours répertorié dans la console MMC Services.
Dois-je entrer dans le registre? Ou y a-t-il un meilleur moyen?
Vous avez au moins trois options. Je les ai présentées par ordre de préférence d'utilisation.
Méthode 1 - Vous pouvez utiliser le outil SC (Sc.exe) inclus dans le kit de ressources. (inclus avec Windows 7/8)
Ouvrez une invite de commande et entrez
sc delete <service-name>
L'extrait d'aide de l'outil suit:
DESCRIPTION:
SC is a command line program used for communicating with the
NT Service Controller and services.
delete----------Deletes a service (from the registry).
Méthode 2 - utilisez delserv
Download et utilisez l'utilitaire de ligne de commande delserv. Il s'agit d'un outil hérité développé pour Windows 2000. Dans les zones Window XP actuelles, ceci a été remplacé par sc décrit dans la méthode 1.
Méthode 3 - supprimez manuellement les entrées de registre (notez que cela se retourne contre Windows 7/8)
Les services Windows sont enregistrés sous la clé de registre suivante.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Recherchez la sous-clé avec le nom du service sous la clé mentionnée et supprimez-la. (et vous devrez peut-être redémarrer pour supprimer complètement le service de la liste des services)
A partir de l'invite de commande, utilisez l'utilitaire Windows "sc.exe". Vous allez exécuter quelque chose comme ça:
sc delete <service-name>
Remarques sur l'utilisation de "sc delete" dans Windows 8:
1) Ouvrez une fenêtre CMD avec des privilèges élevés. [Windows Key-X pour faire apparaître un menu avec l'option; sélectionnez "Invite de commande (Admin)".]
2) Utilisez le nom entre parenthèses de la liste dans Services [par exemple, j'ai utilisé "sc delete gupdate" lorsque, dans Services, il était indiqué "Google Update (gupdate)"]
Certaines personnes mentionnent sc delete
comme réponse. Voici comment je l'ai fait, mais il m'a fallu un certain temps pour trouver le paramètre <service-name>
.
La commande sc query type= service
(notez que c'est très particulier avec le formatage, l'espace avant "service" est nécessaire) va générer une liste des services Windows installés, avec leur nom qualifié à utiliser avec la commande sc delete <service-name>
.
La liste est assez longue, vous pouvez donc envisager de canaliser la sortie vers un fichier texte (c'est-à-dire >> C:\test.txt
), puis d'effectuer une recherche.
Le SERVICE_NAME
est celui à utiliser avec la commande sc delete <service-name>
.
Supprimer le service Windows via le registre
Il est très facile de supprimer un service de la base de registre si vous connaissez le bon chemin. Voici comment j'ai fait ça:
Exécuter Regedit ou Regedt32
Accédez à l'entrée de registre "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services".
Recherchez le service que vous souhaitez supprimer et supprimez-le. Vous pouvez consulter les clés pour savoir quels fichiers le service utilisait et les supprimer également (si nécessaire).
Supprimer le service Windows via la fenêtre de commande
Vous pouvez également utiliser la commande Invite et supprimer un service à l'aide de la commande suivante:
sc delete
Vous pouvez également créer un service en utilisant la commande suivante
sc crée "MorganTechService" binpath = "C:\Program Files\MorganTechSPace\myservice.exe"
Remarque: Vous devrez peut-être redémarrer le système pour que la liste soit mise à jour dans Service Manager.
Si vous souhaitez utiliser un outil, vous pouvez utiliser Process Hacker
Formulaire pour créer le service:
Menu contextuel sur un service pour le supprimer:
Je trouve que Process Hacker est un outil plus pratique pour gérer les processus et services Windows que le propre Taskmgr.exe de Windows. Surtout sur Windows XP, où vous ne pouvez pas accéder aux services du gestionnaire de tâches.
Je devais réinstaller mon service Tomcat, ce qui signifiait d'abord le supprimer. Cela a fonctionné pour moi:
Start a command Prompt window using run as administrator
sc query type= service >t.txt
(éditez le fichier t.txt, parcourez la liste et trouvez le service Tomcat. Il s’appelle Tomcat7)
sc delete Tomcat7
CEPENDANT, la commande de requête n'a pas fonctionné la première fois, car le service Tomcat n'était pas en cours d'exécution. Il semble ne lister que les services en cours d'exécution. Je devais démarrer le service et réexécuter la commande de requête.
Si les fichiers Service .InstallLog et .InstallState d'origine se trouvent toujours dans le dossier, vous pouvez essayer de réinstaller le fichier exécutable pour remplacer les fichiers, puis utilisez InstallUtil/u, puis désinstallez le programme. C'est un peu compliqué, mais a fonctionné dans un cas particulier pour moi.
Vous pouvez essayer de lancer Autoruns , ce qui vous évitera de modifier le registre à la main. Ceci est particulièrement utile lorsque vous ne disposez pas des autorisations nécessaires.
1ère étape: accédez au répertoire où votre service est présent
Commande: cd c:\xxx\yyy\service
2ème étape: Entrez la commande ci-dessous
Commande: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe service.exe\u
Ici, service.exe est votre exe de service et\u désinstallera le service. vous verrez le message "La désinstallation est terminée".
Si vous souhaitez installer un service, supprimez\u dans la commande ci-dessus, ce qui installera votre service.
-Windows+r
open cmd.
-sc YourSeviceName
ce code supprime votre service.
-Uninstal "YourService Path"
ce code désinstalle votre service.
Nous avons découvert que même si vous exécutez sc_delete
, il peut rester une entrée dans le registre de votre service, de sorte que la réinstallation du service entraîne la corruption d'un ensemble d'entrées de registre (elles ne correspondent pas). Ce que nous avons fait était de regedit
et de supprimer cette entrée restante à la main.
Remarque: ShipmunkService est toujours affiché après sc_delete!
Ensuite, vous pouvez réinstaller et votre service fonctionnera correctement. Bonne chance à tous et que la force soit avec vous.
Vous pouvez désinstaller votre service Windows à l’aide de la commande Invite. Il suffit également d’écrire cette commande.
cd\
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(or version in which you developed your service)
installutil c:\\xxx.exe(physical path of your service) -d