Как создать службу в Windows 10 или 11 средствами системы

Servicewinrun

Службами в Windows называются процессы, стартующие вместе с системой, не имеющие графического интерфейса и работающие в фоновом режиме, причем большинство служб запускается и работают независимо от того, вошел ли пользователь в свою учетную запись или нет. Эту особенность операционной системы можно использовать в практических целях, например, создать собственную службу, которая станет отслеживать изменения в реестре или отправку пакетов TCP/IP.

В статье от 07 декабря 2020 года мы уже рассматривали процедуру создания служб в Windows 10, предлагая использовать для этой цели стороннюю утилиту Non-Sucking Service Manager, укомплектованную простейшим графическим интерфейсом.

Сегодня мы предлагаем познакомиться со способами создания служб исключительно средствами операционной системы. Используйте их, если в качестве службы вам нужно установить процесс исполняемого файла EXE, так как для назначения службами процессов скриптов всё же удобнее использовать Non-Sucking Service Manager.

Командная строка

Для создания служб в Windows можно использовать встроенную консольную утилиту sc.exe, предназначением которой как раз является добавление, удаление, опрос и конфигурирование системных служб.

Запустите командную строку от имени администратора и выполните в ней команду следующего вида:

sc create MyService binPath="C:\service.exe" DisplayName= "ServiceName" type=own start=auto

Sc create

Как нетрудно догадаться, C:\service.exe – это путь к исполняемому файлу службы, ServiceName – отображаемое имя (псевдоним), а MyService – фактическое имя службы, к которому нужно будет обращаться в процессе настройки службы. Параметр type задает статус, в параметр start – тип запуска.

Службы

В данном примере служба имеет статус «Отключена», а тип запуска у нее выставлен «Автоматически», в чем можно убедиться, открыв свойства добавленной службы в оснастке управления службами.

Свойства службы

Если служба станет больше не нужна, вы всегда сможете ее удалить командой:

sc delete MyService

Sc delete

PowerShell

Средствами создания и управления службами обладает также и консоль PowerShell.

Запустите ее от имени администратора и выполните следующую команду:

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

New-Service

Ключевыми параметрами являются -Name и -BinaryPathName: первый принимает произвольное имя устанавливаемой службы, а второй – путь к исполняемому файлу службы.

Моя служба

Параметры -DisplayName и -Description являются дополнительными, они задают отображаемое имя и описание службы.

Свойство моей службы

А вот с удалением службы в PowerShell не всё так однозначно.

Если у вас установлена консоль шестой или более новой версии, службу можно будет удалить командой:

Remove-Service -Name MyService

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

(Get-WmiObject win32_service -Filter "name='MyService'").delete()

Get-WmiObject

Для тех, кто не в курсе: узнать текущую версию PowerShell можно командой host, билд будет указан в строке Version.

Host

И возвращаясь к службам отметим, что между службами, созданными в командной строке и PowerShell, нет никакой разницы, поэтому для их удаления в том и другом случае вы можете использовать команду sc delete MyService.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *