50 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Installutil установка службы

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

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

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

14 ответов:

перейдите к одним из наиболее важных системных.exe в вашей папке .net (для .net 4 это C:WindowsMicrosoft.NETFrameworkv4.0.30319 например) и использовать его для установки службы, например:

если имя каталога содержит пробел, как c:program filesabc 123 , то вы должны использовать двойные кавычки вокруг пути.

это делает вещи намного проще, если вы настроили файл bat, как показано ниже,

например, чтобы установить службу, создайте ” myserviceinstaller.летучая мышь” и “Запуск от имени администратора

добавить – u к одним из наиболее важных системных команда.

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

  1. Запустите командную строку (CMD) с правами администратора.
  2. тип c:windowsmicrosoft.netframeworkv4.0.30319installutil.exe [your windows service path to exe]
  3. пресс возвращение и это все!

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

открыть с правами администратора Правой Кнопкой “Командная строка” и выберите “Запуск от имени администратора”.

Я должен добавить еще один пункт в этой теме. Для установки / удаления 64-разрядной версии сборок необходимо использовать 64-разрядную версию инструмента. Чтобы установить службу, команда должна быть:

и для удаления команды должно быть:

Если вы используете Powershell и хотите установить службу .NET, вы можете использовать Install-Service модуль. Это оболочка для инструмента InstalUtil.

Он предоставляет 3 команды

  • Install-Service-invokes InstallUtil.exe pathToExecutable команда
  • Install-ServiceIfNotInstalled-сначала он проверяет, является ли служба установлен, если не выполнить метод Install-Service
  • Uninstall-Service- он удаляет службу. ServiceName пути к исполняемому файлу может быть использован.

код к этому модулю можно посмотреть здесь

создать *.bat файл рядом с вашей службой windows exe file установки со следующим контекстом:

создать *.bat файл рядом с вашей службой windows exe file удалить со следующим контекстом:

выполнить каждый из bat file как admin для установки или удаления службы windows.

Услуги Установка:-

UnInsatall Sevice: –

  1. Запустите командную строку (CMD) с правами администратора.
  2. тип c:windowsmicrosoft.netframeworkv4.0.30319installutil.exe [ваш путь службы windows к exe]
  3. нажмите return
  1. Запустите командную строку Windows как администратор
  2. вставить этот код: cd C:WindowsMicrosoft.NETFrameworkv4.0.30319 , чтобы перейти в папку
  3. редактировать и запускать такое: installutil C:ProjectFolderbinDebugMyProject.exe

Примечание: удалить: installutil /u C:ProjectFolderbinDebugMyProject.exe

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

открыть командная строка и запуск программы от имени администратора и выполните команду ниже и нажмите enter.

синтаксис

Установить

например :наш путь Программы installutil.exe C:MyFirstServicebinDebugMyFirstService.exe

To удалить

например: наш путь InstallUtil.exe-u C:MyFirstServicebinDebugMyFirstService.exe

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

откройте Visual studio и выберите новый проект, выбрав Windows Service шаблон Windows Desktop tab. Чем скопировать следующий код в имя_службы.cs-файл.

Правой Кнопкой Мыши на имя_службы.cs файл и открыть конструктор сервиса. затем щелкните правой кнопкой мыши и выберите Add Installer . чем щелкните правой кнопкой мыши на serviceProcessInstaller1 и изменить его значение свойства Account С User до Local System .

удалить static void main метод . Чем сохранить и построить свой проект.

Примечание: перейти binDdebug папка вашей папки проекта. Чем открыть свойства вашего . Чем Гото Compatibility tab. Чем нажать на Change Settings For All Users .

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

теперь вы должны открыть CommandPromt как администратор. После открытия, установите каталог, где ваш InstallUtil.exe файл помещается. например: C:WindowsMicrosoft.NETFramework64v4.0.30319 . теперь напишите следующую команду:

Примечание: -я для установки он обслуживает и-u для Unsinstall.

после-я установил запись пути, по которому вы хотите установить свой сервис.

теперь напишите команду в CommandPromt следующим образом:

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

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

когда ваша версия сборки и ваш проект Visual studio Biuld настройки на dot net 2 или 4 установить с той же версии.

установить с installutil та же версия

если построить в dot net 4

если построить в dot net 2

Программа установки службы

Любая служба должна конфигурироваться в системном реестре. Все службы размещаются в разделе HKEY_LOCAL_MACHINESystemCurrentControlSetServices. Просматривать содержащиеся в системном реестре записи можно с помощью утилиты regedit. Здесь содержатся сведения о типе службы, ее отображаемом имени, пути к ее исполняемому файлу, конфигурации запуска и т.д.. На рисунке для примера показано, как в системном реестре выглядит конфигурация службы W3SVC:

Подобная конфигурация может обеспечиваться с помощью классов установщиков из пространства имен System.ServiceProcess.

Чтобы добавить к службе программу установки, необходимо переключиться на представление визуального конструктора в Visual Studio и выбрать в контекстном меню пункт Add Installer (Добавить установщик). В результате создается новый класс ProjectInstaller, а также экземпляры классов ServiceInstaller и ServiceProcessInstaller.

Класс Installer

Класс ProjectInstaller унаследован от System.Configuration.Install.Installer. Этот класс является базовым для всех специальных установщиков. С помощью класса Installer можно создавать процедуры установки, основанные на транзакциях. В случае неудачного завершения такой процедуры становится возможным откат до предыдущего состояния и отмена всех изменений, которые были проведены после начала процедуры.

Внутри конструктора класса ProjectInstaller вызывается метод InitializeComponent():

Классы ProcessInstaller и ServiceInstaller

Внутри кода реализации InitializeComponent() создаются экземпляры классов ServiceProcessInstaller и ServiceInstaller. Оба этих класса унаследованы от ComponentInstaller, который, в свою очередь, унаследован от класса Installer.

Читать еще:  Matplotlib python установка

Классы, унаследованные от ComponentInstaller, могут использоваться для настройки процесса установки. Не следует забывать о том, что процесс службы может предусматривать запуск более чем одной службы. Класс ServiceProcessInstaller может применяться для настройки процесса, который будет отвечать за определение значений для всех запускаемых внутри данного процесса служб, а класс ServiceInstaller — для настройки каждой из этих служб, т.е. для каждой службы должен применяться отдельный экземпляр ServiceInstaller. При наличии трех запускаемых внутри процесса служб потребуется добавить, соответственно, три экземпляра ServiceInstaller.

Здесь видно, что ServiceProcessInstaller производит установку программы, которая реализует класс ServiceBase. Класс ServiceProcessInstaller имеет свойства, предназначенные для всего процесса. Ниже приведено краткое описание этих свойств, к которым предоставляется доступ всем службам внутри процесса:

Username, Password

Указывает, от имени какой учетной записи пользователя должна запускаться служба в случае установки свойства Account в ServiceAccount.User.

Account

Позволяет указывать тип учетной записи службы.

HelpText

Представляет собой доступное только для чтения свойство, которое возвращает справочный текст относительно установки имени пользователя и пароля.

Процесс, применяемый для запуска службы, может быть определен в свойстве Account класса ServiceProcessInstaller с использованием перечисления ServiceAccount. Ниже приведено краткое описание всех значений, которые могут устанавливаться для свойства Account.

ServiceInstaller — это класс, который необходим всем службам. Для каждой службы внутри процесса он поддерживает следующие свойства: StartType, DisplayName, ServiceName и ServicesDependedOn. Краткое описание этих свойств приведено ниже:

LocalSystem

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

NetworkService

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

LocalService

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

User

Установка для свойства Account значения ServiceAccount.User означает, что пользователь может определять учетную запись, которая должна использоваться в данной службе.

StartType

Свойство StartType указывает, должна служба запускаться вручную или автоматически. Возможные значения: ServiceStartMode.Automatic, ServiceStartMode.Manual, ServiceStartMode.Disabled. В случае установки для этого свойства значения ServiceStartMode.Disabled служба запускаться не будет. Такой вариант может быть удобен для тех служб, которые не должны запускаться в системе. Например, установка данного свойства в Disabled может потребоваться, если какой-то аппаратный контроллер не доступен.

DelayedAutoStart

В случае если для свойства StartType установлено не Automatic, это свойство игнорируется. Оно указывает, должна ли служба запускаться не сразу же после загрузки системы, а немного позже. Это свойство появилось в .NET 4 и поддерживается, начиная с Windows Vista.

DisplayName

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

ServiceName

Это свойство указывает, как должно вообще выглядеть имя службы. Его значение должно совпадать со значением ServiceName внутри класса ServiceBase в программе службы. Именно с его помощью конфигурация ServiceInstaller будет ассоциироваться с требуемой программой службы.

ServicesDependentOn

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

Изменив имя службы в унаследованном от ServiceBase классе, не забудьте изменить и значение свойства ServiceName в объекте ServiceInstaller!

На стадии тестирования лучше устанавливать для свойства StartType значение Manual. Тогда при невозможности остановить службу (например, из-за присутствия в ней дефекта) перезапустить систему все равно будет получаться. В случае установки для StartType значения Automatic служба будет автоматически запускаться снова даже после перезагрузки системы. Удостоверившись, что служба действительно работает корректно, значение этого свойства можно будет легко поменять.

Класс ServiceInstallerDialog

Еще одним классом установщика в пространстве имен System.ServiceProcess.Design является ServiceInstallerDialog. Этот класс можно применять, если необходимо, чтобы во время установки службы системный администратор вводил имя пользователя и пароль учетной записи, которая должна для нее использоваться. Если установить свойство Account класса ServiceProcessInstaller в ServiceAccount.User, а свойства Username и Password — в null, то во время процесса установки на экране будет отображаться диалоговое окно Set Service Login (Установить регистрационную информацию для службы). В этом окне также есть возможность отменить процесс установки.

Утилита installutil

После добавления классов установщиков в проект с помощью утилиты installutil.ехе можно попробовать установить и удалить службу. Эта утилита позволяет производить установку любой сборки, которая имеет класс Installer. Для выполнения установки он вызывает метод Install() класса, унаследованного от Installer, а для удаления ранее установленной сборки — соответственно, метод Deinstall().

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

установка службы windows с помощью SC.exe или InstallUtil.ехе – есть разница, но какая?

SC.exe и InstallUtil установка и удаление служб windows. Но они, кажется, работают по-разному.

например InstallUtil сбой (какой-то файл или зависимость не найдена ошибка) в то время как Sc create счастливо устанавливает службу. Слишком добавьте к странности; служба не отображается, если я запускаю чистый старт в консоли. Но он появляется в GUI служб. Варианты этого происходят, когда я пытаюсь удалить.

Читать еще:  Как выключить uefi в БИОСе?

Я сам написал службу, и более ранние версии работают. Dotnet3.5.

5 ответов

да, установка службы не особенно сложна. Достаточно написать несколько разделов реестра. Вы можете посмотреть с Regedit.exe, перейдите к HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices.

Sc.exe также может писать эти ключи, используя предоставленные аргументы командной строки. Тем не менее, это неправильный способ сделать это. Смысл программы installutil.exe заключается в том, что он может активировать таможни код установки. Код, который автор службы писал. Что не так уж редко, службы, как правило, заполняют информацию конфигурации в своих регистрационных ключах для собственного использования. Вы увидите много доказательств этого, когда посмотрите с Regedit.

Я предпочитаю sc.exe над installutil.ехе миллион раз.

InstallUtil заставляет вас добавить ужасный класс ProjectInstaller (я считаю) и hardcode там имя службы и описание службы.

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

вот почему я просто не использую InstallUtil.exe вообще. Также из-за предыдущих ответов: вам нужно, чтобы он был в вашем пакете развертывания. Южная Каролина.exe уже находится в любой Windows Xp и выше (я считаю).

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

” программа установки-это утилита командной строки, которая позволяет установка и удаление ресурсов сервера путем выполнения программы установки компоненты в указанных сборках. Этот инструмент работает совместно с классами в системе.Конфигурация.Установить пространство имен.”

Так это можно установить, но он имеет много много много других преимуществ. Создание исполняемых файлов на основе Установщик Класс дает вам программный контроль всей процедуры установки / удаления. ServiceInstaller и ServiceProcessInstaller, например, используются для обслуживания установки.

утилита ” Sc “используется для управления службой, и команда “создать” просто создаст службу на основе выбранного исполняемого файла.

в вашей пример
1. Он не предназначен для установки с InstallUtil и ответ на ошибку должен быть совершенно ясным.
2. InstallUtil сбой из-за ошибки в коде установки и использования sc create вероятно, создаст неисправный сервис для вас. Проверьте в .Installlog по для сведения.

из опыта использования удаления: Южная Каролина.exe под windows 7 удаляет запись из списка немедленно, в то время как после удаления с installutil есть необходимость перезагрузки

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

к сожалению для OP,TopShelf не существовало во время его вопроса. Он работает вокруг недостатков как SC, так и InstallUtil и позволяет службе запускаться с подключенным отладчиком при запуске в Visual Studio. Кроме того, это намного проще ввести myservice install чем нужно детализировать до определенной папки для InstallUtil или ввести тонну параметров для SC.

Установка службы Windows с помощью SC.exe или InstallUtil.exe – есть разница, но что?

SC.exe и InstallUtil – устанавливать и удалять службы Windows. Но они, похоже, не работают одинаково.

Например, InstallUtil не работает (некоторая ошибка файла или зависимости не найдена), в то время как Sc создает счастливую установку службы. Слишком добавить к странности; служба не отображается, если я запускаю пуск сети в консоли. Но это проявляется в графическом интерфейсе служб. Варианты этого случаются, когда я пытаюсь удалить.

Я написал службу самостоятельно и более ранние версии. Dotnet3.5.

Да, установка службы не особенно сложна. Это просто требует написания нескольких разделов реестра. Вы можете посмотреть в Regedit.exe, перейдите в HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices.

Sc.exe также может писать эти ключи, используя предоставленные аргументы командной строки. Тем не менее, это неправильный способ сделать это. Точка InstallUtil.exe заключается в том, что она может активировать пользовательский код установки. Код, который автор службы написал. Что не так уж редко, службы, как правило, заполняют конфигурационную информацию в своих регистрационных ключах для собственного использования. Вы увидите много доказательств для этого, когда вы посмотрите с Regedit.

Я предпочитаю sc.exe через installutil.exe миллион раз.

InstallUtil заставляет вас добавить ужасный класс ProjectInstaller (я считаю), а в коде hardcode – имя службы и описание сервиса.

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

Вот почему я просто не использую InstallUtil.exe вообще. Также из-за предыдущих ответов: вам нужно, чтобы это было в вашем пакете развертывания. sc.exe уже находится в любой Windows Xp и выше (я считаю).

Основное различие заключается в том, что InstallUtil не предназначен для установки сервиса, а как средство общего инсталлятора. На страницах MSDN вы можете увидеть, что:

“Средство Installer – это утилита командной строки, которая позволяет вам установить и удалить серверные ресурсы, выполнив установку компонентов в указанных сборках. Этот инструмент работает совместно с классами в System.Configuration.Install namespace.”

Таким образом, он может установить сервис, но он имеет много других преимуществ. Создание исполняемых файлов на основе Installer Class дает вам программный контроль всей процедуры установки/удаления. ServiceInstaller и ServiceProcessInstaller, например, являются используется для установки сервиса.

‘Sc’ используется для управления сервисами, а команда “create” просто создает сервис на основе выбранного исполняемого файла.

В вашем примере
1. Он не предназначен для установки с InstallUtil, и ответ об ошибке должен быть достаточно ясным.
2. InstallUtil не удается из-за ошибки в коде установки и использования sc create, вероятно, создаст для вас неисправный сервис. Подробнее см. В .InstallLog.

Использование InstallUtil для установки службы Windows с параметрами запуска

Я использую InstallUtil для установки моей службы, и я просто не могу понять, как указать параметры запуска для него!

Вот мой подкласс установщика:

Кто-нибудь может указать, как я могу указать параметры запуска службы?

2 Ответа

Я переписал метод установки следующим образом:

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

Я знаю, что это старый пост, но подумал, что я отправлю свой ответ. Я сделал это в службе .net 4, используя событие BeforeInstall.

Мероприятия по ServiceProcessInstaller BeforeInstall :

Установленная служба выглядит следующим образом:

Он прекрасно работает, и я могу изучить параметры из основной функции сервиса.

Похожие вопросы:

У меня есть простой сервис Windows, который вызывает пакетный файл для настройки некоторых процессов при запуске. Большая часть пакетного файла запускается правильно, но InstallUtil /i не.

У меня есть 2 разных службы windows, которые должны быть установлены одним проектом установки. Вывод проекта из обоих из них идет в один и тот же каталог, который является прекрасным. Существует.

Я пытаюсь написать сценарий powershell для установки службы, которая принимает параметр для установки. В командной строке работает следующее.

Во-первых, я обычно устанавливаю свою службу windows в visual studio command prompt 2010 с помощью команды InstallUtil . Можно ли установить службу my windows непосредственно из visual studio.

У меня есть WCF сервис, который должен быть установлен на windows. Теперь я хочу установить его на север под управлением windows и установил v3.5 .net framework. Это не относится к тому, что служба.

-Привет, Я пытаюсь установить службу windows из общей папки, как это: installutil \10.1.5.120Path1Path2MyService.exe И имея эту ошибку: Exception occurred while initializing the installation.

Можно ли использовать installutil для установки службы, написанной с более новой версией платформы .NET? Например, можно ли использовать версию из .NET Framework 2.0 для установки службы, написанной.

Мне нужно использовать InstallUtil для установки службы C# windows. Мне нужно установить учетные данные для входа в службу (имя пользователя и пароль). Все это нужно делать молча. Есть ли способ.

Я пытаюсь установить службу .NET, которую я написал. Как было рекомендовано MSDN, я использую InstallUtil. Но я пропустил, как я могу установить пользователя службы по умолчанию в командной строке.

У меня есть сервис windows, установленный с помощью installutil и установленный на Autostart. Моя проблема заключается в том, что при перезагрузке некоторых серверов он пытается запуститься до.

Как установить службу без installutil.exe?

Хочу установить службу, скомпилировал exe, но при запуске пишет следующее сообщение:
Сначала требуется установить службу Windows с помощью installutil.exe, а затем ее следует запустить, используя программу ServerExplorer, средство администрирования служб Windows или команду. NET START

То есть, установку произвести можно только с помощью консоли для разработки Visual, и командной installutil.exe.
Можно как-то полноценный exe сделать чтоб ставился на любом ПК без спец средств?

Как установить службу
InstallUtil.exe делаю через него, а он при установке просит вести логин и пасс, а мне это не надо .

Как установить модуль без .exe и не находящийся в списке PyPI
Для моей статистической работы нужно установить написаный в питоне модуль pythonbiogeme. Но на.

Как отключить службу ESET Service (ekrn.exe)?
Добрый день товарищи! Столкнулся с проблемой, что служба "ekrn" от "ESET" периодически грузит.

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

Для полного списка команд наберите sc create .

Естественно, реализация программы должна поддерживать возможность работы в виде службы.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Установить службу в систему
Здраствуйте. У меня есть служба, но для начала я должен её установить. Использую данную функцию.

Не могу установить службу на компьютер
Привет! Делал службу по примеру с хабра https://habr.com/post/331952/ Скомпилил, создал батник.

Как установить “службу”
Как установить "службу" желательно создать установочный пакет

Как установить Microsoft .NET Framework 1.1 без IE без центра обновлений
Win7 x64 На компьютере полностью отсутствует .NET. Не могу установить ни один пакет, так как.

1 HDD на 3ТБ установки Windows 10 Как установить без разбития разделов без потерь ?
Здравствуйте, есть в наличии всего 1 HDD Размером на 3 ТБ уже как то умудрялся устанавливать на.

Написал win службу, которая запускает test.exe
Написал win службу на c#, которая запускает test.exe через cmd. А куда сохранять test.exe, чтобы.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: