
หลังจากถอนการติดตั้งโปรแกรมหรือเครื่องมือบางอย่างแล้ว บริการที่ไม่ได้ใช้อาจยังคงอยู่ใน Windows บทความนี้จะอธิบายวิธีการลบบริการใน Windows อย่างถูกต้องโดยใช้เครื่องมือ CMD หรือ PowerShell ในตัว
สแน็ปอินการจัดการกราฟิกของบริการ ( services.msc ) ใน Windows จะมีเฉพาะปุ่มการดำเนินการพื้นฐานสำหรับการเริ่ม หยุดชั่วคราว หรือหยุดบริการเท่านั้น คอนโซลนี้ไม่สามารถใช้เพื่อลบบริการได้
ตัวอย่างเช่น ภารกิจคือการลบบริการ Wrapper Stunnel TLS ที่ไม่ได้ใช้ (ในกรณีของฉัน บริการนี้ใช้เพื่อเข้ารหัสการรับส่งข้อมูลของแอปด้วย Stunnel) ขั้นแรก รับชื่อบริการ ในกรณีนี้คือทำให้มึนงง (คัดลอกชื่อจากช่องชื่อบริการ)

เข้าใจอย่างถ่องแท้ถึงผลกระทบที่อาจเกิดขึ้นจากการกระทำของคุณ เพื่อหลีกเลี่ยงการรบกวนสภาพแวดล้อมของคุณ ขอแนะนำให้ปิดการใช้งานบริการและสังเกตการทำงานของบริการสักพักก่อนที่จะลบออก คุณสามารถปิดใช้งานการเริ่มต้นอัตโนมัติของบริการได้โดยใช้คำสั่ง PowerShell ต่อไปนี้:
ฉันขอแนะนำให้คุณใช้ความระมัดระวังในการลบบริการและ เพื่อหลีกเลี่ยงการรบกวนสภาพแวดล้อมของคุณ ขอแนะนำให้ปิดการใช้งานบริการและสังเกตการทำงานของบริการสักพักก่อนที่จะลบออก คุณสามารถปิดใช้งานการเริ่มต้นอัตโนมัติของบริการได้โดยใช้คำสั่ง PowerShell ต่อไปนี้:
Set-Service stunnel – ประเภทการเริ่มต้นถูกปิดใช้งาน – passthru
ภาวะหยุดให้บริการหยุดชะงัก

นอกจากนี้ ก่อนที่จะลบบริการ ให้ตรวจสอบพารามิเตอร์ DependentServices เพื่อดูว่าบริการอื่นใดที่ขึ้นอยู่กับบริการนั้น
รับบริการ stunnel-DependentServices
คุณต้องหยุดบริการก่อนจึงจะสามารถลบออกได้ คลิกปุ่มหยุดในคอนโซลบริการหรือรันคำสั่ง:
เน็ตสต็อปตะลึง

การตั้งค่าบริการจะถูกจัดเก็บไว้ในรีจิสทรีภายใต้คีย์ HKLM\SYSTEM\CurrentControlSet\Services
ก่อนที่จะลบบริการ ให้สำรองข้อมูลการตั้งค่าโดยส่งออกการกำหนดค่าบริการไปยังไฟล์ REG ด้วยคำสั่งต่อไปนี้:
ส่งออก reg "HKLM\SYSTEM\CurrentControlSet\Services\stunnel""%HOMEPATH%\Documents\stunnel\_backup.reg"/y

ตอนนี้คุณสามารถลบบริการตามชื่อได้โดยใช้คำสั่ง sc.exe ในตัว (หากชื่อบริการมีช่องว่าง ให้ใส่เครื่องหมายคำพูด):
sc ลบสตันเนล
ข้อความควรปรากฏขึ้น:
SC DeleteService SUCCESS

เครื่องมือ sc.exe ช่วยให้คุณจัดการบริการบนคอมพิวเตอร์ระยะไกล หากต้องการหยุดและลบบริการบนคอมพิวเตอร์ M-FS01 ให้รัน
sc.ee \\m-fs01 หยุด ServiceName1
sc.exe \\m-fs01 ลบ ServiceName1
หรือคุณสามารถลบบริการโดยใช้ PowerShell:
สตันเนลการลบบริการ

Remove-Service cmdlet มีอยู่ใน PowerShell Core เวอร์ชัน 6.x และใหม่กว่า
ใน Windows PowerShell 5.1 ซึ่งไม่มีคำสั่ง Remove-Service คุณสามารถใช้ WMI เพื่อลบบริการได้:
$service=Get-WmiObject-Class Win32\_Service-Filter "ชื่อ='stunnel'"$service.delete()
นอกจากนี้ หากต้องการลบบริการ คุณสามารถลบคีย์รีจิสทรีของบริการได้ภายใต้ HKLM\SYSTEM\CurrentControlSet\Services เพื่อให้แน่ใจว่าคุณกำหนดเป้าหมายบริการที่ถูกต้องสำหรับการลบออก ให้ค้นหาบริการในรายการและตรวจสอบว่าพารามิเตอร์ DisplayName และ ImagePath มีชื่อของบริการและเส้นทางที่สมบูรณ์ไปยังไฟล์ปฏิบัติการ ลบรหัสบริการทั้งหมด

F5 เพื่อรีเฟรชรายการคอนโซลบริการและตรวจสอบว่าบริการถูกลบออกและไม่ปรากฏอีกต่อไป โดยปกติจะแนะนำให้ใช้กับค่ารีจิสทรี ImagePath
กดเพื่อรีเฟรชรายการคอนโซลบริการและตรวจสอบว่าบริการถูกลบออกและไม่ปรากฏอีกต่อไป โดยปกติจะแนะนำให้รีสตาร์ท Windows หลังจากลบบริการแล้ว หลังจากรีบูต คุณสามารถลบไฟล์ปฏิบัติการและไดเร็กทอรีที่อ้างอิงตามค่ารีจิสตรีได้
เมื่อลบบริการบางอย่างผ่าน CMD อาจปรากฏข้อความแจ้งว่าบริการถูกทำเครื่องหมายเพื่อลบ ซึ่งระบุว่ามีกำหนดการลบออก แต่อาจจำเป็นต้องปิดหมายเลขอ้างอิงที่เกี่ยวข้องหรือรีสตาร์ทระบบเพื่อให้กระบวนการเสร็จสมบูรณ์
DeleteService FAILED 1072:The specified service has been marked for deletion.
บริการนี้จะถูกลบออกโดยอัตโนมัติหลังจากที่คอมพิวเตอร์รีสตาร์ท
หากต้องการลบบริการโดยไม่ต้องรีสตาร์ท Windows ให้ใช้คำสั่ง Taskill หรือยุติกระบวนการปฏิบัติการที่รันอยู่ของบริการจาก Task Manager จากนั้นลบคีย์รีจิสทรีบริการโดยใช้คำสั่ง PowerShell ต่อไปนี้:
รับรายการ HKLM:\SYSTEM\CurrentControlSet\Services\stunnel | ลบรายการบังคับ Verbose
*️⃣ ลิงค์ที่มา:
ถอนการติดตั้งบางโปรแกรม, เข้ารหัสการรับส่งข้อมูลแอปด้วย Stunnel, , PowerShell Core เวอร์ชัน 6.x และใหม่กว่า, , รีสตาร์ท Windows หลังจากลบบริการ, รีจิสตรีคีย์โดยใช้ PowerShell ต่อไปนี้,