Как установить новую службу windows

Как создать службу в 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 "Описание службы" -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 и изменить параметры на вкладке «Вход в систему».

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

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

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

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

Open Visual studio and select new project by selecting Windows Service template in Windows Desktop tab. Than copy following code into your service_name.cs file.

using System.Diagnostics;
using System.ServiceProcess;
namespace TimerService
{
    public partial class Timer_Service : ServiceBase
    {
        public Timer_Service()
        {
            InitializeComponent();
        }
        static void Main()
        {
            if (System.Diagnostics.Debugger.IsAttached)
            {
                Timer_Service service = new Timer_Service();
                service.OnStart(null);
            }
            else
            {
                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new Timer_Service()
                };
                ServiceBase.Run(ServicesToRun);
            }
        }
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service start successfully." });
        }
        protected override void OnStop()
        {            
            EventLog.WriteEvent("Timer_Service", new EventInstance(0, 0, EventLogEntryType.Information), new string[] { "Service stop successfully." });
        }
    }
}

Right-Click on service_name.cs file and open designer of service. than right-click and select Add Installer. than right-click on serviceProcessInstaller1 and change its property value of Account from User to Local System.

Remove static void main method from Program.cs file.
Than save and Build your project.

NOTE: goto bin\Ddebug folder of your project folder. Than open Properties of your service_name.exe file. Than goto Compatibility tab. Than click on Change Settings For All Users.

Select option Run this program as an administrator.

Now, You have to open CommandPromt as Administrator.
After open, set directory to where your InstallUtil.exe file is placed.
for ex: C:\Windows\Microsoft.NET\Framework64\v4.0.30319.
now write the following command:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe -i C:\TimerService\TimerService\bin\Debug\TimerService.exe

Note: -i is for install he service and -u for Unsinstall.

after -i set the write the path where you want to install your service.

now write the command in CommandPromt as follows:

C:\TimerService\TimerService\bin\Debug>net start service_name

Note: use stop for stop the Service.

Now, open ViewEventLog.exe. Select Windows Logs>Application. There you can check your Service’s log by start and stop the service.

На чтение 3 мин Просмотров 1.3к. Опубликовано

Службы Виндовс 10 представляют собой системные процессы, которые действуют в фоновом режиме. Часть из них запускается даже раньше, чем успевает полностью загрузиться ОС устройства. Такие приложения в основном созданы для того, чтобы предоставлять определенные услуги пользователю ПК или ноутбука. Например, одной из них является служба, выполняющая подключение к интернету. В нашей статье мы расскажем, как самому создать службу или удалить ее при необходимости.

Содержание

  1. Что такое службы в Windows 10?
  2. Как самому создать службу в Windows 10?
  3. Через командную строку
  4. Через Windows PowerShell
  5. Как удалить службу?

Что такое службы в Windows 10?

службы в Windows 10

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

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

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

Существует несколько методов, как запустить службы Виндовс. Рассмотрим их подробнее.

Через командную строку

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

Инструкция содержит следующие шаги:

  • Выполните запуск командной строки. Это нужно сделать с правами Администратора. Для этого воспользуйтесь поиском, наберите “Командная строка”, результат покажет нужный элемент. Кликните на него и выберите тип запуска от имени Администратора.
  • Когда откроется активное окно, пропишите в нем команду “sc create Имя_службы binPath=»C:\service-file.exe» DisplayName= «Описание_службы» type=own start=auto”.
  • Важно правильно разобраться, как заполнять поля со сведениями создаваемого элемента:
  1. binPath — путь к месту, где содержится служба;
  2. DisplayName — наименование службы;
  3. start — категория включения;
  4. type — разновидность службы (по стандарту высвечивается own, но может быть share, kernel, filesys и interact).
  • После заполнения данных, подтвердите действия на Enter. Проверить грамотность создания можно в списке активных служб. Для этого одновременно зажмите кнопки на устройстве ввода Win+R и введите “services.msc”. В некоторых случаях требуется выполнение перезагрузки ПК.

Через Windows PowerShell

создать службу через через Windows PowerShell

Данный метод предполагает аналогичную последовательность:

  1. Запустите PowerShell с правами Администратора.
  2. Затем напишите команду “New-Service-Name»Имя_Службы»-BinaryPathName’C:\путь_к_файлу параметры_запуска». Здесь заполняется, как видно из содержания, наименование и путь к службе.
  3. Есть и расширенная версия с указанием категории включения службы и ее описания, тогда команда выглядит так “New-Service-Name MyService-BinaryPathName»C:\путь_к_файлу параметры_запуска”-DisplayName»Имя_службы»-Description»Описание службы»-StarupType»Automatic».

Как удалить службу?

удаление службы

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

  1. Первым шагом откройте командную строку с административными правами.
  2. Задайте команду “sc delete Имя_службы”.
  3. Подтвердите действие, кликнув на Enter.

Альтернативным вариантом станет запуск Windows PowerShell и ввод команды “Remove-Service -Name MyService”.

  • Как установить обои на рабочий стол для windows 10 меняющиеся
  • Как установить новую видеокарту на компьютер windows 10
  • Как установить обои на экран компьютера windows 7
  • Как установить обои на рабочий стол ноутбука windows 10
  • Как установить обои на рабочий стол для windows 7 если нет персонализации