Ноя 032015
 

slygbu-windows Неведомыми мне путями возникла проблема запуска одной из служб, когда она не хотели ни создаваться, ни удаляться. Инсталлятор программного обеспечения просто отказывался что либо делать с некорректно работающей службой. Пришлось немного покопать в «глубь», чтобы решить эту проблему.
Существует несколько вариантов установки/удаления служб это через утилиту SC.exe, или с помощью Power Shell. И тот и другой инструмент присутствует по умолчанию в поставке Windows.

И так, как произвести установку службы с помощью SC.exe:
1.Обязательно запускаем командную строку от имени Администратора.
2. Копируем текст, и заменяем параметры на необходимые нам.

Sc create MyService binPath= C:\MyService\MyService.exe DisplayName= "My New Service" type= own start= auto

где,
SC create — параметр указывающий, что мы хотим создать службу;
MyService — Имя службы;
binPath — путь до службы (если присутствуют пробелы в пути, то необходимо использовать двойные кавычки);
DisplayName — Как будет отображаться название службы в диспетчере;
type — тип службы;
start — тип запуска службы.
ВАЖНО! следите за пробелами в командах, после параметра пробел не нужен, но после знака равно обязателен, в противном случае будет ошибка (пример: type= own)

Удаление службы:

Sc delete MyService

При необходимости, можно изменить ошибочные параметры (но мне проще удалить службу и создать ее заново, кому как).

Sc config MyService DisplayName="My Service one"

Как произвести установку службы с помощью Power Shell.

Если У вас установлен только Core без GUI, или вы любитель скриптов, то это Ваш метод 🙂
1.Обязательно запускаем Power Shell от имени Администратора.
2. Копируем текст, и заменяем параметры на необходимые нам.

New-Service -Name MyService -BinaryPathName C:\MyService\MyService.exe -DisplayName "My New Service" -Description "New MyService"

Отличие от SC.exe только в одном, в этой команде можно добавить описание службы (для кого то это важно).

Удаление службы:

(Get-WmiObject win32_service -Filter ″name=′MyService′″).delete()

Изменить параметры службы можно c помощью команды Set-Service:

Set-Service -Name MyService -Description ″Not Very Important Service″ -StartupType Manual