Задать вопрос

Создание службы в Windows 10

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

Создание службы с помощью программы Sc.exe

Первый способ позволяет создавать службы, используя утилиты, работающие через командную строку. В данном случае, используется инструмент sc.exe. Он позволяет взаимодействовать с функциями API и выполнять операции со службами Windows 10. Несмотря на то, что данная программа даже не обладает графическим интерфейсом, она является мощным инструментом и может контролировать состояние служб, создавать, редактировать и управлять ими.
Если создавать службу, с помощью sc.exe, то не возникает необходимости в изменении параметров реестра и списка служб в диспетчере. Кроме того, утилита способна работать со службами на локальном компьютере, и выполнять те же действия на удаленных машинах.
Чтобы создать новый сервис, откройте командную строку от имени администратора и запустите команду «Sc create». Она запишет новую службу к базе диспетчера служб. Синтаксис команды представлен следующим образом:

sc create [ServiceName] [binPath= ] <параметр1= > <параметр2= >

Где:

  • ServiceName — данным параметром определяется имя раздела службы в реестре;
    Данное имя не совпадает с тем именем, которое будет отображаться диспетчере (например, в Services).
  • BinPath — в этом параметре записываем путь, где хранится исполняемый файл.

Чтобы было понятнее, в качестве примера, мы создадим службу «MySevice». При этом, отображаемое имя будет «My New Service». Указываем тип службы и включаем автозапуск:

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

Теперь откройте оснастку «Services» и взгляните на то, что получилось:

оснастка «Services»

Параметры службы, которая уже была создана и запущена, можно изменить при помощи команды Sc config. К примеру, мы заменим имя службы, которое отображается как:

Sc config MyService DisplayName=″My Service″

А еще можно избавиться от службы полным ее удалением. Для этого используйте такую команду:

Sc delete MyService

удалить службу

С помощью утилиты PowerShell

Ну а с помощью такого мощного инструмента, как PowerShell можно хоть горы двигать. Он обладает большими возможностями и способен работать с различными службами. Здесь, для добавления новой службы, существует специальная команда «New -Service». Давайте попробуем новую службу, как и в прошлом примере, будем использовать те же имена и значения, только добавим дополнительный параметр, в виде описания. И так, команда, для создания нового сервиса, выглядит следующим образом:

New-Service -Name MyService -BinaryPathName C:\MyService\MyService.exe` -DisplayName ″My New Service″ -Description ″Very Important Service !!!″

Для изменения параметров служб, существует команда «Set -Service»:

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

параметры службы windows 10

Если не считать дополнительную возможность добавления описаний к службам, PowerShell обладает таким же функционалом, как и утилита Sc.exe. Но есть один маленький минус — здесь нет простой команды для удаления службы. Поэтому приходиться использовать такой вот, немного мудреный, код:

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

Так что утилита sc.exe, в этом плане будет получше. И по этой причине я предпочитаю именно ее.

Это может пригодиться:
Комментарии: 6 Оставить комментарий
Ответить
Вархан 03.12.2018 в 05:53 (5 лет назад)

в таком варианте не срабатывает
Sc create MyService binPath=C:\MyService\MyService.exe DisplayName=″My New Service″ type=own start=auto
Работает только в таком варианте
sc create MyService binPath= «C:\MyService\MyService.exe» DisplayName= ″My New Service″ type= own start= auto
т.е. с пробелами после «=» и путь в кавычках!!!

Ответить
Сергей 03.12.2018 в 10:53 (5 лет назад)

Спасибо за подсказку.

Ответить
Денис 08.05.2022 в 23:57 (2 года назад)

Все здорово и замечательно но, как быть параметрами командной строки куда их писать очевидно в параметр1….параметр n ??

Ответить
Александр 10.03.2020 в 13:36 (4 года назад)

Действительно! После каждого знака «=» нужен пробел. У меня работает без кавычек в пути. И работает из командного файла (в моем случае c.bat).

Вот строка из файла:

Sc create Service2020 binpath= c:\du1\slugba2020.exe displayname= «ATEST» type= own start= auto

Ответить
Макс 15.09.2022 в 22:06 (2 года назад)

У меня не работало ни в одном из прошлых вариантов, заработало в таком виде:
sc create MyService binPath= «C:\MyService\MyService.exe» DisplayName= «My New Service» type= own start= auto

Внимание на кавычки, их есть 3 вида: « ″ » — у меня система (windows 10) понимает только »

Не понимаю как система может понимать кириллические кавычки елочкой:
sc create MyService binPath= «C:\MyService\MyService.exe» DisplayName= ″My New Service″ type= own start= auto

Ответить
Макс 15.09.2022 в 22:09 (2 года назад)

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

Добавить комментарий

Новые комментарии