Wie deinstalliere ich einen .NET Windows-Dienst, wenn die Dienstdateien nicht mehr vorhanden sind?
Ich habe einen .NET Windows-Dienst mit InstallUtil installiert. Ich habe die Dateien inzwischen gelöscht, aber vergessen, sie auszuführen
InstallUtil /u
zuerst. Der Dienst ist also weiterhin in der Dienste-MMC aufgeführt.
Muss ich in die Registrierung gehen? Oder gibt es einen besseren Weg?
windows
windows-services
installer
Thomas Jespersen
quelle
quelle
Antworten:
Sie haben mindestens drei Möglichkeiten. Ich habe sie in der Reihenfolge ihrer bevorzugten Nutzung präsentiert.
Methode 1 - Sie können das im Resource Kit enthaltene SC-Tool (Sc.exe) verwenden. (im Lieferumfang von Windows 7/8 enthalten)
Öffnen Sie eine Eingabeaufforderung und geben Sie ein
Das Tool-Hilfe-Snippet folgt:
Methode 2 - Verwenden Sie Delserv
Laden Sie das Befehlszeilenprogramm delserv herunter und verwenden Sie es. Dies ist ein Legacy-Tool, das für Windows 2000 entwickelt wurde. In aktuellen Windows XP-Boxen wurde dies durch das in Methode 1 beschriebene sc ersetzt.
Methode 3 - Registrierungseinträge manuell löschen (Beachten Sie, dass dies in Windows 7/8 fehlschlägt)
Windows-Dienste werden unter dem folgenden Registrierungsschlüssel registriert.
Suchen Sie nach dem Unterschlüssel mit dem Dienstnamen unter dem angegebenen Schlüssel und löschen Sie ihn. (und Sie müssen möglicherweise neu starten, um den Dienst vollständig aus der Diensteliste zu entfernen.)
quelle
<Failed to Read Description. Error Code: 2>
Verwenden Sie an der Eingabeaufforderung das Windows-Dienstprogramm "sc.exe". Sie werden so etwas ausführen:
quelle
Hinweise zur Verwendung von "sc delete" in Windows 8:
1) Öffnen Sie ein CMD-Fenster mit erhöhten Berechtigungen. [Windows Key-X, um ein Menü mit der Option aufzurufen; Wählen Sie "Eingabeaufforderung (Admin)".]
2) Verwenden Sie den Namen in Klammern aus der Liste in Services [Ich habe beispielsweise "sc delete gupdate" verwendet, wenn in Services "Google Update (gupdate)" angezeigt wurde.]
quelle
Einige Leute erwähnen
sc delete
als Antwort. So habe ich es gemacht, aber es hat eine Weile gedauert, bis ich den<service-name>
Parameter gefunden habe.Der Befehl
sc query type= service
(beachten Sie, dass dies bei der Formatierung sehr wichtig ist und der Platz vor "Dienst" erforderlich ist) gibt eine Liste der installierten Windows-Dienste mit ihrem qualifizierten Namen für die Verwendung mit demsc delete <service-name>
Befehl aus.Die Liste ist ziemlich lang, daher können Sie die Ausgabe an eine Textdatei (dh
>> C:\test.txt
) weiterleiten und diese dann durchsuchen.Das
SERVICE_NAME
ist dasjenige, das mitsc delete <service-name>
Befehl verwendet werden soll.quelle
sc query
wie es standardmäßig isttype= service
.Entfernen Sie den Windows-Dienst über die Registrierung
Es ist sehr einfach, einen Dienst aus der Registrierung zu entfernen, wenn Sie den richtigen Pfad kennen. So habe ich das gemacht:
Führen Sie Regedit oder Regedt32 aus
Gehen Sie zum Registrierungseintrag "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services".
Suchen Sie nach dem Dienst, den Sie löschen möchten, und löschen Sie ihn. Sie können sich die Schlüssel ansehen, um zu erfahren, welche Dateien der Dienst verwendet hat, und sie auch löschen (falls erforderlich).
Löschen Sie den Windows-Dienst über das Befehlsfenster
Alternativ können Sie auch die Eingabeaufforderung verwenden und einen Dienst mit dem folgenden Befehl löschen:
sc löschen
Sie können einen Dienst auch mit dem folgenden Befehl erstellen
sc create "MorganTechService" binpath = "C: \ Programme \ MorganTechSPace \ myservice.exe"
Hinweis: Möglicherweise müssen Sie das System neu starten, um die Liste im Service Manager zu aktualisieren.
quelle
Wenn Sie ein Tool dafür verwenden möchten, können Sie Process Hacker verwenden
Formular zum Erstellen des Dienstes:
Kontextmenü eines Dienstes zum Löschen:
Ich finde Process Hacker ein praktischeres Tool zum Verwalten von Windows-Prozessen und -Diensten als Windows-eigene Taskmgr.exe. Insbesondere unter Windows XP, wo Sie über den Task-Manager überhaupt nicht auf Dienste zugreifen können.
quelle
Ich musste meinen Tomcat-Dienst neu installieren, was bedeutete, dass ich ihn zuerst entfernen musste. Das hat bei mir funktioniert:
(Bearbeiten Sie die Datei t.txt, durchsuchen Sie die Liste und suchen Sie den Tomcat-Dienst. Er heißt Tomcat7.)
Der Abfragebefehl funktionierte jedoch nicht beim ersten Mal, da der Tomcat-Dienst nicht ausgeführt wurde. Es scheint nur Dienste aufzulisten, die ausgeführt werden. Ich musste den Dienst starten und den Abfragebefehl erneut ausführen.
quelle
state
Parameter.Wenn sich die ursprünglichen Service .InstallLog- und .InstallState-Dateien noch im Ordner befinden, können Sie versuchen, die ausführbare Datei neu zu installieren, um die Dateien zu ersetzen. Verwenden Sie dann InstallUtil / u und deinstallieren Sie das Programm. Es ist ein bisschen verworren, hat aber in einem bestimmten Fall für mich funktioniert.
quelle
Sie können versuchen, Autoruns auszuführen , sodass Sie die Registrierung nicht manuell bearbeiten müssen. Dies ist besonders nützlich, wenn Sie nicht über die erforderlichen Berechtigungen verfügen.
quelle
1. Schritt: Wechseln Sie in das Verzeichnis, in dem Ihr Dienst vorhanden ist
Befehl: cd c: \ xxx \ yyy \ service
2. Schritt: Geben Sie den folgenden Befehl ein
Befehl: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe service.exe \ u
Hier ist service.exe Ihre Service-Exe und Sie werden den Service deinstallieren. Sie sehen die Meldung "Die Deinstallation ist abgeschlossen".
Wenn Sie einen Dienst installieren möchten, entfernen Sie \ u im obigen Befehl, um Ihren Dienst zu installieren
quelle
Wir haben festgestellt, dass selbst bei Ihrer Ausführung
sc_delete
möglicherweise noch ein Eintrag in der Registrierung für Ihren Dienst vorhanden ist, sodass die Neuinstallation des Dienstes zu einer beschädigten Reihe von Registrierungseinträgen führt (diese stimmen nicht überein). Wir habenregedit
diesen übrig gebliebenen Eintrag von Hand entfernt.Hinweis: ShipmunkService wird nach sc_delete immer noch angezeigt!
Dann können Sie neu installieren und Ihr Dienst wird korrekt ausgeführt. Ich wünsche Ihnen allen viel Glück und möge die Macht mit Ihnen sein.
quelle
Sie können Ihren Windows-Dienst über die Eingabeaufforderung deinstallieren. Schreiben Sie auch einfach diesen Befehl
quelle
-Windows+r
Öffnen Sie cmd.-sc YourSeviceName
Dieser Code entfernt Ihren Dienst.-Uninstal "YourService Path"
Dieser Code deinstalliert Ihren Dienst.quelle