Установить службу Windows с помощью командной строки Windows?

323

Я хочу установить службу Windows с помощью командной строки Windows (а не командной строки Visual Studio).

Как мне это сделать?

Викаш Пандей
источник

Ответы:

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"
HCB
источник
35
Если это скомпилированная служба x64, используйте «C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe».
NME
20
Я получаю странную ошибку. Нет общедоступного установщика с атрибутом RunInstallerAttribute. Да, атрибут может быть найден в сборке .exe. Удалите файл InstallState, потому что нет установщиков
Ник
1
Здравствуйте, я пробовал это решение, но оно дает исключение как "... файл не найден или одна из его зависимостей". Пожалуйста помоги.
ShaileshDev
Для всех с той же проблемой, что и все они и я: вам не нужно больше указывать весь путь. достаточно простого installutil.exe "C: \ YourProject.exe".
Cataklysim
1
@Cataklysim Вам необходимо использовать полный путь, если вы не добавили его в переменную окружения пути.
BluE
211

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

SC CREATE "MySVC" binpath= "D:\Me\Services\MySVC\MySVC.exe"
Sid
источник
27
Это единственный ответ, который ссылается на официальный способ установки / изменения / удаления службы. Более того, это не зависит от устанавливаемой .NET Framework и работает с любыми типами файлов, а не только с двоичными файлами .NET.
Алехандро
7
Да, вот почему я любил этот подход и всегда советую его, так как вся работа должна быть выполнена в исполняемый файл, который может принадлежать любой версии .net fw.
Сид
1
Стоит отметить, что эта команда доступна только для Windows Server (и некоторых старых версий Windows). Win 10 также имеет scкоманду, но это нечто иное, ее нельзя использовать для регистрации сервисов.
Капитан Дашенька
4
Обратите внимание, что пробел после "binpath =" является обязательным. @ParamvirSinghKarwal
Urk
1
Если для запуска этой команды используется powershell, обратите внимание, что 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"
Dhanuka777
источник
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/

Base33
источник
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"
Каушик AppzyTech
источник
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 команды

  • Установка-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

следующий код, установить и удалить Сервис,

Откройте командную строку и запустите программу от имени администратора, запустите указанную ниже команду и нажмите клавишу ввода.

Синтаксис

Установить

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:\вы можете использовать скрытый аргумент -i, который вы можете использовать -uдля удаления

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

Хамит ЙИЛДИРИМ
источник
1

откройте командную строку разработчика от имени администратора и перейдите к

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

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

InstallUtil "D:\backup\WindowsService\WindowsService1\WindowsService1\obj\Debug\TestService.exe"
Арвинд Чоурасия
источник
0

когда ваша сборочная версия и ваш проект Visual Studio Biuld в точке net 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 из командной строки, указав в качестве параметра исполняемый файл вашего проекта.

AMIR2580
источник
-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.

Датский сулайман
источник