Створення служби в windows

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

Для створення і служби з командного рядка можна скористатися програмою 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» і подивимося результат.

Створення служби в windows

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

Sc config MyService DisplayName = "My Service"

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

Sc delete MyService

Створення служби в windows

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

Створення служби в windows

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

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

Тому особисто я вважаю за краще використовувати Sc.exe.

Схожі статті