Как я могу удалить службу в Windows? - PullRequest
391 голосов
/ 16 сентября 2008

У меня есть пара старых сервисов, которые я хочу полностью удалить. Как я могу это сделать?

Ответы [ 12 ]

732 голосов
/ 16 сентября 2008

Используйте команду SC , например, так (вам нужно быть в командной строке для выполнения команд в этом посте):

SC STOP shortservicename
SC DELETE shortservicename

Примечание: Вам необходимо запустить командную строку как администратор, не только авторизованный как администратор, но и с правами администратора. Если вы получили ошибки выше о том, что у вас нет необходимых прав доступа для остановки и / или удаления службы, запустите командную строку от имени администратора. Вы можете сделать это, выполнив поиск командной строки в меню «Пуск», а затем щелкните правой кнопкой мыши и выберите «Запуск от имени администратора». Примечание для пользователей 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
43 голосов
/ 16 сентября 2008

Нажмите Пуск | Запустите и введите regedit в строке Open :. Нажмите ОК.

Перейдите к HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Прокрутите вниз левую панель, найдите имя службы, щелкните его правой кнопкой мыши и выберите Удалить .

Перезагрузите систему.

15 голосов
/ 16 сентября 2008

Используйте services.msc или (Пуск> Панель управления> Администрирование> Службы), чтобы найти соответствующую службу. Дважды щелкните, чтобы увидеть имя службы и путь к исполняемому файлу.

Проверьте информацию о версии exe для получения информации о владельце службы и используйте «Установка и удаление программ» для полного удаления, если это возможно.

В противном случае из командной строки:

sc stop servicexyz
sc delete servicexyz

Перезапуск не требуется.

12 голосов
/ 18 сентября 2013
SC DELETE "service name"

Запустите команду на cmd от имени администратора, в противном случае вы получите эту ошибку: -

openservice не удалось 5 доступ запрещен

8 голосов
/ 23 сентября 2013

Мы можем сделать это двумя разными способами

Удаление службы Windows через реестр

Очень просто удалить службу из реестра, если вы знаете правильный путь. Вот как я это сделал:

  1. Выполнить Regedit или Regedt32

  2. Перейти к записи реестра "HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services"

  3. Найдите сервис, который вы хотите удалить, и удалите его. Вы можете просмотреть ключи, чтобы узнать, какие файлы использовала служба, а также удалить их (при необходимости).

Удаление службы Windows через командное окно

Кроме того, вы также можете использовать командную строку и удалить службу, используя следующую команду:

sc delete

Вы также можете создать сервис, используя следующую команду

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

Примечание. Возможно, вам придется перезагрузить систему, чтобы обновить список в диспетчере служб.

8 голосов
/ 07 марта 2013

Если у вас Windows Vista или выше, запустите ее из командной строки от имени администратора:

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

Например: sc delete moneytransfer

Удалить папку C:\Program Files\BBRTL\moneytransfer\

Найдите ключи реестра 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 голосов
/ 08 марта 2018

Как описано выше, я выполнил:

sc delete ServiceName

Однако это не сработало, так как я выполнял его из PowerShell.

При использовании PowerShell вы должны указать полный путь к sc.exe, поскольку PowerShell имеет псевдоним по умолчанию для sc, назначая его Set-Content. Поскольку это действительная команда, на самом деле сообщение об ошибке не отображается.

Чтобы решить эту проблему, я выполнил это следующим образом:

C:\Windows\System32\sc.exe delete ServiceName
5 голосов
/ 28 октября 2008

Если это сервисы, созданные в .NET, вы можете использовать installutil.exe с ключом / u его в папке .net Framework, как C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727

2 голосов
/ 16 сентября 2008

Вот сценарий 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
1 голос
/ 16 сентября 2008

sc удалить имя

...