Как создать службу в windows 10 через командную строку

Службы в Windows — особые процессы, выполняемые в фоновом режиме, в том числе от учетной записи «СИСТЕМА», которые могут быть запущены в том числе до входа в систему. При желании вы можете создать свою собственную службу, которая будет работать таким же образом.

В этой инструкции подробно о том, как создать службу в Windows 11 или Windows 10 средствами системы, ограничениях методов и одном дополнительном способе заставить работать ваш процесс в качестве службы.

Создание службы в командной строке

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

  1. Запустите командную строку от имени Администратора (способы запуска командной строки от Администратора).
  2. Используйте команду, заменив текстовые описания и пути на свои:
    sc create Имя_службы binPath="C:\service-file.exe" DisplayName= "Описание_службы" type=own start=auto
  3. После нажатия Enter вы получите сообщение: CreateService: успех, что означает, что служба была успешно создана.
    Создание службы в командной строке Windows

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

  • binPath — путь к исполняемому файлу службы.
  • DisplayName — отображаемое в списке служб имя службы.
  • start — тип запуска, возможные значения: boot, auto, demand (значение по умолчанию), disabled, delayed-auto
  • type — тип службы, по умолчанию own, возможны другие значения: share (делит исполняемый файл с другими службами), kernel (драйвер), filesys (драйвер файловой системы), interact (интерактивная служба с возможность взаимодействия с пользователем, поддержка этого типа служб прекращается).

После создания службы вы сможете увидеть её в списке служб (Win+Rservices.msc), а автоматический запуск произойдет при следующей перезагрузке системы.

Созданная служба в списке служб Windows

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

Создать службу можно и в PowerShell, запущенном от имени администратора (или в Терминале Windows). Базовый вариант команды с параметрами по умолчанию:

New-Service -Name "Имя_Службы" -BinaryPathName '"C:\путь_к_файлу параметры_запуска"'

Расширенный вариант с указанием описания и типа запуска:

New-Service -Name MyService -BinaryPathName '"C:\путь_к_файлу параметры_запуска"' -DisplayName "Имя_службы" -Description "Описание службы" -StartupType "Automatic"
Создание службы в Windows PowerShell

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

-BinaryPathName C:\remontka.exe

При создании служб в PowerShell доступны и ряд дополнительных параметров, описанных в официальной справке на сайте Майкрософт.

Удаление созданной службы

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

sc delete Имя_службы
Удаление службы в командной строке

Или в Windows PowerShell:

Remove-Service -Name MyService

После выполнения указанных команд созданная вами служба будет удалена из Windows.

Созданная служба не работает, варианты решения

Из описания можно предположить, что любой файл .exe может быть службой, однако, при попытке добавить свои фоновые утилиты и заставить их работать в виде службы рядовые пользователи обычно сталкиваются с ситуацией, когда процесс запускается, а затем закрывается сам. А при запуске службы вручную через некоторое время сообщает, что служба не ответила на запрос своевременно или о других ошибках.

Причина в том, что исполняемые файлы служб — не совсем обычные программы, они, помимо прочего, обмениваются данными с системой. Если ваш EXE не отвечает на соответствующие запросы системы, Windows «делает вывод» о том, что со службой что-то не так.

Как быть, если вы всё-таки настойчиво хотите использовать свой прикладной исполняемый файл в качестве службы?

  • Использовать планировщик заданий и запуск от соответствующего пользователя — это не будет в полной мере службой, но почти то, что нужно.
  • Ранее существовала программа RunAsSvc, позволяющая запускать любые процессы в качестве службы, но для современных ОC он не применима, а разработка была прекращена.
    Утилита RunAsSvc

  • Использовать инструменты INSTSRV.EXE и SRVANY.EXE из Windows Server 2003 Resource Kit Tools при создании службы Windows.

Создание пользовательской службы с помощью INSTSRV.EXE и SRVANY.EXE

Последний вариант из приведённого выше списка рассмотрим подробнее. Шаги будут следующими:

  1. Загрузите (вероятнее всего, придется найти в Интернете на сторонних сайтах) Windows Server 2003 Resource Kit полностью или только файлы INSTSRV.EXE и SRVANY.EXE, располагаем их у себя на диске, в моем примере путь — C:\Windows
  2. В командной строке от имени администратора используйте команду (пути меняем на свои):
    C:\Windows\instsrv.exe Имя_службы C:\Windows\srvany.exe
    Создание службы с помощью instsrv и srvany

  3. Если вы получили сообщение о том, что The service was successfully added, всё прошло успешно. Теперь требуется запустить редактор реестра (Win+Rregedit).
  4. В редакторе реестра перейдите по пути
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\

    и найдите раздел с вашим именем службы. Нажимаем по нему правой кнопкой мыши и выбираем пункт «Создать» — «Раздел», задаем имя «Parameters» для раздела.

  5. Выберите созданный раздел, нажмите правой кнопкой мыши в правой панели редактора реестра и создайте новый строковый параметр с именем Application
  6. Дважды нажмите по параметру и в поле «Значение» укажите путь к вашему файлу exe для запуска службы.
    Путь к исполняемому файлу службы в реестре

Закройте редактор реестра — служба создана, её можно запустить из services.msc или она будет автоматически запущена после перезагрузки компьютера.

Учитывайте, что во всех приведенных примерах служба по умолчанию запускается с учетной записью «СИСТЕМА». В некоторых случаях это может приводить к неправильной работе. В этом случае может иметь смысл зайти в свойства службы в services.msc и изменить параметры на вкладке «Вход в систему».

Все способы:

  • Способ 1: Консольная утилита sc.exe
  • Способ 2: Консоль «PowerShell»
  • Способ 3: Сторонние программы
  • Вопросы и ответы: 0

Способ 1: Консольная утилита sc.exe

Назначить любой процесс системной службой в Windows 10 можно с помощью маленькой консольной утилиты sc.exe, входящей в состав операционной системы. Для обращения к ней можно использовать как классическую «Командную строку», так и консоль «PowerShell».

  1. Запустите от имени администратора «Командную строку» или «PowerShell». Первую можно открыть из поиска Windows, вторую – из контекстного меню кнопки «Пуск».
  2. Как создать службу в Windows 10-1

  3. Сформируйте команду следующего вида: sc create MyService binPath="C:\MyService.exe" DisplayName= "MyNewService" type=own start=auto. В качестве параметра MyService binPath укажите свой путь к исполняемому файлу создаваемой службы, а в качестве параметра DisplayName — имя службы, которое станет отображаться в оснастке управления службами.
  4. Вставьте сформированную команду в консоль и нажмите клавишу ввода.
  5. Как создать службу в Windows 10-2

Готово, осталось только проверить корректность создания службы в системной оснастке «Службы», запустить которую можно командой services.msc в диалоговом окошке, вызванном клавишами Win + R.

Как создать службу в Windows 10-3

Способ 2: Консоль «PowerShell»

Необходимыми средствами создания служб в Windows 10 располагает другой штатный инструмент – консоль «PowerShell».

  1. Запустите «PowerShell» от имени администратора.
  2. Как создать службу в Windows 10-4

  3. Сформируйте команду вида New-Service -Name MyService -BinaryPathName C:\MyService.exe -DisplayName "Отображаемое имя службы" -Description "Описание службы". Имя и описание службы могут быть произвольными.
  4. Вставьте команду в консоль и нажмите клавишу ввода.
  5. Как создать службу в Windows 10-5

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

Способ 3: Сторонние программы

Также для создания собственных служб в Windows 10 можно использовать специализированные сторонние утилиты, например Non-Sucking Service Manager. Утилита работает через «Командную строку», но у нее также имеется и графический интерфейс.

Скачать Non-Sucking Service Manager с официального сайта

  1. Скачайте архив с утилитой с сайта разработчика и распакуйте в удобное расположение — к примеру, поместите исполняемый файл nssm.exe в корень системного диска.
  2. Запустите «Командную строку» от имени администратора.
  3. Выполните команду C:\nssm.exe install MyService, где MyService – название создаваемой службы.
  4. Как создать службу в Windows 10-6

  5. В открывшемся окошке инсталлятора в поле «Patch» укажите полный путь к исполняемому файлу службы и нажмите кнопку «Install service».
  6. Как создать службу в Windows 10-7

  7. Служба будет установлена, подтверждением чему станет появление окошка с уведомлением «Service *Name* installed successfully!». Нажмите в нем «OK» и закройте «Командную строку».

Остальные поля в окошке инсталлятора службы заполнять не обязательно, кроме тех случаев, когда в качестве службы устанавливается командный файл, например CMD, BAT или PS1. В этом случае в поле «Patch» указывается путь к приложению-обработчику, а в поле «Arguments» – путь к файлу скрипта.

Наша группа в TelegramПолезные советы и помощь

We already discussed how to delete a service in Windows 10, 8, and 7, so now we will discuss how to add a Service which is handy if you want to add or restore a Service.

Adding a service is easy using the Command Prompt or PowerShell as an administrator.

Type in sc.exe create SERVICENAME binpath= «PATH TO SERVICE»

Notes:
Replace SERVICENAME without spaces in the name
Be sure to leave a space after binpath=

For example, I can create a PowerShell shortcut by using:
sc.exe create PowerShell binpath= «C:\Windows\System32\Windows\PowerShellv1.0powershell.exe»

Open Services (Windows key + R and services.msc) and edit your new service however you like.

You can also delete any service.

Similar:

  • How to Restore or Verify Default Services in Windows 7, 8, and 10
  • How to Identify Processes or Services on Your Computer
  • How to Add Services to Control Panel in Windows
  • How-To Customize Process Information Viewed in Task Manager
  • Automatic and Manual Trigger Start Explained

    comments powered by Disqus

  • Все действия со службами можно совершать как локально, сидя перед монитором компьютера, так и удаленно, используя удаленный доступ к консоли ОС.

    Создание новой системной службы для любой программы

    Для запуска программы в качестве системной службы в ОС Windows можно воспользоваться либо графической утилитой, либо консольной командой sc. Графическая утилита srvinstw.exe, выполненная в виде мастера конфигурации, очень проста в использовании и поэтому далее ее рассматривать мы не будем.

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

    sc create имя_службы binpath= путь_до_исполняемого_файла start= параметр_запуска displayname= отображаемое_имя

    Имя службы — это системное название создаваемой службы, выступающее в качестве уникального идентификатора. Если имя службы содержит пробелы, то название службы следует поместить в двойные кавычки.

    Параметр запуска может принимать значение:

    • auto — автоматический старт при загрузке ОС;
    • demand — загрузка производится вручную при необходимости;
    • disabled — системная служба отключена.

    Отображаемое имя — это имя службы, которое будет показываться для пользователя.

    Пример:

    Так выглядит команда для запуск прокси сервера Squid в качестве системной службы:

    sc create squid binpath= C:/Squid/etc/squid.conf start= auto displayname= «Proxy server Squid»

    Изменение параметров запуска службы

    Для изменения параметров системной службы нужно ввести новые параметры командой:

    sc config имя_службы start= параметр_запуска [displayname= отображаемое_имя]

    Удаление системной службы

    Для удаления системной службы из списка служб, требуется в консоли ввести команду:

    sc delete имя_службы

    Запуск, остановка и перезагрузка системной службы

    Для того, чтобы запустить службу в ОС Windows нужно в консоли набрать:

    net start имя_службы

    Для остановки службы:

    net stop имя_службы

    Для перезагрузки службы:

    net restart имя_службы

    #16
     понедельник, 3 июля 2023 г.

     4 минут(ы)
     257 слов

    Команда sc create используется для создания новых служб в Windows. Она имеет множество опций, которые позволяют управлять различными аспектами службы. Вот основные из них:

    • binPath= : Это обязательная опция, указывающая путь к исполняемому файлу службы.
    • displayname= : Это дружественное имя службы, которое отображается в утилитах управления службами Windows.
    • start= : Это определяет, когда служба должна быть запущена. Он может быть установлен в boot, system, auto, demand (по умолчанию) или disabled.
    • obj= : Это определяет учетную запись, под которой будет работать служба. По умолчанию это LocalSystem.
    • password= : Это пароль учетной записи, указанной в параметре obj. Этот параметр игнорируется, если служба работает под учетной записью LocalSystem.
    • type= : Это определяет тип службы. Он может быть установлен в own, share, kernel, filesys, rec.
    • error= : Это определяет действие, которое должно быть выполнено, когда служба не может быть запущена. Он может быть установлен в normal, severe, critical, ignore.
    • tag= : Это определяет, будет ли служба использовать тегированный заказ при загрузке драйверов.
    • depend= : Это список имен служб или групп, от которых зависит данная служба.
    • group= : Это имя группы загрузки, в которую входит служба.
    • priority= : Это приоритет загрузки для службы в своей группе.
    • prefix= : Это префикс для имени службы, который используется при сортировке имени в списках служб.

    Пример использования sc create с несколькими из этих опций:

    sc create MyService binPath= "C:\path\to\my\service.exe" start= auto obj= "NT AUTHORITY\NetworkService"
    

    Эта команда создаст службу с именем «MyService», которая автоматически запускается при загрузке и работает под учетной записью «NetworkService».



    Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
  • Microsoft windows wmi activity
  • Не работает панель поиска windows 10 на панели задач
  • Как проверить программу на совместимость с windows 10
  • Windows не удалось применить параметры mdm policy
  • Horizon forbidden west windows