Jak odinstalować usługę Windows, jeśli pliki już nie istnieją?

570

Jak odinstalować usługę Windows .NET, jeśli pliki usługi już nie istnieją?

Zainstalowałem usługę Windows .NET przy użyciu InstallUtil. Od tego czasu usunąłem pliki, ale zapomniałem uruchomić

 InstallUtil /u

pierwszy. Tak więc usługa jest nadal wymieniona w MMC usług.

Czy muszę wejść do rejestru? Czy jest jakiś lepszy sposób?

Thomas Jespersen
źródło
3
Delserv
Tom Kidd
2
Czy najpierw zatrzymałeś również usługę? (-> net stop yourservice)
Jos
Bardzo blisko powiązany wątek tutaj .
RBT,
ta strona pomoże mi i mam nadzieję, że pomogę ci w tym problemie howtogeek.com/howto/windows-vista/…
Ahmed Elbendary

Odpowiedzi:

1130

Masz co najmniej trzy opcje. Przedstawiłem je w kolejności preferencji użytkowania.

Metoda 1 - Możesz użyć narzędzia SC (Sc.exe) zawartego w zestawie zasobów. (dołączony do systemu Windows 7/8)

Otwórz wiersz polecenia i naciśnij klawisz Enter

sc delete <service-name>

Fragment pomocy narzędzia wygląda następująco:

DESCRIPTION:
        SC is a command line program used for communicating with the
        NT Service Controller and services.

delete----------Deletes a service (from the registry).

Metoda 2 - użyj delserv

Pobierz i użyj narzędzia wiersza polecenia delserv. Jest to starsze narzędzie opracowane dla systemu Windows 2000. W obecnych polach Windows XP zostało to zastąpione przez sc opisany w metodzie 1.

Metoda 3 - ręczne usunięcie wpisów rejestru (zwróć uwagę, że powoduje to awarię w systemie Windows 7/8)

Usługi systemu Windows są zarejestrowane pod następującym kluczem rejestru.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Wyszukaj podklucz z nazwą usługi pod kluczem poleconym i usuń go. (i może być konieczne ponowne uruchomienie, aby całkowicie usunąć usługę z listy usług)

Jorge Ferreira
źródło
23
Metoda 3 wydaje się odpalać w systemie Windows 7.
rmiesen
29
W metodzie 1 może wystąpić błąd „Określona usługa nie istnieje jako usługa zainstalowana”, chociaż usługa jest wyświetlana w konsoli MMC !!! Jest tak, ponieważ nazwa, którą widzisz, to DisplayName. Możesz odnośnika rzeczywistą nazwę usługi w HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services drzewa i przekazać , że jak nazwa-usługi.
denispyr
9
Metoda 3 nie działa na mnie również w systemie Windows 7. Usługa jest już dostępna z opisem<Failed to Read Description. Error Code: 2>
Zugwalt
27
Uwaga: jeśli używasz programu PowerShell ze sc, należy zachować ostrożność - zastępuje on aplikację za pomocą polecenia cmdlet o ustawionej zawartości, a jeśli uruchomisz sc, usuń bla, to po cichu zawiedzie
JonnyRaa
10
UWAGA: Musisz ponownie uruchomić komputer po wykonaniu metody 3! Następnie spójrz na listę usług; prawdopodobnie już nie ma. Jeśli nadal jest na liście, po prostu wykonaj metodę 1, aby usunąć go z tej listy.
East of Nowhere
170

W wierszu polecenia użyj narzędzia Windows „sc.exe”. Uruchomisz coś takiego:

sc delete <service-name>
Dean Hill
źródło
21
Jeśli w nazwie usługi jest spacja, umieść ją w cudzysłowie.
geoffc
2
Dlaczego dostaję [SC] OpenService Failed 5: Odmowa dostępu.
Adrian Enriquez
10
@AdrianEnriquez, uruchamiając cmd.exe jako administrator naprawił to dla mnie.
składaneletnia
3
W systemie Windows 8 po użyciu polecenia usługa pojawia się ze statusem wyłączonym na liście MMC. Ponowne uruchomienie spowoduje usunięcie usługi z listy.
Ryan
Czy istnieje sposób na podniesienie uprawnień do tego? Nadal pojawia się komunikat „Odmowa dostępu” po wpisaniu powyższego polecenia
Nick
27

Uwagi na temat używania „sc delete” w systemie Windows 8:

1) Otwórz okno CMD z podwyższonymi uprawnieniami. [Windows Key-X, aby wyświetlić menu z opcją; wybierz „Wiersz polecenia (administrator)”.]
2) Użyj nazwy w nawiasach z listy w usługach [na przykład użyłem „sc delete gupdate”, gdy w usługach przeczytałem „Google Update (gupdate)”]

Michał
źródło
21

Niektórzy wspominają sc deletejako odpowiedź. Tak to zrobiłem, ale znalezienie <service-name>parametru zajęło mi trochę czasu .

Polecenie sc query type= service(uwaga, jest to szczególne w przypadku formatowania, konieczne jest miejsce przed „usługą”), wyświetli listę zainstalowanych usług Windows wraz z ich kwalifikowaną nazwą do użycia z sc delete <service-name>poleceniem.

Lista jest dość długa, więc możesz rozważyć przesłanie danych wyjściowych do pliku tekstowego (np >> C:\test.txt ), A następnie przeszukanie tego.

Jest SERVICE_NAMEto jeden z sc delete <service-name>poleceń.

Robin French
źródło
2
Zobacz mój komentarz do zaakceptowanej odpowiedzi. Nazwę usługi można szybko ustalić, sprawdzając arkusz właściwości usługi w panelu Usługi.
donperk
2
To było zupełnie niepotrzebne: jeśli pojawi się na liście usług, można po prostu otworzyć właściwości usług, które chcesz usunąć z listy usług, w liście usług, a pokaże nazwę usługi. „Nazwa usługi” wymieniona we właściwościach ma również tę samą nazwę usługi. :)
neminem,
2
Tak, wiem, że możesz dostać się do nazwiska w inny sposób. Dodałem to, ponieważ miałem problem z określeniem, których nazw użyć w poleceniu. Widziałem nazwę wymienioną we właściwościach usługi, ale w tamtym czasie nie wiedziałem, jakiej nazwy należy użyć w poleceniu. Użycie wiersza polecenia było dla mnie dobrym sposobem na zrzucenie wszystkich zainstalowanych usług, w tym <nazwa_usługi> do usunięcia. Miałem kilka usług, które tego potrzebowały, więc łatwiej było mi zrzucić całą listę do pliku, aby móc się do nich dostać bez konieczności wyszukiwania ich w przystawce usług.
Robin French
Możesz po prostu uruchomić sc querydomyślnie type= service.
Ian Kemp
11

Usuń usługę systemu Windows za pomocą rejestru

Bardzo łatwo jest usunąć usługę z rejestru, jeśli znasz właściwą ścieżkę. Oto jak to zrobiłem:

  1. Uruchom Regedit lub Regedt32

  2. Przejdź do wpisu rejestru „HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services”

  3. Poszukaj usługi, którą chcesz usunąć, i usuń ją. Możesz spojrzeć na klucze, aby dowiedzieć się, jakich plików używała usługa, a także je usunąć (jeśli to konieczne).

Usuń usługę Windows za pomocą okna poleceń

Możesz też użyć wiersza polecenia i usunąć usługę, używając następującego polecenia:

sc usuń

Możesz także utworzyć usługę za pomocą następującego polecenia

sc create "MorganTechService" binpath = "C: \ Program Files \ MorganTechSPace \ myservice.exe"

Uwaga: Konieczne może być ponowne uruchomienie systemu, aby zaktualizować listę w menedżerze usług.

kombsh
źródło
9

Jeśli chcesz użyć do tego narzędzia, możesz użyć Process Hackera

Formularz do utworzenia usługi:

Process Hacker Create Service

Menu kontekstowe usługi, aby ją usunąć:

Przetwarzaj usługę usuwania hakerów

Uważam Process Hacker za bardziej wygodne narzędzie do zarządzania procesami i usługami Windows niż własny Taskmgr.exe systemu Windows. Zwłaszcza w systemie Windows XP, w którym nie można w ogóle uzyskać dostępu do usług z poziomu menedżera zadań.

Mike de Klerk
źródło
4

Musiałem ponownie zainstalować moją usługę tomcat, co oznaczało najpierw jej usunięcie. To działało dla mnie:

Start a command prompt window using run as administrator

sc query type= service >t.txt

(edytuj plik t.txt, przeszukaj listę i znajdź usługę tomcat. Nazywa się Tomcat7)

sc delete Tomcat7

JEDNAK polecenie zapytania nie działało po raz pierwszy, ponieważ usługa tomcat nie była uruchomiona. Wygląda na to, że wyświetla listę tylko uruchomionych usług. Musiałem uruchomić usługę i ponownie uruchomić polecenie zapytania.

użytkownik1208639
źródło
Jeśli chcesz zobaczyć zatrzymane usługi, użyj stateparametru.
Harry Johnston,
3

Jeśli oryginalne pliki .InstallLog usługi i .InstallState nadal znajdują się w folderze, możesz spróbować ponownie zainstalować plik wykonywalny w celu zastąpienia plików, a następnie użyj InstallUtil / u, a następnie odinstaluj program. To trochę skomplikowane, ale działało w konkretnym przypadku.

ja928
źródło
3

Możesz spróbować uruchomić Autoruns , co zaoszczędziłoby Ci konieczności ręcznej edycji rejestru. Jest to szczególnie przydatne, gdy nie masz wymaganych uprawnień.

Dębnik
źródło
0

Pierwszy krok: przejdź do katalogu, w którym znajduje się Twoja usługa

Polecenie: cd c: \ xxx \ yyy \ service

Drugi krok: wprowadź poniższe polecenie

Polecenie: C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ InstallUtil.exe service.exe \ u

W tym przypadku service.exe jest exe usługi i odinstalujesz usługę. zobaczysz komunikat „Deinstalacja została zakończona”.

Jeśli chcesz zainstalować usługę, usuń \ u powyższego polecenia, które zainstaluje usługę

Sree
źródło
3
PO wyraźnie stwierdził, że oryginalne pliki zostały usunięte.
AFract
0

Odkryliśmy, że nawet jeśli uruchomisz sc_delete, w rejestrze może pozostać wpis dotyczący Twojej usługi, więc ponowna instalacja usługi spowoduje uszkodzenie zestawu wpisów rejestru (nie pasują one). To, co zrobiliśmy, to regeditręczne usunięcie tego resztki.

Uwaga: ShipmunkService nadal pojawia się po sc_delete!

Następnie możesz zainstalować ponownie, a usługa będzie działać poprawnie. Życzę wszystkim powodzenia i niech siła będzie z wami.

barclay
źródło
0

Możesz odinstalować usługę Windows za pomocą wiersza polecenia, a także po prostu napisz ten fragment polecenia

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
Amarjit Singh Chaudhary
źródło
0

-Windows+r otwórz cmd.

-sc YourSeviceName ten kod usuwa twoją usługę.

-Uninstal "YourService Path" ten kod odinstaluj usługę.

Ayse Özbek
źródło