Как удалить службу Windows, если в системе нет исполняемого файла?

Как удалить службу Windows, если в системе нет исполняемого файла? Я не могу запустить installutil -u, так как в системе нет исполняемого файла. Я все еще вижу запись для службы в консоли "Службы".

Причина этого состояния, вероятно, связана с проблемой в msi-пакете, который не удаляет сервис правильно, но как его исправить после службы в этом состоянии?

Ответ 1

Вы можете удалить его с помощью sc.exe(я думаю, что он включен в комплект Windows Resource Kit), выполнив следующее в командной строке "administrator":

sc.exe delete <service name>

где <service name> - это имя самой службы, как вы видите ее в консоли управления службами, а не exe.

Вы можете найти sc.exe в системной папке, и для его выполнения требуются права администратора. Дополнительная информация в этой статье Microsoft KB.

В качестве альтернативы вы можете напрямую вызвать DeleteService() api. Этот способ немного сложнее, так как вам нужно получить управление диспетчером управления сервисом через OpenSCManager() и т.д., Но на другой рукой это дает вам больше контроля над тем, что происходит.

Ответ 2

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

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

  • Запустите Regedit или Regedt32

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

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

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

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

sc удалить

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

sc создать "MorganTechService" binpath = "C:\Program Files\MorganTechSPace\myservice.exe"

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

Ответ 3

найдено здесь

Я просто пробовал Windows XP, он работал

локальный компьютер: sc \\. удалить [имя-службы]

  Deleting services in Windows Server 2003

  We can use sc.exe in the Windows Server 2003 to control services, create services and delete services. Since some people thought they must directly modify the registry to delete a service, I would like to share how to use sc.exe to delete a service without directly modifying the registry so that decreased the possibility for system failures.

  To delete a service: 

  Click "start" - "run", and then enter "cmd" to open Microsoft Command Console.

  Enter command:

  sc servername delete servicename

  For instance, sc \\dc delete myservice

  (Note: In this example, dc is my Domain Controller Server name, which is not the local machine, myservice is the name of the service I want to delete on the DC server.)

  Below is the official help of all sc functions:

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

Ответ 4

Мой любимый способ сделать это - использовать приложение Sysinternals Autoruns. Просто выберите службу и нажмите "Удалить".

Ответ 5

Ниже приведена команда powershell script для удаления службы foo

$foo= Get-WmiObject -Class Win32_Service -Filter "Name='foo'"
$foo.delete()

Ответ 6

Создайте копию исполняемых файлов одной службы и вставьте ее на один и тот же путь существующей службы, а затем удалите.