Dosyalar artık mevcut değilse bir Windows hizmetini nasıl kaldırabilirim?


570

Hizmet dosyaları artık mevcut değilse, .NET Windows Hizmetini nasıl kaldırabilirim?

InstallUtil kullanarak bir .NET Windows Hizmeti yükledim. O zamandan beri dosyaları sildim ama çalıştırmayı unuttum

 InstallUtil /u

ilk. Böylece hizmet hala Hizmetler MMC'sinde listelenir.

Kayıt defterine gitmek zorunda mıyım? Yoksa daha iyi bir yol var mı?



2
Önce servisi durdurdun mu? (-> net stop yourservice)
Jos

Bir çok yakından ilişkili iplik burada .
RBT

Bu site bana yardımcı olur ve umarım bu problemde size yardımcı olacaktır howtogeek.com/howto/windows-vista/…
Ahmed Elbendary

Yanıtlar:


1130

En az üç seçeneğiniz var. Bunları kullanım tercihi sırasına göre sundum.

Yöntem 1 - Kaynak Seti'nde bulunan SC aracını (Sc.exe) kullanabilirsiniz . (Windows 7/8 ile birlikte verilir)

Bir Komut İstemi açın ve

sc delete <service-name>

Araç yardım snippet'i aşağıdaki gibidir:

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

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

Yöntem 2 - Delserv kullanın

Delserv komut satırı yardımcı programını indirin ve kullanın. Bu, Windows 2000 için geliştirilmiş eski bir araçtır. Geçerli Windows XP kutularında bu, yöntem 1'de açıklanan sc ile değiştirildi.

Yöntem 3 - Kayıt defteri girdilerini el ile silme (Windows 7/8'de bu geri tepmenin)

Windows hizmetleri aşağıdaki kayıt defteri anahtarı altında kaydedilir.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Belirtilen anahtarın altındaki hizmet adına sahip alt anahtarı arayın ve silin. (ve hizmeti Hizmetler listesinden tamamen kaldırmak için yeniden başlatmanız gerekebilir)


23
Yöntem 3, Windows 7'de geri
tepiyor

29
Yöntem 1'de, MMC'de hizmeti görmenize rağmen "Belirtilen hizmet yüklü bir hizmet olarak yok" hatasıyla karşılaşabilirsiniz! Bunun nedeni, gördüğünüz adın DisplayName olmasıdır. Gerçek hizmet adını HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services ağacında arayabilir ve bunu service-name olarak iletebilirsiniz .
denispyr

9
Yöntem 3 Windows 7 Hizmet üzerinde benim için de tepti Açıklama ile şimdi var<Failed to Read Description. Error Code: 2>
Zugwalt

27
sc ile powershell kullanıyorsanız dikkatli olun - set-content cmdlet ile uygulamayı geçersiz kılar ve sc delete blah çalıştırırsanız sessizce başarısız olur
JonnyRaa

10
NOT: Yöntem 3'ü uyguladıktan sonra bilgisayarınızı yeniden başlatmanız gerekir! Sonra Hizmetler listesine bakın; muhtemelen şimdi gitti. Hala listede varsa, listeden kaldırmak için Yöntem 1'i uygulamanız yeterlidir.
Hiçbir Yerin Doğusu

170

Komut isteminde, Windows "sc.exe" yardımcı programını kullanın. Bunun gibi bir şey çalıştırırsınız:

sc delete <service-name>

21
Hizmet adında boşluk varsa, çift tırnak içine alın.
geoffc

2
Neden [SC] OpenService Başarısız 5 alıyorum: Erişim Reddedildi.
Adrian Enriquez

10
@AdrianEnriquez, cmd.exe dosyasını yönetici olarak çalıştırarak bu sorunu çözdüm.
katlanırletu

3
Komutu kullandıktan sonra Windows 8'de, hizmet MMC listesinde devre dışı durumdayken görünür. Yeniden başlatma, hizmeti listeden kaldıracaktır.
Ryan

Bunun için ayrıcalıkları artırmanın bir yolu var mı? Yukarıdaki komutu yazdıktan sonra hala "Erişim reddedildi"
Nick

27

Windows 8'de "sc delete" kullanımıyla ilgili notlar:

1) Yükseltilmiş ayrıcalıklara sahip bir CMD penceresi açın. [Windows Key-X seçeneği ile bir menü açmak için; "Komut İstemi (Yönetici)" seçeneğini seçin.]
2) Hizmetler'deki listeden parantez adını kullanın [örneğin, Hizmetler'de "Google Güncelleme (gupdate)" yazdığında "sc delete gupdate" kullandım]


21

Bazı insanlar sc deletecevap olarak bahsediyorlar . Ben böyle yaptım, ama <service-name>parametreyi bulmak biraz zaman aldı .

Komut sc query type= service(not, biçimlendirme konusunda çok özeldir, "servis" öncesi boşluk gereklidir), yüklü Windows hizmetlerinin listesini sc delete <service-name>komutla kullanılacak nitelikli adlarıyla birlikte çıkarır.

Liste oldukça uzundur, bu nedenle çıktıyı bir metin dosyasına (örn. >> C:\test.txt) Aktarmayı ve ardından bunu aramayı düşünebilirsiniz .

SERVICE_NAMEİle kullanımı biridir sc delete <service-name>komuta.


2
Kabul edilen cevap hakkındaki yorumuma bakın. Hizmet adı, Hizmetler panelindeki hizmetin Özellikler sayfasına bakarak hızlı bir şekilde belirlenebilir.
donperk

2
Bu tamamen gereksizdi: onlar hizmetler listesinde gösterince sadece, hizmetler listesinden kaldırmak istediğiniz hizmetlerin özelliklerini açabilirsiniz içinde hizmetler listesinde ve size hizmet adı gösterecektir. Özelliklerde listelenen "hizmet adı" da aynı hizmet adıdır. :)
neminem

2
Evet, isme başka yollarla ulaşabileceğinizi biliyorum. Bunu ekledim çünkü komutta hangi isimlerin kullanılacağını bulmakta zorlandım. Hizmet özelliklerinde listelenen adı görmüştüm, ancak komutta kullanılacak adın ne zaman olduğunu bilmiyordum. Komut satırını kullanmak, <service_name> dahil olmak üzere yüklü tüm hizmetleri boşaltmak için kullanmamın iyi bir yoluydu. Ben tüm hizmetler için eklenti aramak zorunda kalmadan onlara alabilir böylece dosyaya tüm liste dökümü için kolay oldu bu yüzden gerekli birkaç hizmet vardı.
Robin French

Sadece sc queryvarsayılan olarak çalıştırabilirsiniz type= service.
Ian Kemp

11

Windows Hizmetini Kayıt Defteri aracılığıyla kaldırma

Doğru yolu biliyorsanız, kayıt defterinden bir hizmeti kaldırmak çok kolaydır. İşte bunu nasıl yaptım:

  1. Regedit veya Regedt32'yi çalıştırın

  2. "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services" kayıt defteri girdisine gidin.

  3. Silmek istediğiniz hizmeti bulun ve silin. Hizmetin hangi dosyaları kullandığını öğrenmek için anahtarlara bakabilir ve bunları da silebilirsiniz (gerekirse).

Windows Hizmeti'ni Komut Penceresi'nden Silme

Alternatif olarak, komut istemini kullanabilir ve aşağıdaki komutu kullanarak bir hizmeti silebilirsiniz:

sc sil

Aşağıdaki komutu kullanarak da hizmet oluşturabilirsiniz

sc "MorganTechService" oluştur binpath = "C: \ Program Files \ MorganTechSPace \ myservice.exe"

Not: Listenin servis yöneticisinde güncellenmesi için sistemi yeniden başlatmanız gerekebilir.


9

Bunun için bir araç kullanmak isterseniz Process Hacker'ı kullanabilirsiniz

Hizmeti oluşturmak için form:

Hacker Hizmeti Oluşturma İşlemi

Bir hizmetteki içerik menüsünü silmek için:

Hacker Silme İşlemini İşleme

Process Hacker'ı Windows süreçlerini ve hizmetlerini yönetmek için Windows'un kendi Taskmgr.exe programından daha uygun bir araç olarak görüyorum. Özellikle görev yöneticisinden hizmetlere hiç erişemediğiniz Windows XP'de.


4

Tomcat hizmetimi yeniden yüklemem gerekiyordu, bu da öncelikle kaldırılması anlamına geliyordu. Bu benim için çalıştı:

Start a command prompt window using run as administrator

sc query type= service >t.txt

(t.txt dosyasını düzenleyin, listede arama yapın ve tomcat hizmetini bulun. Tomcat7 olarak adlandırılır)

sc delete Tomcat7

Ancak, tomcat hizmeti çalışmadığından, sorgu komutu ilk kez çalışmadı. Yalnızca çalışan hizmetleri listeliyor gibi görünüyor. Hizmeti başlatmak ve sorgu komutunu yeniden çalıştırmak zorunda kaldı.


Durdurulmuş hizmetleri görmek istiyorsanız, stateparametreyi kullanın .
Harry Johnston

3

Özgün Service .InstallLog ve .InstallState dosyaları hala klasördeyse, dosyaları değiştirmek için yürütülebilir dosyayı yeniden yüklemeyi deneyebilir, ardından InstallUtil / u kullanın ve programı kaldırın. Biraz kıvrık, ama benim için belirli bir örnekte çalıştı.



0

1. Adım: Hizmetinizin bulunduğu Dizine geçin

Komut: cd c: \ xxx \ yyy \ service

2. Adım: Aşağıdaki komutu girin

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

Burada service.exe hizmet exe ve \ u hizmeti kaldıracak. "Kaldırma işlemi tamamlandı" iletisini görürsünüz.

Bir hizmet yüklemek istiyorsanız, yukarıdaki komutta hizmetinizi yükleyecek \ u Kaldır


3
OP, orijinal dosyaların silindiğini açıkça söyledi.
17'de

0

Çalıştırsanız bile sc_delete, hizmetiniz için kayıt defterinde kalan bir giriş olabileceğini keşfettik , böylece hizmeti yeniden yüklemek bozuk bir kayıt defteri girdisi kümesiyle sonuçlanır (eşleşmez). Yaptığımız şey regeditartık bu girişi elle kaldırmaktı.

Not: ShipmunkService sc_delete'den sonra hala görünmektedir!

Ardından yeniden yükleyebilirsiniz ve hizmetiniz doğru şekilde çalışacaktır. Hepinize iyi şanslar ve güç sizinle olsun.


0

Windows hizmetinizi komut istemiyle kaldırabilirsiniz, ayrıca sadece bu komut parçasını yazın

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

0

-Windows+r açık cmd.

-sc YourSeviceName bu kod hizmetinizi kaldırın.

-Uninstal "YourService Path" bu kod hizmetinizi kaldırın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.