Как прописать службу в windows 10

Способы создания службы в Windows в командной строке или PowerShell, а также с помощью instsrv.exe и srvany.exe. Возможные проблемы в работе и запуске своих служб, варианты решения.

Как создать службу в WindowsСлужбы в 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 "Описание службы" -StarupType "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:Windowsinstsrv.exe Имя_службы C:Windowssrvany.exe

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

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

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

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

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

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

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

Sc.exe

Для создания и службы из командной строки можно использовать программу SC (Sc.exe). SC представляет из себя утилиту командной строки, которая реализует вызовы ко всем функциям интерфейса прикладного программирования (API) управления службами Windows. С ее помощью можно производить любые действия со службами —  просматривать состояние, управлять (запускать, останавливать и т.п.), изменять параметры, а также создавать новые службы.

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

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

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

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

Для примера создадим службу MyService, укажем отображаемое имя My New Service, зададим тип службы и поставим ее на авто-запуск:

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

Затем откроем оснастку «Services» и посмотрим результат.

оснастка Службы

Изменять параметры уже созданной службы можно командой Sc config. Например, мне не понравилось отображаемое имя службы и я хочу его изменить:

Sc config MyService DisplayName=″My Service″

Ну и полностью удалить службу можно вот так:

Sc delete MyService

создание, изменение и удаление службы Windows

PowerShell

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

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

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

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

создание и изменение служб с помощью PowerShell

В принципе PowerShell имеет примерно такой же функционал как и Sc.exe, разве что позволяет добавить описание. А вот для удаления служб в PS простого способа нет, придется воспользоваться вот такой конструкцией:

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

Поэтому лично я предпочитаю использовать Sc.exe.

Службами в 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: Консольная утилита sc.exe
  • Способ 2: Консоль «PowerShell»
  • Способ 3: Сторонние программы
  • Вопросы и ответы

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

Способ 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» и закройте «Командную строку».
  8. Как создать службу в Windows 10-8

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

Еще статьи по данной теме:

Помогла ли Вам статья?

Бывает, что имеется некий исполняемый файл, который необходимо зарегистрировать в системе как службу 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:MyServiceMyService.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:MyServiceMyService.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, в этом плане будет получше. И по этой причине я предпочитаю именно ее.

Автор статьи: Сергей
Windows
6
46712

Это может пригодиться:

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

Вы можете запускать службы, открыв Пуск, набрав: services и нажав Enter. Или вы можете нажать клавишу Windows + R, ввести: services. msc, затем нажмите Enter. Сервисы имеют очень простой интерфейс, но в нем есть сотни сервисов, большинство из которых связано с Windows 10, а другие добавляются третьими сторонами.

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

  1. Откройте «Старт».
  2. Найдите службы и щелкните верхний результат, чтобы открыть консоль.
  3. Дважды щелкните службу, которую хотите остановить.
  4. Щелкните кнопку «Пуск». Источник: Windows Central.
  5. Нажмите кнопку Применить.
  6. Нажмите кнопку ОК.

19 июн. 2020 г.

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

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

  1. В командной строке MS-DOS (при запуске CMD.EXE) введите следующую команду: Копирование консоли. …
  2. Запустите редактор реестра (Regedt32.exe) и найдите следующий подраздел:…
  3. В меню «Правка» выберите «Добавить ключ». …
  4. Выберите ключ параметров.
  5. В меню «Правка» выберите «Добавить значение». …
  6. Закрыть редактор реестра.

8 центов 2020 г.

Как запустить системные службы?

Чтобы вручную запустить службу из диспетчера служб

  1. Откройте диспетчер управления службами, выполнив одно из следующих действий: В Windows XP и 2000 Professional щелкните правой кнопкой мыши «Мой компьютер» на рабочем столе и выберите «Управление». …
  2. Выберите свою службу в списке, щелкните ее правой кнопкой мыши и выберите «Пуск».

30 мар. 2017 г.

Как включить службы Microsoft в Windows 10?

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

  1. Нажмите Пуск и введите services. …
  2. Найдите службы, которые хотите запустить, и щелкните их правой кнопкой мыши.
  3. Выберите «Свойства» и проверьте, запущена ли служба.
  4. Если служба остановлена, выберите «Пуск» или «Перезагрузить». …
  5. Нажмите «Применить».
  6. Нажмите кнопку ОК.

22 сред. 2017 г.

Какие службы можно отключить в Windows 10?

Какие службы отключить в Windows 10 для повышения производительности и улучшения игр

  1. Защитник Windows и брандмауэр.
  2. Служба точки доступа Windows Mobile.
  3. Служба поддержки Bluetooth.
  4. Диспетчер очереди печати.
  5. Факс.
  6. Настройка удаленного рабочего стола и службы удаленного рабочего стола.
  7. Служба предварительной оценки Windows.
  8. Вторичный вход.

Как включить все службы?

Как включить все услуги?

  1. На вкладке «Общие» коснитесь или щелкните параметр «Обычный запуск».
  2. Коснитесь или щелкните вкладку «Службы», снимите флажок рядом с «Скрыть все службы Microsoft», а затем коснитесь или щелкните «Включить все».
  3. Коснитесь или щелкните вкладку «Автозагрузка», а затем коснитесь или щелкните «Открыть диспетчер задач».

2 июн. 2016 г.

Как мне автоматически установить службы Windows?

13 ответов. В своем классе установщика добавьте обработчик для события AfterInstall. Затем вы можете вызвать ServiceController в обработчике событий, чтобы запустить службу. Теперь, когда вы запустите InstallUtil в своем установщике, он установит, а затем автоматически запустит службу.

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

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

  1. Откройте Visual Studio, перейдите в меню «Файл»> «Создать» и выберите «Проект». …
  2. Перейдите в Visual C # -> «Рабочий стол Windows» -> «Служба Windows», дайте вашему проекту подходящее имя и нажмите OK. …
  3. Щелкните правой кнопкой мыши пустую область и выберите «Добавить установщик».

9 юл. 2018 г.

Как создать фиктивную службу Windows?

1 Ответ

  1. Создайте файл dummy.bat на C: с содержанием «pause»
  2. Распакуйте nssm.exe (x86 или x64) в C: Windowsnssm.exe.
  3. Запустите «nssm install»
  4. Путь: C: dummy.bat.
  5. Название услуги — Как хотите!
  6. Нажмите «Установить службу».

Как запустить службу из командной строки?

Нажмите Windows + R, введите cmd и нажмите Enter, чтобы открыть командную строку в Windows 10. Затем введите службы командной строки служб Windows. msc и нажмите Enter, чтобы открыть его.

Как мне установить услугу?

Как установить или удалить службу Windows

  1. Откройте окно командной строки. …
  2. Затем служба .NET запускается как команда, подобная этой (укажите полный путь к вашей службе):…
  3. И если вы хотите удалить службу Windows, просто добавьте ‘/ u’ между installutil.exe и путем, как показано ниже:

18 сред. 2019 г.

Как управлять службами Windows?

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

Как восстановить службы в Windows 10?

Восстановить службы по умолчанию в Windows 10

  1. Щелкните / коснитесь ссылки под столбцом Отображаемое имя службы в таблице ниже службы, которую вы хотите восстановить, чтобы загрузить ее. …
  2. Спасти . …
  3. Дважды щелкните / коснитесь загруженного файла. …
  4. При появлении запроса нажмите / коснитесь «Выполнить», «Да» (UAC), «Да» и «ОК».

28 юл. 2016 г.

Как принудительно остановить службу?

  1. Щелкните меню «Пуск».
  2. Нажмите «Выполнить» или в строке поиска введите services.msc.
  3. Нажмите Ввод.
  4. Найдите службу, проверьте ее свойства и определите ее имя.
  5. Найдя, откройте командную строку. Введите sc queryex [имя_службы].
  6. Нажмите Ввод.
  7. Определите PID.
  8. В той же командной строке введите taskkill / pid [номер pid] / f.

Как перезапустить службу Windows?

Перезапустить службу Windows

  1. Откройте Services. Windows 8 или 10: откройте начальный экран, введите службы. msc и нажмите Enter. Windows 7 и Vista: нажмите кнопку «Пуск» и введите «services». msc в поле поиска и нажмите Enter.
  2. Во всплывающем окне «Службы» выберите нужное приложение и нажмите кнопку «Перезапустить службу».

24 ян. 2014 г.

Содержание

  1. Синтаксис и параметры команды SC CREATE
  2. Примеры команды SC CREATE
  3. Создание службы с помощью программы Sc.exe
  4. С помощью утилиты PowerShell
  5. Dragokas
  6. Dragokas

Команда SC CREATE создает запись службы в реестре и в базе данных диспетчера служб. А для запуска только что созданной службы из командной строки служит команда SC START.

Синтаксис и параметры команды SC CREATE

sc [имя_сервера] create [имя_службы] [type= >] [start= ] [error= ] [binpath= имя_двоичного_пути] [group= группа_порядка_загрузки] [tag= ] [depend= зависимости] [obj= <имя_учетной_записи|имя_объекта>] [displayname= отображаемое_имя] [password= пароль]

  • имя_сервера — Задает имя удаленного сервера, на котором находится служба. В имени следует использовать формат UNC («myserver»). Чтобы запустить SC локально, этот параметр следует пропустить.
  • имя_службы — Указывает имя службы, возвращенное операцией getkeyname.
  • type= > — Указывает тип службы. Тип по умолчанию type= own.
  • start= — Указывает тип запуска для службы. Тип запуска по умолчанию start= demand.
  • error= — Указывает серьезность ошибки, если служба не запускается при загрузке. Значение параметра по умолчанию error= normal.
  • binpath= имя_двоичного_пути — Указывает путь в двоичном файле службы. Значение по умолчанию для параметра binpath= не задано. Эту строку необходимо указать.
  • group= группа_порядка_загрузки — Указывает имя группы, членом которой является эта служба. Список групп сохраняется в реестре в подразделе HKLMSystemCurrentControlSetControlServiceGroupOrder. Значение по умолчанию является пустым.
  • tag= — Указывает, следует ли получить код Tag >

Примеры команды SC CREATE

  • sc myserver create NewService binpath= c:windowssystem32NewServ.exe
  • sc create NewService binpath= c:windowssystem32NewServ.exe type= share start= auto depend= «+TDI Netbios»
  • Мониторинг назначенных заданий Как администратору, вам, вероятно, приходится выполнять одни и те.

«>Запуск заданий в Windows по расписанию — 07/11/2012 08:52
Как завершить процессы в командной строке — TASKKILL Команда Taskkill завершает одно или.

«>TASKKILL завершение процессов в Windows — 04/07/2010 14:24
Описание команды TASKLIST Команда TASKLIST отображает список приложений и служб с кодом процесса.

  • Описание команды SC CONTINUE Команда SC CONTINUE служит чтобы возобновить остановленную службу и.

«>SC CONTINUE возобновление службы — 04/07/2010 14:04
Описание команды SC PAUSE Команда SC PAUSE посылает службе запрос PAUSE (пауза). А чтобы.

«>SC PAUSE пауза службы — 04/07/2010 14:01
Описание команды SC STOP Команда SC STOP посылает службе операционной системы Windows запрос.

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

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

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

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

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

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

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

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

Sc config MyService DisplayName=″My Service″

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

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

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

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

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

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

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

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

Dragokas

Very kind Developer

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

Для создания и службы из командной строки можно использовать программу SC (Sc.exe). SC представляет из себя утилиту командной строки, которая реализует вызовы ко всем функциям интерфейса прикладного программирования (API) управления службами Windows. С ее помощью можно производить любые действия со службами — просматривать состояние, управлять (запускать, останавливать и т.п.), изменять параметры, а также создавать новые службы.

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

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

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

Для примера создадим службу MyService, укажем отображаемое имя My New Service, зададим тип службы и поставим ее на авто-запуск:

Затем откроем оснастку «Services» и посмотрим результат.

Изменять параметры уже созданной службы можно командой Sc config. Например, мне не понравилось отображаемое имя службы и я хочу его изменить:

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

В принципе PowerShell имеет примерно такой же функционал как и Sc.exe, разве что позволяет добавить описание. А вот для удаления служб в PS простого способа нет, придется воспользоваться вот такой конструкцией:

Dragokas

Very kind Developer

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

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc, на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.
Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду

которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

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

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

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

• На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl+C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
• Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
• Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
• И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление вводавывода приложения в указанный файл.

На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие.

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

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду

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

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

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

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

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

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

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

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

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

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

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

Примечание. Все строки ниже, за которыми следует символ #, являются комментариями и не влияют на сценарий.

CLS #Необязательно. Мне нравится использовать это для очистки терминала при тестировании.

#Убедитесь, что у вас есть папка Logs в том же каталоге, что и этот скрипт
#Журнал - это место, где будут храниться записи.
Start-Transcript -Path "$PSScriptRootLogslog-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append

#Пока цикл продолжает работать, пока не будет остановлен вручную
While ($True){
     #Создает временную метку, чтобы узнать, когда было выполнено измерение
     $timeStamp = get-date -f yyyy-MM-h:mm:ss

     #Получает средний процент загрузки в это время, затем ждет 5 секунд, чтобы сделать это снова.
     $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5

     #Изолирует только среднее значение, чтобы не было странной строки @ {Average = 13}
     $cpuLoadPercent = $cpuLoadPercent.Average

     #записывает результаты на экран или, в данном случае, в журнал
     Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent"
}

Stop-Transcript
  1. Это можно сделать либо в командной строке Windows, либо в PowerShell. Откройте его как администратор.
  2. Введите команду nssm install logCPUAvg и запустите ее. Откроется окно установщика службы NSSM.
  3. Нажмите кнопку с многоточием рядом с полем «Путь:» и перейдите к файлу powershell.exe, который обычно находится в папке C:WindowsSystem32. Выберите powershell.exe. Путь: и каталог запуска: поля будут автоматически заполнены.
  4. Введите следующее в Arguments: поле: -ExecutionPolicy Bypass -NoProfile -File "C:PathToScriptget-Script.ps1", где последняя часть является путь к PowerShell сценария и имени сценария.
  5. Выберите вкладку Details. Введите то, что вы хотите, чтобы служба отображалась, как в диспетчере служб Windows, в поле Отображаемое имя:. Затем введите, что он делает, в поле Описание:. Тип запуска: может быть установлен как автоматический, автоматический (отложенный запуск), ручной или отключенный. Для этого упражнения подходит автоматический режим.
  6. Выберите вкладку Вход в систему. Установите переключатель «Эта учетная запись:» и введите учетную запись и пароль, от имени которых будет работать служба. Вам нужно будет выбрать учетную запись, под которой будет работать служба. В идеале у вас должна быть учетная запись Windows, созданная только для запуска этой службы. Разрешения этой учетной записи должны быть ограничены только тем, что нужно делать службе. Вы можете выбрать локальную системную учетную запись , но это не рекомендуется по соображениям безопасности.

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

  1. Когда служба будет установлена, вы увидите, что служба «logCPUAvg» успешно установлена! окно. Выберите ОК, чтобы закрыть его. На этом установка завершена.
  2. Откройте диспетчер служб Windows и убедитесь, что служба существует.
  3. Запустите службу, чтобы убедиться, что она будет работать.
  4. Чтобы убедиться, что эта служба запущена, с помощью проводника перейдите туда, где предполагается сохранить журнал, и проверьте, существует ли он.

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

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

  1. В диспетчере служб Windows остановите службу. Сделайте это, выбрав службу «Журнал средней загрузки ЦП», а затем либо нажав квадратную кнопку остановки на панели инструментов, либо ссылку «Остановить службу» слева.
  2. Откройте командную строку Windows или PowerShell от имени администратора.
  3. Введите команду nssm remove logCPUAvg и выполните команду.
  4. NSSM попросит вас подтвердить. Выберите Да .
  5. Когда служба будет удалена, вы увидите, что служба «logCPUAvg» успешно удалена! Подтверждение. Выберите ОК, и все готово.

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

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

Понравилась статья? Поделить с друзьями:
  • Как прописать сканер на компьютер windows 10
  • Как просканировать документ с принтера на компьютер windows 10
  • Как просканировать ip адреса в локальной сети windows
  • Как просканировать hdd на ошибки в windows 10
  • Как прописать сетевой принтер на компьютер windows 10