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

Обновлено: 21.11.2024

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

Это руководство содержит пошаговые инструкции по созданию службы Windows с помощью любой программы в Windows 10, 8, 7 и Server OS.

Как запустить любое приложение как службу Windows.

Способ 1. Запустите приложение как службу Windows с помощью утилиты RunAsService.
Способ 2. Запуск программы как службы с помощью утилиты NSSM.

Метод 1. Как запустить любое приложение в качестве службы Windows с помощью утилиты «Запуск от имени службы».

Первый способ создать пользовательскую службу из любой программы — использовать утилиту RunAsService.

<р>1. Загрузите инструмент RunAsService на свой компьютер.
2. Переместите или скопируйте загруженный файл RunAsService.exe в корневую папку диска C:\. *

* Примечание (важно). Вы можете поместить средство "RunAsService.exe" в любое место на диске, но убедитесь, что средство находится в том же месте, чтобы установленные службы продолжали работать. .

Ширина

<р>3. Откройте командную строку от имени администратора.
4. В командной строке введите: cd\

<р>5. Теперь установите приложение, которое вы хотите использовать в качестве службы, с помощью следующей команды: *

  • Установить RunAsService " ServiceName " " Display-Name "" PathToExecutable "

Примечания:

<р>1. В приведенной выше команде замените значения красными буквами следующим образом:

Имя: введите имя службы, которую хотите создать. Вы можете использовать имя службы для запуска или остановки службы вручную в будущем с помощью команд «net start» или «net stop».

Отображаемое имя: если хотите, введите другое имя для списка служб Windows. Вот как будет отображаться название сервиса в списке сервисов. Если «Отображаемое имя» не указано, отображаемое имя будет таким же, как «ServiceName» созданной вами службы.

PathToExecutable: введите полный путь к приложению, которое вы хотите запустить как службу Windows.

Например: Чтобы установить приложение «Notepad.exe» как службу Windows с именем «Блокнот», введите следующую команду:

  • RunAsService устанавливает "Блокнот" "C:\Windows\System32\notepad.exe"

<р>6. После выполнения команды в списке служб появится новая служба Windows с именем, которое вы указали в команде «RunAsService». Чтобы запустить только что созданную службу при запуске:

а. Щелкните правой кнопкой мыши службу и выберите "Свойства".

б. Убедитесь, что для параметра Тип запуска установлено значение Автоматически.

<р>в. Перезагрузите компьютер, чтобы проверить службу. *

  • net stop " ServiceName "
  • Удалить RunAsService " ServiceName "

Способ 2. Как запустить любую программу как службу с помощью NSSM.

Второй способ запуска любого приложения в качестве службы в Windows – использование инструмента Non-Sucking Service Manager.

<р>1. Скачать НССМ.
2. Извлеките загруженный ZIP-файл.
3. Переименуйте извлеченную папку (например, «nssm-2.24») в NSSM.
4. Скопируйте папку NSSM в корневую папку диска C:\
5. Откройте командную строку от имени администратора и перейдите в папку NSSM, введя по порядку следующие команды (нажимайте Enter после ввода каждой команды):

<р>6. Теперь, в зависимости от вашей версии Windows (32- или 64-разрядной), перейдите к одной из двух содержащихся подпапок, введя соответствующую команду (и нажав Enter).

  • Если у вас 64-разрядная версия Windows, введите: cd win64
  • Если у вас 32-разрядная версия Windows, введите: cd win32
<р>7. Теперь введите следующую команду: *

<р>8. В открывшемся окне:

<р>8а. Нажмите кнопку с точками в виде дерева (3) рядом с ПУТЬ и выберите исполняемый файл приложения, которое вы хотите запустить как службу.

8б. По завершении введите имя новой службы и нажмите «Установить службу».

8в. Нажмите OK в сообщении «Служба успешно установлена», и все готово! *

а. Выполните шаги 5 и 6 выше, а затем введите следующую команду: *

* Примечание. Где ServiceName = имя службы, которую вы создали с помощью утилиты NSSM.
например. nssm удалить БЛОКНОТ в этом примере.

б. Наконец, нажмите Да, чтобы удалить службу.

Вот оно! Дайте мне знать, помогло ли вам это руководство, оставив свой комментарий о своем опыте. Поставьте лайк и поделитесь этим руководством, чтобы помочь другим.

Если эта статья оказалась для вас полезной, поддержите нас, сделав пожертвование. Даже 1 доллар США может иметь для нас огромное значение, поскольку мы продолжаем помогать другим, оставляя этот сайт бесплатным:

Мы нанимаем

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

Если вы хотите постоянно оставаться защищенным от угроз вредоносных программ, существующих и будущих, мы рекомендуем вам установить Malwarebytes Anti-Malware PRO, нажав кнопку ниже (мы получаем комиссию от продаж, полученных по этой ссылке, но без дополнительной оплаты). У нас есть опыт работы с этим программным обеспечением, и мы рекомендуем его, поскольку оно полезно и полезно):

В этой статье описаны действия по созданию определяемой пользователем службы Windows NT.

Относится к: Windows 10 — все выпуски
Исходный номер базы знаний: 137890

Эта статья содержит информацию об изменении реестра. Прежде чем редактировать реестр, убедитесь, что вы понимаете, как его восстановить в случае возникновения проблемы. Информацию о том, как это сделать, см. в разделах интерактивной справки «Восстановление реестра» или «Восстановление ключа реестра» в редакторе реестра.

Обзор

Комплект ресурсов Windows NT содержит две утилиты, позволяющие создавать определяемые пользователем службы Windows NT для приложений Windows NT и некоторых 16-разрядных приложений, но не для пакетных файлов.

Instrsrv.exe устанавливает и удаляет системные службы из Windows NT, а Srvany.exe позволяет запускать любое приложение Windows NT как службу.

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

Чтобы создать пользовательскую службу Windows NT, выполните следующие действия:

В командной строке MS-DOS (запустив CMD.EXE) введите следующую команду:

где путь — это диск и каталог набора ресурсов Windows NT (например, C:\RESKIT ), а Моя служба — это имя создаваемой вами службы.

Пример: C:\Program Files\Resource Kit\Instsrv.exe Блокнот C:\Program Files\Resource Kit\Srvany.exe

Чтобы убедиться, что служба создана правильно, проверьте реестр и убедитесь, что значение ImagePath в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\имя службы указывает на SRVANY.EXE. Если это не задано правильно, служба остановится вскоре после запуска и вернет идентификатор события 7000 (имя службы не удалось запустить).

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

Для получения информации о том, как редактировать реестр, просмотрите следующие разделы интерактивной справки в редакторе реестра:

  • Изменение ключей и значений
  • Добавить и удалить информацию в реестре
  • Изменить данные реестра

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

Запустите редактор реестра (Regedt32.exe) и найдите следующий подраздел:

В меню "Правка" выберите "Добавить ключ". Введите следующие данные и нажмите кнопку ОК:

Нажмите кнопку "Параметры".

В меню "Правка" выберите "Добавить значение". Введите следующие данные и нажмите кнопку ОК:

  • Имя значения: Приложение
  • Тип данных: REG_SZ
  • Строка:

Закройте редактор реестра.

По умолчанию вновь созданная служба настроена на автоматический запуск при перезапуске системы. Чтобы изменить этот параметр на «Вручную», запустите апплет «Службы» из панели управления. Затем измените значение Startup на Manual. Службу, настроенную на Вручную, можно запустить одним из нескольких способов:

В приложении "Службы" панели управления

В командной строке MS-DOS введите следующую команду:

Используйте служебную программу Sc.exe из набора ресурсов. Введите следующую команду в командной строке MS-DOS:

это диск и каталог набора ресурсов Windows NT (например, C:\Reskit ).

Создает подраздел и записи для службы в реестре и в базе данных Service Control Manager.

Синтаксис

Параметры

  • own — указывает службу, которая работает в своем собственном процессе. Он не использует исполняемый файл совместно с другими службами. Это значение по умолчанию.
  • share — указывает службу, которая работает как общий процесс. Он использует исполняемый файл совместно с другими службами.
  • ядро – определяет драйвер.
  • filesys — указывает драйвер файловой системы.
  • rec — определяет драйвер, распознаваемый файловой системой, который идентифицирует файловые системы, используемые на компьютере.
  • interact — указывает службу, которая может взаимодействовать с рабочим столом, получая данные от пользователей. Интерактивные службы должны запускаться под учетной записью LocalSystem. Этот тип должен использоваться в сочетании с type= own или type= shared (например, type=interacttype=own). Использование type=interact само по себе приведет к ошибке.
  • boot — указывает драйвер устройства, загружаемый загрузчиком.
  • system — указывает драйвер устройства, который запускается во время инициализации ядра.
  • auto — указывает службу, которая автоматически запускается каждый раз при перезагрузке компьютера и работает, даже если никто не входит в систему.
  • demand — указывает службу, которую необходимо запустить вручную. Это значение по умолчанию, если start= не указано.
  • disabled — указывает службу, которую невозможно запустить. Чтобы запустить отключенную службу, измените тип запуска на другое значение.
  • delayed-auto — указывает службу, которая запускается автоматически через некоторое время после запуска других автоматических служб.
  • normal — указывает, что ошибка заносится в журнал и отображается окно сообщения, информирующее пользователя о том, что не удалось запустить службу. Запуск продолжится. Это настройка по умолчанию.
  • серьезная — указывает, что ошибка регистрируется (если возможно). Компьютер пытается перезагрузиться с последней удачной конфигурацией. Это может привести к тому, что компьютер сможет перезагрузиться, но служба по-прежнему не сможет работать.
  • критическая — указывает, что ошибка регистрируется (если возможно). Компьютер пытается перезагрузиться с последней удачной конфигурацией. Если последняя известная удачная конфигурация дает сбой, запуск также завершается ошибкой, а процесс загрузки останавливается со стоп-ошибкой.
  • игнорировать — указывает, что ошибка регистрируется и запуск продолжается. Пользователю не выдается никакого уведомления, кроме записи ошибки в журнале событий.

Примечания

Каждая опция командной строки (параметр) должна включать знак равенства как часть имени опции.

Между параметром и его значением требуется пробел (например, type= own. Если пробел опущен, операция завершится ошибкой.

Примеры

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

Иногда вам нужно, чтобы приложение или скрипт продолжали работать независимо от того, вошли вы в свой компьютер или нет. Возможно, это сценарий PowerShell для мониторинга портов или веб-сервера, на котором размещена страница в вашей домашней сети.

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

Что нужно для создания службы Windows?

Чтобы создать службу Windows в Windows 10, необходимо выполнить несколько предварительных условий:

  • Доступ администратора к компьютеру
  • Что-то для запуска в качестве службы (сценарий PowerShell, программа и т. д.)
  • Установлен Non-Sucking Service Manager (NSSM)

Что такое безотказный сервис-менеджер?

Да, вы не можете произнести такое имя, не объяснив его. Конечно, имя неудачное, но точное. Non-Sucking Service Manager (NSSM), возможно, является самым простым способом создания высоконадежной и настраиваемой службы Windows. Кроме того, это бесплатное программное обеспечение с открытым исходным кодом (OSS).

NSSM можно использовать через командную строку Windows или графический интерфейс пользователя (GUI). Это означает, что любой может использовать его. NSSM можно использовать в любой версии Windows, начиная с Windows 2000 включительно. Существуют 32-разрядные и 64-разрядные версии. Если вы используете 64-разрядный компьютер, сначала попробуйте эту версию. Если это не сработает, вернитесь к 32-разрядной версии.

Вы можете загрузить NSSM с веб-сайта, клонировать NSSM из Git или установить NSSM с помощью Chocolatey. Chocolatey — менеджер пакетов для Windows. Способы установки будут различаться в зависимости от того, какой маршрут вы выберете. Пожалуйста, ознакомьтесь с инструкциями NSSM. В нашем примере мы загружаем его с веб-сайта NSSM и устанавливаем в C:\WINDOWS\system32.

Создание службы Windows с помощью NSSM

Для этого примера мы создадим службу из скрипта PowerShell для регистрации среднего процента загрузки ЦП.

  1. Скопируйте и сохраните этот сценарий как log-CPULoadPercentage.ps1 в месте, к которому никто другой не сможет получить доступ. Попробуйте создать каталог C:/Scripts и сохранить его там. Также создайте папку в Scripts под названием Logs. Обратите внимание, что путь к сценарию — C:/Scripts/log-CPULoadPercentage.ps1. Это понадобится вам позже.
  1. Это можно сделать либо в командной строке Windows, либо в PowerShell. Откройте его от имени администратора.
  2. Введите команду nssm install logCPUAvg и запустите ее. Откроется окно установщика службы NSSM.

  1. Нажмите кнопку с многоточием рядом с полем «Путь:» и перейдите к файлу powershell.exe, который обычно находится в папке C:\Windows\System32\. Выберите powershell.exe. Поля Путь: и Каталог запуска: будут заполнены автоматически.

  1. Введите следующее в поле «Аргументы»: -ExecutionPolicy Bypass -NoProfile -File «C:\PathToScript\get-Script.ps1», где последняя часть — это путь к вашему скрипту PowerShell и имя скрипта.

  1. Перейдите на вкладку "Сведения". Введите то, что вы хотите, чтобы служба отображалась в диспетчере служб Windows, в поле «Отображаемое имя:». Затем введите, что он делает в поле «Описание:». Тип запуска: может быть установлен как автоматический, автоматический (отложенный запуск), ручной или отключенный. Для этого упражнения лучше всего подойдет автоматический режим.

  1. Выберите вкладку «Вход в систему». Выберите переключатель Эта учетная запись: и введите учетную запись и пароль, под которыми будет работать служба. Вам нужно будет выбрать учетную запись, под которой будет работать служба. В идеале у вас должна быть учетная запись Windows, созданная только для запуска этой службы. Разрешения этой учетной записи должны быть ограничены только тем, что должна делать служба. Вы можете выбрать учетную запись локальной системы, но это не рекомендуется из соображений безопасности.

Есть несколько других вкладок, которые можно использовать для настройки службы. Для этого упражнения достаточно значений по умолчанию на этих вкладках. Нажмите кнопку Установить службу.

  1. Когда служба будет установлена, вы увидите, что служба «logCPUAvg» успешно установлена! окно. Выберите OK, чтобы закрыть его. На этом установка завершена.

  1. Откройте диспетчер служб Windows и убедитесь, что служба есть.

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

nssm-check-log.jpg

Удаление службы Windows с помощью NSSM

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

  1. В диспетчере служб Windows остановите службу. Для этого выберите службу Log CPU Average Load, а затем щелкните квадратную кнопку остановки на панели инструментов или ссылку Stop the service слева.

  1. Откройте командную строку Windows или PowerShell от имени администратора.
  2. Введите команду nssm remove logCPUAvg и выполните команду.

  1. NSSM попросит вас подтвердить. Выберите Да.

  1. Когда служба будет удалена, вы увидите, что служба «logCPUAvg» успешно удалена! Подтверждение. Нажмите OK, и все готово.

Это все. Рекомендуется проверить диспетчера служб, чтобы убедиться, что службы больше нет. Если вы все еще видите службу, вам может потребоваться обновить экран, и она должна исчезнуть.

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

О Гае писали в Интернете и в печатных газетах, его номинировали на премии в области писательского мастерства и цитировали в научных статьях благодаря его способности говорить о технологиях с кем угодно, но он по-прежнему предпочитает аналоговые часы. Прочитать полную биографию Гая

Понравился ли вам этот совет? Если это так, загляните на наш канал YouTube на нашем родственном сайте Online Tech Tips. Мы охватываем Windows, Mac, программное обеспечение и приложения, а также предлагаем множество советов по устранению неполадок и обучающих видеороликов. Нажмите кнопку ниже, чтобы подписаться!

Читайте также: