ฉันจะลบบริการใน Windows ได้อย่างไร


419

ฉันมีบริการเก่าสองสามอย่างที่ฉันต้องการถอนการติดตั้งอย่างสมบูรณ์ ฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


783

ใช้คำสั่งSCเช่นนี้ (คุณจำเป็นต้องอยู่ในพรอมต์คำสั่งเพื่อดำเนินการคำสั่งในโพสต์นี้):

SC STOP shortservicename
SC DELETE shortservicename

หมายเหตุ:คุณต้องเรียกใช้พรอมต์คำสั่งในฐานะผู้ดูแลระบบไม่ใช่เพียงลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ แต่ต้องมีสิทธิ์ระดับผู้ดูแลด้วย หากคุณได้รับข้อผิดพลาดด้านบนเกี่ยวกับการไม่มีสิทธิ์การเข้าถึงที่จำเป็นในการหยุดและ / หรือลบบริการให้เรียกใช้พรอมต์คำสั่งในฐานะผู้ดูแลระบบ คุณสามารถทำได้โดยค้นหาพรอมต์คำสั่งบนเมนูเริ่มแล้วคลิกขวาแล้วเลือก "Run as administrator" หมายเหตุสำหรับผู้ใช้ PowerShell: ใช้นามแฝงsc set-contentดังนั้นsc delete serviceจริงจะสร้างไฟล์ชื่อกับเนื้อหาdelete serviceหากต้องการทำสิ่งนี้ใน Powershell ให้ใช้sc.exe delete serviceแทน


หากคุณต้องการค้นหาชื่อบริการแบบย่อของบริการใช้คำสั่งต่อไปนี้เพื่อสร้างไฟล์ข้อความที่มีรายการบริการและสถานะ:

SC QUERY state= all >"C:\Service List.txt"

สำหรับรายการที่กระชับยิ่งขึ้นให้เรียกใช้คำสั่งนี้:

SC QUERY state= all | FIND "_NAME"

ชื่อบริการแบบย่อจะแสดงอยู่เหนือชื่อที่แสดงเช่นนี้:

SERVICE_NAME: MyService
DISPLAY_NAME: My Special Service

และเพื่อลบบริการดังกล่าว:

SC STOP MyService
SC DELETE MyService

5
กำลังลบบริการการค้นพบ SSDP หรือไม่ มันใช้สำหรับตรวจจับและกำหนดค่าอุปกรณ์ UPnP บนเครือข่ายท้องถิ่นคุณไม่ควรลบมัน มันถูกใช้เป็นตัวอย่างเท่านั้น
Lasse V. Karlsen

5
ฉันเห็นแล้วใช่ ฉันคิดว่าคุณหมายถึงไม่แนะนำให้ลบบริการ ขอบคุณสำหรับคำตอบ!
sgwill

16
ฉันสงสัยว่ามีผู้ดูแลระบบจำนวนเท่าใดที่ลบบริการ SSDPSRV ของพวกเขาโดยไม่ตั้งใจไปเพราะคำตอบนี้: p
Vincent Vancalbergh

6
ใช้sc query state= allเพื่อรับรายการบริการเต็มรูปแบบ พื้นฐานsc queryจะไม่ส่งคืนบริการที่ไม่ใช้งาน (aka ปิดใช้งาน)
tricasse

32
โปรดทราบว่าหากคุณกำลังใช้ PowerShell ให้ใช้นามแฝงsc set-contentดังนั้นsc delete serviceจริงจะสร้างไฟล์ชื่อกับเนื้อหาdelete serviceหากต้องการทำสิ่งนี้ใน Powershell ให้ใช้sc.exe delete serviceแทน
KFL

48

คลิกเริ่ม | เรียกใช้และพิมพ์regeditในบรรทัด Open: คลิกตกลง

นำทางไปยัง HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

เลื่อนลงบานหน้าต่างด้านซ้ายค้นหาชื่อบริการคลิกขวาและเลือกลบ

รีบูทระบบ


1
นี่เป็นทางเลือกที่ดีเมื่อโฮสติ้งที่ปฏิบัติการได้ซึ่งบริการถูกลบ (ไม่ได้ถอนการติดตั้ง) และsc deleteกลไกที่ต้องการล้มเหลว ขอบคุณ
holtavolt

17

ใช้services.mscหรือ (เริ่ม> แผงควบคุม> เครื่องมือการดูแลระบบ> บริการ) เพื่อค้นหาบริการที่เป็นปัญหา ดับเบิลคลิกเพื่อดูชื่อบริการและเส้นทางไปยังไฟล์ที่เรียกทำงานได้

ตรวจสอบข้อมูลรุ่น exe เพื่อหาเบาะแสเกี่ยวกับเจ้าของบริการและใช้โปรแกรม Add / Remove เพื่อทำการถอนการติดตั้งใหม่ทั้งหมดหากเป็นไปได้

ความล้มเหลวนั้นจากพรอมต์คำสั่ง:

sc stop servicexyz
sc delete servicexyz

ไม่จำเป็นต้องรีสตาร์ท


2
โปรดทราบว่าหากบริการมีช่องว่างในชื่อคุณจะต้องใส่ชื่อเต็มในเครื่องหมายคำพูด - เช่นsc delete "Amazon Assistant Service"
Jan 'splite' K.

13
SC DELETE "service name"

เรียกใช้คำสั่งบน cmd ในฐานะผู้ดูแลระบบมิฉะนั้นคุณจะได้รับข้อผิดพลาดนี้: -

openservice ล้มเหลวถูกปฏิเสธการเข้าถึง 5 รายการ


9

เราสามารถทำได้สองวิธี

ลบ Windows Service ผ่าน Registry

มันง่ายมากที่จะลบบริการออกจากรีจิสทรีหากคุณรู้เส้นทางที่ถูกต้อง นี่คือวิธีที่ฉันทำ:

  1. เรียกใช้RegeditหรือRegedt32

  2. ไปที่รายการรีจิสทรี "HKEY_LOCAL_MACHINE / ระบบ / CurrentControlSet / Services"

  3. ค้นหาบริการที่คุณต้องการลบและลบ คุณสามารถดูคีย์เพื่อทราบว่าบริการไฟล์ใดกำลังใช้งานอยู่และลบทิ้งเช่นกัน (หากจำเป็น)

ลบบริการ Windows ผ่านหน้าต่างคำสั่ง

หรือคุณสามารถใช้พรอมต์คำสั่งและลบบริการโดยใช้คำสั่งต่อไปนี้:

sc ลบ

นอกจากนี้คุณยังสามารถสร้างบริการโดยใช้คำสั่งดังต่อไปนี้

sc สร้าง "MorganTechService" binpath = "ไฟล์ C: \ Program Files \ MorganTechSPace \ myservice.exe"

หมายเหตุ: คุณอาจต้องรีบูตระบบเพื่อให้ได้รับการอัพเดตรายการในตัวจัดการบริการ


5
วิธีการ regedit ใช้ไม่ได้สำหรับฉัน เมื่อฉันรีเฟรชตัวจัดการบริการมันยังคงแสดงบริการ แต่มีข้อผิดพลาดที่ระบุว่าไม่สามารถแสดงคำอธิบายได้
datguy

2
หมายเหตุ: คุณอาจต้องรีบูตระบบเพื่อให้ได้รับการอัพเดตรายการในตัวจัดการบริการ
kombsh

2
อาจเป็นไปได้ แต่นั่นทำให้วิธีการ regedit ด้อยกว่าคำสั่ง SC ซึ่งไม่จำเป็นต้องรีบูต
datguy

4
สิ่งนี้ทำให้บริการของฉันยุ่ง: (โปรดอย่าเข้าใจผิดนี่คือความโง่, แสดง anser นี้ในหน้าการค้นหาของมันโดยอัตโนมัติและฉันเชื่อมั่นและปฏิบัติตามมันอย่างสุ่มโดยไม่ต้องคลิกลิงค์ SOF และฉันต้อง reimage เครื่องของฉัน
Anand Rockzz

ขอบคุณสำหรับวิธีการรีจิสทรี วิธีเดียวที่ฉันสามารถทำได้บนเครื่องหักหลัง
frostymarvelous

8

หากคุณมี Windows Vista หรือใหม่กว่าโปรดเรียกใช้จากพรอมต์คำสั่งในฐานะผู้ดูแลระบบ:

sc delete [your service name as shown in service.msc e.g moneytransfer]

ตัวอย่างเช่น: sc delete moneytransfer

ลบโฟลเดอร์ C:\Program Files\BBRTL\moneytransfer\

ค้นหาคีย์รีจิสตรีการโอนเงินและลบ:

 HKEY_CLASSES_ROOT\Installer\Products\
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\
 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EventLog\
 HKEY_LOCAL_MACHINE\System\CurrentControlSet002\Services\
 HKEY_LOCAL_MACHINE\System\CurrentControlSet002\Services\EventLog\
 HKEY_LOCAL_MACHINE\Software\Classes\Installer\Assemblies\ [remove .exe references]
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Folders

ขั้นตอนเหล่านี้ได้รับการทดสอบใน Windows XP, Windows 7, Windows Vista, Windows Server 2003 และ Windows Server 2008


6

หากเป็น. NET บริการที่สร้างขึ้นคุณสามารถใช้ installutil.exe โดยใช้สวิตช์ / u ในโฟลเดอร์. net framework เช่น C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727


6

ตามที่อธิบายไว้ข้างต้นฉันดำเนินการ:

sc delete ServiceName

อย่างไรก็ตามสิ่งนี้ไม่ทำงานเมื่อฉันเรียกใช้งานจาก PowerShell

เมื่อใช้ PowerShell คุณต้องระบุเส้นทางแบบเต็มไปsc.exeเพราะ PowerShell มีนามแฝงเริ่มต้นสำหรับการกำหนดมันsc Set-Contentเนื่องจากเป็นคำสั่งที่ถูกต้องจึงไม่แสดงข้อความข้อผิดพลาด

เพื่อแก้ไขปัญหานี้ฉันดำเนินการดังต่อไปนี้:

C:\Windows\System32\sc.exe delete ServiceName

2

นี่คือสคริปต์ vbs ที่ส่งผ่านมาหาฉัน:

Set servicelist = GetObject("winmgmts:").InstancesOf ("Win32_Service")

for each service in servicelist
    sname = lcase(service.name)
    If sname = "NameOfMyService" Then 
        msgbox(sname)
        service.delete ' the internal name of your service
    end if
next

อาจเป็น nameofmyservice ไม่ใช่ NameOfMyService เนื่องจาก sname เป็นตัวพิมพ์เล็กทั้งหมดต่อบรรทัดก่อน
Dominik George


0

สำหรับฉันบริการของฉันที่ฉันสร้างขึ้นจะต้องถูกถอนการติดตั้งในแผงควบคุม> โปรแกรมและคุณสมบัติ


คุณจะเห็นบริการที่ติดตั้งในโปรแกรมและคุณลักษณะต่าง ๆ ได้อย่างไร
Nisha

ถ้าฉันจำได้อย่างถูกต้องนี่คือตอนที่ฉันมีโปรแกรมที่ฉันเชื่อว่า splunk หลังจากติดตั้งแล้ววิ่งเป็นบริการเพราะมันเป็นโฮสต์ในพื้นที่คุณสามารถไปที่ localhost: 8080 เพื่อดูเว็บไซต์ท้องถิ่น เพื่อให้ฉันลบมันฉันต้องไปที่โปรแกรมทั้งหมด
Demodave

ขอบคุณ. ฉันติดตั้งบริการ teh โดยใช้พรอมต์คำสั่ง ฉันลบโดยใช้ cmd เป็น cmd pmpt ขอขอบคุณอีกครั้งสำหรับการตอบกลับ
Nisha


0

คุณสามารถใช้ยูทิลิตี้ตัวแก้ไขรายการบริการเล็ก ๆ ของฉันService Manager

ดูตัวอย่าง

คุณสามารถเลือกบริการใด ๆ > แก้ไข> ลบ วิธีนี้ใช้ได้ทันทีโดยไม่ต้องบูตเครื่องใหม่

ไฟล์ที่ปฏิบัติการได้: [ดาวน์โหลด]

รหัสแหล่งที่มา: [ดาวน์โหลด]

บล็อกโพสต์: [BlogLink]

คลาสตัวแก้ไขบริการ: WinServiceUtils.cs

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.