Встановити службу Windows за допомогою командного рядка Windows?


Відповіді:


517

Перейдіть до installutil.exe у вашій папці .net (наприклад, для .net 4 це C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319) та скористайтеся нею для встановлення вашої послуги, наприклад:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe"

35
Якщо це компільована служба x64, використовуйте "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe".
nme

20
Я отримую дивну помилку. Жоден публічний інсталятор з RunInstallerAttribute. Так, атрибут можна знайти в збірці .exe. Видаліть файл InstallState, оскільки інсталяторів немає
Nick

1
Привіт, я спробував це рішення, але дав виняток, як "... файл не знайдений або одна із його залежностей". Будь ласка, допоможіть.
ShaileshDev

Для всіх, хто має таку ж проблему, як і всі вони, і я: Вам більше не потрібно прокладати весь цей шлях. достатньо простого installutil.exe "C: \ YourProject.exe".
Катаклисим

1
@Cataklysim Вам доведеться використовувати повний шлях, якщо ви не додали його до змінної середовища контуру.
BluE

211

Нічого поганого з командою SC Create. Просто потрібно знати правильні аргументи:

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"

27
Це єдина відповідь, що посилається на офіційний спосіб встановлення / зміни / видалення послуги. Більше того, це не залежить від встановленого .NET Framework і працює з будь-яким типом файлів, а не тільки .NET бінарними файлами.
Алехандро

7
Так ... саме тому я любив цей підхід і завжди радив його, оскільки всю роботу потрібно зробити в exe, який може належати до будь-якої версії .net fw.
Сід

1
Варто зазначити, що ця команда доступна лише для сервера Windows (та деяких старих версій Windows). У Win 10 також є scкоманда, але це щось інше, її не можна використовувати для реєстрації послуг.
Капітан

4
Зауважте, що пробіл після "binpath =" обов'язковий. @ParamvirSinghKarwal
Урк

1
Якщо для запуску цієї команди використовується паттерн-шкала, зауважте, що SC є псевдонімом Set-Content. Написання SC.exe це виправить.
Джеспер Рімер Андерсен

84

Якщо в імені каталогу є пробіл c:\program files\abc 123, то потрібно використовувати подвійні лапки навколо шляху.

installutil.exe "c:\program files\abc 123\myservice.exe"

Встановіть службу Windows з командного рядка

Це значно полегшує ситуацію, якщо ви налаштуєте файл bat, як:

Наприклад, щоб встановити службу, створіть "myserviceinstaller.bat" і " Запустити як адміністратор "

@echo off
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
installutil.exe "C:\Services\myservice.exe"

if ERRORLEVEL 1 goto error
exit
:error
echo There was a problem
pause

видалити службу,

Просто додайте -u в команду installutil.

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe"

16

Виконайте наступне:

  1. Запустіть командний рядок (CMD) з правами адміністратора.
  2. Тип c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. Преса returnі це все!

Важливо відкрити права адміністратора, інакше ви можете виявити помилки, які не мають сенсу. Якщо у вас є такі, спочатку перевірте, чи відкрили ви його правами адміністратора!

Щоб відкрити права адміністратора , клацніть правою кнопкою миші командний рядок та виберіть "Запустити як адміністратор".

Джерело: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/


11

Сервіс встановлення: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" 
"C:\Services\myservice.exe"

Видалити сервіс: -

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe" -u "C:\Services\myservice.Service.exe"

6

Я повинен додати ще одну точку в цій темі. Для встановлення / видалення 64-bitверсії збірок слід використовувати 64-bitверсію інструменту. Щоб встановити службу, командою повинно бути:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe"
"C:\YourFolder\YourService.exe"

а для видалення команди слід:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u
"C:\YourFolder\YourService.exe"

4

Створіть *.batфайл поруч із вашим службовим exeфайлом Windows для встановлення з наступним контекстом:

CLS
ECHO Installing My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe "%~d0%~p0\YourWindowsServiceExeName.exe"

Створіть *.batфайл поруч із вашим службовим exeфайлом Windows для видалення з наступним контекстом:

CLS
ECHO Uninstalling My Windows Service 

START %windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "%~d0%~p0\YourWindowsServiceExeName.exe"

Запустіть кожен batфайл як адміністратор, щоб встановити або видалити службу Windows.


2
  1. Запустіть командний рядок Windows як адміністратор
  2. вставити цей код: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\перейти до папки
  3. редагуйте і запустіть це також: installutil C:\ProjectFolder\bin\Debug\MyProject.exe

Примітка. Щоб видалити:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe


2

Відкрийте Visual Studio і виберіть новий проект, вибравши Windows Serviceшаблон у Windows Desktopвкладці. Тоді скопіюйте наступний код у файл service_name.cs.

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." });
        }
    }
}

Клацніть правою кнопкою миші на файл service_name.cs та відкрийте дизайнер сервісу. ніж клацніть правою кнопкою миші та виберіть Add Installer. ніж клацнути правою кнопкою миші serviceProcessInstaller1та змінити її значення властивості Accountз Userна Local System.

Видалити static void mainметод з Program.csфайлу. Тоді заощаджуйте та будуйте свій проект.

ПРИМІТКА: перехід до bin\Ddebugпапки вашого проекту. Тоді відкрийте Властивості вашого service_name.exeфайлу. Чому перейти на Compatibilityвкладку. Чим натисніть на Change Settings For All Users.

Виберіть варіант Run this program as an administrator.

Тепер вам потрібно відкрити CommandPromt як адміністратор. Після відкриття встановіть каталог, куди InstallUtil.exeрозміщується ваш файл. напр: C:\Windows\Microsoft.NET\Framework64\v4.0.30319. тепер напишіть таку команду:

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

Примітка: -i призначений для сервісу встановлення, а -u для видалення.

після -i встановіть шлях запису, куди ви хочете встановити свою послугу.

тепер напишіть команду в CommandPromt наступним чином:

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

Примітка: використовувати stopдля зупинки Сервісу.

Тепер відкрийте ViewEventLog.exe. Виберіть Журнали Windows> Програма. Там ви можете перевірити журнал своєї служби, запустивши та зупинивши послугу.


2

Якщо ви використовуєте Powershell і хочете встановити сервіс .NET, ви можете використовувати модуль Install-Service . Це обгортка для інструмента InstalUtil.

Він виставляє 3 команди

  • Install-Service - викликає  команду InstallUtil.exe pathToExecutable
  • Install-ServiceIfNotInstalled - спочатку він перевіряє, чи встановлена ​​служба, якщо не виконується метод Install-Service
  • Uninstall-Service - це видалення служби. ServiceName шлях до виконуваного файлу можна використовувати.

Код до цього модуля можна переглянути тут


1
  1. запустити командний рядок (CMD) з правами адміністратора.
  2. Введіть c: \ windows \ microsoft.net \ Framework \ v4.0.30319 \ installutil.exe [ваш шлях служби Windows до EXE]
  3. Натисніть повернення

1

наступний код, встановіть та видаліть Службу,

Відкрийте командний рядок і запустіть програму як адміністратор та запустіть команду нижче та натисніть клавішу Enter.

Синтаксис

Щоб встановити

C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe + Your copied path + \your service name + .exe

наприклад: Наш шлях InstallUtil.exe C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

Щоб видалити

 C:\windows\microsoft.net\framework\v4.0.30319>InstallUtil.exe -u + Your copied path + \your service name + .exe

наприклад: Наш шлях InstallUtil.exe -u C: \ MyFirstService \ bin \ Debug \ MyFirstService.exe

для отримання додаткової допомоги ви можете ознайомитись із наступного посилання: зразок програми


1

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

1- Запустіть командний рядок правою стороною адміністратора

2- Забезпечте режим випуску при заповненні IDE

3- Надайте тип інсталятору проекту на подання дизайну

4- Виберіть тип аутентифікації відповідно до випадку

5- Застрахуйте про залежності від програмного забезпечення: Якщо ви використовуєте сертифікат, встановіть його правильно

6- Зайдіть на консоль, напишіть це:

C:\Windows\Microsoft.NET\Framework\yourRecentVersion\installutil.exe c:\yourservice.exe

перед маршрутом exe, який -i c:\ви можете використовувати -uдля видалення, є прихований аргумент -i

7- Перегляньте свій .exe шлях, щоб здатися файлом журналу. Ви можете використовувати переглядач подій для спостереження в цій функції


1

відкрити командний рядок Developer як адміністратора та перейти до

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319

Тепер використовуйте шлях , де знаходиться ваш .exeтам

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"

0

коли ваша монтажна версія та параметр Biuld проекту Visual studio на точці 2 або 4 встановлюються з тією ж версією.

встановити службу з installutilтією ж версією

якщо побудувати в крапці 4

Тип c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe

якщо побудувати в крапці 2

Тип c:\windows\microsoft.net\framework\v2.0.11319\installutil.exe


0

1.З меню "Пуск" виберіть каталог Visual Studio, а потім виберіть командний рядок для розробників VS.

2. З'являється командний рядок розробника для Visual Studio.

3.Доступ до каталогу, де розміщений виконаний файл вашого проекту.

4.Запустіть InstallUtil.exe з командного рядка із виконуваним проектом як параметром


-1

Вам слід відкрити командний рядок, перейдіть до

C:\windows\microsoft.net\framework\v4.0.30319\InstallUtil.exe -i ".EXE file of window service"


-1

Відкрийте командний рядок як адміністратор, перейдіть до своєї папки, де ви .exeперебуваєте. Встановити Exeяк сервіс

D:\YourFolderName\YourExeName /i

Щоб видалити використання /u.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.