Je tente de supprimer un service Windows avec sc delete
, et je rencontre l'erreur suivante:
[SC] DeleteService FAILED 1072:
Le service spécifié a été marqué pour suppression.
Ce que j'ai déjà fait:
-
Arrêté le service, évidemment. Le
sc queryex ""
donne le résultat suivant:NOM_DU_SERVICE: Stub service TYPE : 10 WIN32_OWN_PROCESS STATE : 1 STOPPED WIN32_EXIT_CODE : 1067 (0x42b) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 PID : 0 FLAGS :
-
Assuré que Microsoft Management Console est fermé (
taskkill /F /IM mmc.exe
), -
Supprimé la clé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ du registre.
En raison de cette suppression,
services.msc
affiche toujours le service (avec un nom, mais aucun état ou type de démarrage), mais la description est "". Lors de la tentative d'affichage des propriétés, "Le système ne peut pas trouver le fichier spécifié." est affiché cinq fois.
Le problème persiste.
Quelle est la prochaine étape?
5 votes
Un redémarrage devrait normalement résoudre tout état persistant.
23 votes
Je sais. Mais j'ai envisagé une solution moins radicale. Redémarrer trente fois par jour ne sera pas une solution acceptable dans mon cas.
1 votes
Pourtant, pirater dans le registre 30 fois par jour est acceptable ? Et pourquoi supprimez-vous des services aussi régulièrement ?
64 votes
"pourquoi supprimez-vous régulièrement des services?" : J'écris un service Windows. Chaque fois qu'il est compilé, il doit être redémarré. "Mais pirater dans le registre 30 fois par jour est acceptable?" : totalement. Supprimer une clé du registre ne m'oblige pas à tout sauvegarder, fermer chaque application ouverte, attendre une minute, puis tout rouvrir.
52 votes
J'ai écrit des services Windows. À moins que vous ne modifiez le code réel qui effectue l'enregistrement, il n'est pas nécessaire de le désinstaller et de le réinstaller à chaque fois que vous effectuez une construction. Tant que le chemin est le même, les informations d'enregistrement plus anciennes seront toujours valides.
0 votes
En fait, ce n'est pas une déclaration vraie. @Damien_The_Unbeliever Microsoft a un bug de compilation qui existe depuis toujours. Vous ne pouvez pas reconstruire et déployer si c'est x64. Vous devez modifier le msi, donc vous devez pirater le registre si l'état devient corrompu. Si MS avait une installation MSI réellement fiable, ce ne serait pas un problème.
4 votes
@NickTurner - lien vers tout rapport de bug? Quel que soit le bogue auquel vous faites référence, je ne l'ai pas rencontré. Et je ne suis pas sûr de la manière dont un MSI est impliqué puisque nous parlons probablement de la construction et de l'exécution de services sur une machine de développement (qui semble du moins être le contexte de cette question vieille de 5 ans)
0 votes
@Nick Turner: Il existe un problème bien connu : si le package MSI est mal écrit, alors il bloquera la désinstallation (y compris la mise à niveau en utilisant une version plus récente, car cela implique d'exécuter l'ancien package MSI pour le désinstaller) ; alors à peu près la seule solution est de supprimer l'application et ses composants MSI en éditant directement le registre. Et si l'on contourne le package MSI, il est facile de faire une erreur ; il est beaucoup mieux de le reconstruire par exemple en utilisant Wix.