Làm cách nào để xóa dịch vụ trong Windows?


Câu trả lời:


784

Sử dụng lệnh SC , như thế này (bạn cần phải có dấu nhắc lệnh để thực thi các lệnh trong bài này):

SC STOP shortservicename
SC DELETE shortservicename

Lưu ý: Bạn cần chạy dấu nhắc lệnh với tư cách quản trị viên, không chỉ đăng nhập với tư cách quản trị viên mà còn có quyền quản trị. Nếu bạn gặp lỗi ở trên về việc không có quyền truy cập cần thiết để dừng và / hoặc xóa dịch vụ, hãy chạy dấu nhắc lệnh với tư cách quản trị viên. Bạn có thể làm điều này bằng cách tìm kiếm dấu nhắc lệnh trên menu bắt đầu của bạn, sau đó nhấp chuột phải và chọn "Chạy với tư cách quản trị viên". Lưu ý cho người dùng PowerShell: sc được đặt bí danh set-content. Vì vậy, sc delete servicethực sự sẽ tạo ra một tập tin được gọi deletevới nội dung service. Để làm điều này trong Powershell, sử dụng sc.exe delete servicethay thế


Nếu bạn cần tìm tên dịch vụ ngắn của dịch vụ, hãy sử dụng lệnh sau để tạo tệp văn bản chứa danh sách dịch vụ và trạng thái của chúng:

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

Để có danh sách ngắn gọn hơn, hãy thực hiện lệnh này:

SC QUERY state= all | FIND "_NAME"

Tên dịch vụ ngắn sẽ được liệt kê ngay phía trên tên hiển thị, như thế này:

SERVICE_NAME: MyService
DISPLAY_NAME: My Special Service

Và do đó để xóa dịch vụ đó:

SC STOP MyService
SC DELETE MyService

5
Xóa dịch vụ khám phá SSDP? Nó được sử dụng để phát hiện và định cấu hình các thiết bị UPnP trên mạng cục bộ, bạn không nên xóa nó. Nó chỉ được sử dụng như một ví dụ.
Lasse V. Karlsen

5
Ồ, tôi hiểu rồi, đúng vậy. Tôi nghĩ bạn có nghĩa là xóa các dịch vụ không được khuyến khích. Cảm ơn câu trả lời!
sgwill

16
Tôi tự hỏi có bao nhiêu sysadins đã vô tình xóa dịch vụ SSDPSRV của họ hoàn toàn vì câu trả lời này: p
Vincent Wrapsalbergh

6
Sử dụng sc query state= allđể có được danh sách đầy đủ các dịch vụ; cơ bản sc querysẽ không trả lại các dịch vụ không hoạt động (còn gọi là bị vô hiệu hóa).
tricasse

33
Lưu ý rằng nếu bạn đang sử dụng PowerShell, scsẽ được đặt bí danh set-content. Vì vậy, sc delete servicethực sự sẽ tạo ra một tập tin được gọi deletevới nội dung service. Để làm điều này trong Powershell, sử dụng sc.exe delete servicethay thế.
KFL

49

Nhấp vào Bắt đầu | Chạy và gõ regeditvào dòng Open :. Nhấn OK.

Hướng đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Cuộn xuống khung bên trái, xác định tên dịch vụ, nhấp chuột phải vào nó và chọn Xóa .

Khởi động lại hệ thống.


1
Đây là một dự phòng tốt khi lưu trữ thực thi dịch vụ đã bị xóa (không được gỡ cài đặt) và sc deletecơ chế ưa thích không thành công. Cảm ơn.
holtavolt

17

Sử dụng services.msc hoặc (Bắt đầu> Bảng điều khiển> Công cụ quản trị> Dịch vụ) để tìm dịch vụ được đề cập. Bấm đúp để xem tên dịch vụ và đường dẫn đến tệp thực thi.

Kiểm tra thông tin phiên bản exe để biết manh mối về chủ sở hữu dịch vụ và sử dụng các chương trình Thêm / Xóa để thực hiện gỡ cài đặt sạch nếu có thể.

Không, từ dấu nhắc lệnh:

sc stop servicexyz
sc delete servicexyz

Không cần khởi động lại.


2
Xin lưu ý rằng nếu dịch vụ có dấu cách trong tên, bạn phải bọc tên đầy đủ vào dấu ngoặc kép - nhưsc delete "Amazon Assistant Service"
Jan 'splite' K.

13
SC DELETE "service name"

Chạy lệnh trên cmd với tư cách Quản trị viên nếu không bạn sẽ gặp lỗi này: -

mở dịch vụ thất bại 5 truy cập bị từ chối


9

Chúng ta có thể làm điều đó theo hai cách khác nhau

Xóa dịch vụ Windows qua Registry

Rất dễ dàng để xóa một dịch vụ khỏi registry nếu bạn biết đúng đường dẫn. Đây là cách tôi đã làm điều đó:

  1. Chạy Regedit hoặc Regedt32

  2. Chuyển đến mục đăng ký "HKEY_LOCAL_MACHINE / HỆ THỐNG / CurrentControlset / Services"

  3. Hãy tìm dịch vụ mà bạn muốn xóa và xóa nó. Bạn có thể nhìn vào các phím để biết tập tin nào mà dịch vụ đang sử dụng và cũng xóa chúng (nếu cần).

Xóa dịch vụ Windows qua cửa sổ lệnh

Ngoài ra, bạn cũng có thể sử dụng dấu nhắc lệnh và xóa dịch vụ bằng lệnh sau:

sc xóa

Bạn cũng có thể tạo dịch vụ bằng cách sử dụng lệnh sau

sc tạo "MorganTechService" binpath = "C: \ Chương trình tập tin \ MorganTechSPace \ myservice.exe"

Lưu ý: Bạn có thể phải khởi động lại hệ thống để cập nhật danh sách trong trình quản lý dịch vụ.


5
Phương pháp regedit không hiệu quả với tôi. Khi tôi làm mới trình quản lý dịch vụ, nó vẫn hiển thị dịch vụ, nhưng nó có lỗi cho biết nó không thể hiển thị mô tả.
datguy

2
Lưu ý: Bạn có thể phải khởi động lại hệ thống để cập nhật danh sách trong trình quản lý dịch vụ.
kombsh

2
Có thể, nhưng điều đó làm cho cách tiếp cận regedit kém hơn lệnh SC, không yêu cầu khởi động lại.
datguy

4
Đây sai lầm dịch vụ của tôi :( xin vui lòng không khuyên bậy THis goodle ngu ngốc, showup Anser này trong trang tìm kiếm của mình automactically và tôi tin tưởng nó và đi theo nó một cách mù quáng mà không cần nhấp vào liên kết SOF và tôi đã phải reimage máy tính của tôi.
Anand Rockzz

cảm ơn phương thức đăng ký. cách duy nhất tôi có thể làm điều đó trên một máy nổi loạn.
băng giá

8

Nếu bạn có Windows Vista trở lên, vui lòng chạy nó từ dấu nhắc lệnh với tư cách Quản trị viên:

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

Ví dụ: sc delete moneytransfer

Xóa thư mục C:\Program Files\BBRTL\moneytransfer\

Tìm khóa đăng ký Moneytransfer và xóa chúng:

 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

Các bước này đã được thử nghiệm trên Windows XP, Windows 7, Windows Vista, Windows Server 2003 và Windows Server 2008.


6

Nếu chúng là các dịch vụ được tạo bởi .NET, bạn có thể sử dụng installutil.exe với / u chuyển đổi nó trong thư mục khung .net như C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727


6

Như đã mô tả ở trên, tôi đã thực hiện:

sc delete ServiceName

Tuy nhiên, điều này không hoạt động khi tôi đang thực thi nó từ PowerShell.

Khi sử dụng PowerShell, bạn phải chỉ định đường dẫn đầy đủ sc.exevì PowerShell có bí danh mặc định để scgán cho nó Set-Content. Vì đó là một lệnh hợp lệ nên nó không thực sự hiển thị thông báo lỗi.

Để giải quyết điều này tôi đã thực hiện nó như sau:

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

2

Đây là một kịch bản vbs được truyền lại cho tôi:

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

Có lẽ nameofmyservice, không phải NameOfMyService, vì sname là tất cả chữ thường trên mỗi dòng trước đó.
Dominik George


0

Đối với tôi, dịch vụ của tôi mà tôi đã tạo phải được gỡ cài đặt trong Bảng điều khiển> Chương trình và Tính năng


làm thế nào bạn có thể thấy các dịch vụ được cài đặt trong các chương trình và tính năng
Nisha

Nếu tôi nhớ chính xác, thì đó là khi chương trình tôi có mà tôi tin là bị văng, sau khi cài đặt, chạy như một dịch vụ vì nó được lưu trữ cục bộ, bạn có thể truy cập localhost: 8080 để xem trang web địa phương. Để tôi gỡ bỏ nó, tôi phải cho toàn bộ chương trình.
Demodave

Cảm ơn bạn. Tôi đã cài đặt dịch vụ teh bằng cách sử dụng dấu nhắc lệnh. Tôi đã xóa bằng cmd trong cmd pmpt. Cảm ơn một lần nữa vì đã trả lời.
Nisha


0

Bạn có thể sử dụng tiện ích biên tập danh sách dịch vụ nhỏ của tôi Trình quản lý dịch vụ

Xem trước

Bạn có thể chọn bất kỳ dịch vụ> Sửa đổi> Xóa. Phương pháp hoạt động ngay lập tức, không cần khởi động lại.

Tập tin thực thi: [Tải xuống]

Mã nguồn: [Tải xuống]

Bài đăng trên blog: [BlogLink]

Lớp biên tập dịch vụ: WinServiceUtils.cs

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.