Программа установки запускает службы windows 7 зависла. Как запустить приложение в виде службы Windows

05.03.2020 Программы и сервисы

Ошибки при установке приложений из файлов с расширением.msi - это одно из проявлений неполадок в работе службы Windows Installer (в русскоязычной версии - установщика Windows). С подобным явлением сталкиваются юзеры всех версий данной OS, за исключением самых ранних. До сих пор проблема с установщиком является одной из частых причин, по которой пользователи решаются на переустановку системы. Попробуем разобраться, как этого избежать. Причиной того, что Windows Installer не работает, может быть следующее:

  • вирусное заражение, причем удаление вируса не всегда решает проблему;
  • некорректная установка обновлений Windows;
  • сбой в работе защитного ПО, когда вместо блокировки одного подозрительного msi-файла служба установки блокируется целиком;
  • изменения в политиках безопасности на компьютере;
  • повреждение системных файлов или реестра по причинам, не связанным с вирусами (удаление компонентов установщика, неквалифицированная правка реестра, "кривой" софт, неисправность жесткого диска и т. п.).

Проверяем целостность структуры Windows Installer

Установщик Windows представлен следующими компонентами:
  • файлом C:\Windows\System32\Msiexec.exe - непосредственно самим приложением-инсталлятором;
  • файлом C:\Windows\System32\msi.dll - библиотекой Windows Installer;
  • службой Msiserver, параметры которой хранятся в разделе реестра .
Перед диагностикой важно удостоверится, что в системе присутствуют оба этих файла, что в реестре есть вышеназванный раздел и его параметры имеют нормальные значения (значения можно посмотреть в реестре аналогичной, работоспособной системы). Также откройте список служб (нажмите Windows + R и впишите в строку "Открыть" приложения "Выполнить" команду services.msc). Найдите "Установщик Windows" и убедитесь, что он запускается. В случае отсутствия файлов, скопируйте их с другой системы той же версии или с установочного диска. Если отсутствует или поврежден раздел реестра - также перенесите его с рабочей системы. Для этого на исправном компьютере запустите редактор реестра (C:\Windows\Regedt.exe) и найдите вышеназванный раздел. Разверните правым кликом контекстное меню папки msiserver и щелкните пункт "Экспортировать". Сохраните файл в формате.reg и перенесите его на проблемную машину. Щелкните дважды этот файл и подтвердите согласие на добавление данных в реестр. Перезагрузите компьютер. Если служба Msiserver по прежнему не запускается, проверьте, работает ли служба RPC (Удаленный вызов процедур), от которой она зависит. Выполнить перерегистрацию файлов установщика и перезапустить службу можно при помощи набора специальных команд, в командной строке. Для удобства можете создать командный файл: вставьте набор действий в блокнот и сохраните как с расширением.bat. Для запуска файла просто дважды нажмите по нему. Чтобы изменения начали действовать, кликните мышью по рабочему столу и нажмите F5.

Проверяем настройки безопасности и права доступа

Windows Installer может не работать и из-за того, что его блокирует защитный софт или у операционной системы нет необходимых прав. Для начала разберемся с софтом. Если у вас установлен антивирус - временно отключите его. Способы отключения у каждого продукта свои, но чаще всего это делается через контекстное меню значка антивируса в системном трее. Теперь займемся правами. Откройте контекстное меню Msiexec.exe и разверните его свойства. Посмотрите список групп и пользователей на вкладке "Безопасность". Среди них обязательно должны быть "Система" и служба "Trustedinstaller", причем последней необходимо иметь полный доступ к файлу и являться его владельцем. Система должна иметь права на "чтение" и "чтение и выполнение". Служба Trustedinstaller впервые появилась в Windows Vista, поэтому в Windows XP полный доступ необходимо предоставить системе. Всё, что написано ниже, относиться к версиям, выпущенным позже XP. Чтобы проверить, кто владелец Msiexec.exe, щелкните кнопку "Дополнительно" на этой же вкладке. В следующем окне раскройте вкладку "Владелец". Сделайте владельцем службу Trustedinstaller, если в качестве него указано что-то другое. Если в списке "Изменить владельца на" его нет, щелкните кнопку "Изменить", а следом - "Другие пользователи и группы". Впишите Trustedinstaller в поле "Введите имена...", нажмите "Проверить имена" и ОК. Вернитесь в предыдущее окно. На вкладке "Действующие разрешения" назначьте Trustedinstaller и системе необходимые права. Точно такие же настройки безопасности должны быть у библиотеки msi.dll. Теперь проверим, нет ли ограничений для пользователя "Система" на доступ к следующему:
  • системный диск (обычно это диск С);
  • временные папки (это C:\Windows\Temp и C:\Users\Текущий_пользователь\AppData\Temp);
  • папка C:\Config.Msi;
  • папка, где находится msi-файл, из которого вы пытаетесь установить программу.
На все эти объекты системе нужно предоставить полный доступ. Делается это также, как мы разобрали выше. После этих операций в большинстве случаев проблема с установщиком успешно решается. Если наши советы вам не помогли, причина сбоя кроется в чем-то другом и разбираться с ней должны уже специалисты.

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

Как восстановить систему Windows 7

Причин этой неприятности к сожалению достаточно, начиная от неправильно написанных драйверов, пагубных действий вируса, ошибок файловой системы и заканчивая нашими ошибочными действиями при работе с компьютером, бояться таких проблем не надо, нужно научиться с ними эффективно бороться.
Давайте подумаем как восстановить систему windows 7 , а так же застрахуем себя на будущее от возможных неприятностей с помощью встроенных в операционную систему средств резервного копирования и восстановления. Мы научимся восстанавливать Windows 7, без применения сторонних программ по резервному копированию даже тогда, когда не загружаются Параметры восстановления системы и кнопка F-8 окажется бесполезной.

  • Друзья, если Вам не поможет наша статья, то ознакомьтесь с другими по данной теме, к примеру: , в ней вы узнаете как восстанавливать незагружающуюся систему с помощью разных утилит командной строки, первая это Bootrec.exe с командами /FixMbr и /FixBoot или утилита bootsect /NT60 SYS, а так же Bootrec.exe с параметром /RebuildBcd , данные утилиты можно запустить из среды восстановления или с диска восстановления Windows 7. Другая статья , научит вас восстанавливать сам повреждённый или удалённый загрузчик семёрки bootmgr . Статья покажет вам, как восстановить операционку при отключенном восстановлении системы и многое другое.
  • Если Windows 7 зависает при загрузке или внезапно перезагружается, или внезапно может показать синий экран с ошибкой, то возможно все эти проблемы из-за многочисленных ошибок файловой системы. Как исправить ситуацию, даже когда операционная система не загружается из-за этих ошибок, написано в этой статье .
  • Ну и восемь статей из раздела даст вам подробное представление обо всех встроенных средствах восстановления Windows 7: точки восстановления, предыдущие версии файлов, создание образа системы и диска восстановления, ну и так далее. Итак начнём.

Windows 7 имеет в своём арсенале достаточно мощный и хороший инструмент->Среду восстановления , которое создаётся автоматически при установке Windows 7 в скрытом разделе и содержит в себе пять других инструментов решающих многочисленные неисправности и неполадки.

  • Примечание: Если научиться пользоваться правильно средствами восстановления Windows 7, а это не сложно, то можно обойтись без дополнительных и платных программ резервного копирования данных.

Запустить средство восстановления, можно нажатием кнопки F-8 на клавиатуре сразу же после запуска компьютера. После этого перед вами откроется меню Дополнительные варианты загрузки: Устранение неполадок компьютера, далее Безопасный режим, Безопасный режим с загрузкой сетевых драйверов и т.д.

Первое что сделайте, примените Восстановление запуска (Автоматическое устранение проблем, мешающих запуску Windows)

Нужное отступление: После нажатия кнопки F-8 при загрузке компьютера, у вас может не быть пункта >, а будет только Безопасный режим и так далее, возникает вопрос почему.

При установке Windows 7, раздел среды восстановления создаётся автоматически и находится в корне диска (С:) в папке Recovery . Так же можно увидеть в окне Управление дисками - отдельный, скрытый раздел винчестера, объём у него всего 100 Мбайт, он используется для хранения загрузочных файлов конфигурации загрузки (BCD) и загрузчика системы (файл bootmgr).

Увидеть его можно Компьютер-> Управление->Управление дисками. Удалять этот раздел ни в коем случае нельзя (многие его удаляют по незнанию), в противном случае у вас не будет запускаться среда восстановления, то есть пункта Устранение неполадок компьютера у вас не будет, а в более тяжёлых случаях вы просто не загрузите систему.

На нижнем скришноте можно заметить ещё один скрытый раздел, объёмом 9,02 ГБ, это скрытый раздел восстановления с заводскими настройками моего ноутбука, у вас он может быть больше или меньше. Его тоже лучше не удалять, в случае необходимости, можно всегда восстановить Windows 7 с него.

Что делать если раздела со средой восстановления у вас нет и при нажатии кнопки F-8, в меню Дополнительные варианты загрузки, не появляется пункт Устранение неполадок компьютера? Как тогда восстановить систему Windows 7 ?

Спасти здесь может установочный диск с операционной системой Windows 7. Запустить средство восстановления, можно загрузившись с оригинального установочного диска Windows 7, выбрав в самом начале пункт Восстановление системы . Если установочного диска с у вас нет, тогда можно использовать (изготовить его можно в любой работающей Windows 7) за пять минут, затем вы так же можете загрузиться с него и проделать то же самое.

Итак в Параметры восстановления системы мы всё-таки попали, или с помощью кнопки F-8 и пункта Устранения неполадок, или установочного диска Windows 7 или Диска восстановления Windows 7.

В меню Выбора Средства восстановления системы, выбираем первое:
Восстановление запуска ->произойдёт анализ неисправностей мешающих нормальной загрузке Windows 7 и дальнейшее их исправление для нормальной загрузки и функционирования операционной системы. В процессе нас могут предупредить, что обнаружены проблемы в параметрах загрузки, нажимаем Исправить и перезапустить.


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



->вот этим инструментом пользуюсь я лично, при умелом использовании им можно заменить платные программы по резервному копированию данных, если интересно, читаем дальше.

Чем он хорош? Он поможет, когда у вас нет оригинального установочного диска с Windows 7 и вы удалили скрытый раздел с заводскими параметрами вашего ноутбука, но это ещё не всё.
Иногда бывают ситуации, когда в силу разных причин или из за действий вируса, вы совсем не сможете загрузить операционку или многие спрашивают Как восстановить систему Windows 7, если даже меню с Дополнительными вариантами загрузки так же окажется недоступным. Переустанавливать операционную систему заново?
Поэтому, сразу после установки Windows 7 на ваш ноутбук или компьютер, создаём при помощи данной функции->Восстановление образа системы , архивный образ нашей Windows 7 на жёстком диске, бережём её. Обязательно нужно создать Диск восстановления Windows 7 (читайте ниже), он поможет воспользоваться Образом системы, если меню Дополнительные варианты загрузки не будет загружаться.
Идём в Пуск ->Панель управления ->Архивирование данных компьютера.

Выбираем Создание образа системы

далее выбираем Локальный диск , на котором будем хранить архив системы. В моём случае Локальный диск (Е:), если у вас в системном блоке несколько жёстких дисков, то конечно бэкап лучше расположить на том винчестере, где не установлена операционная система.

Примечание: Можно заметить что у меня установлено две операционных системы, на ноутбуке, поэтому программа архивации выбрала два Локальных диска.

Нажимаем Архивировать и начнётся процесс создания архива с нашей Windows 7.
Создали, выглядеть он будет вот так.

Теперь, развернуть архив с Windows 7, на ваш компьютер в случае необходимости, вы сможете за 20-30 минут. Лучше будет, если архив с системой вы скопируете дополнительно на переносной жёсткий диск, этим вы обезопасите себя вдвойне.

Давайте представим, что мы не можем запустить Windows 7 и развернём созданный нами бэкап, проделаем это вместе.
Запускаем Средство восстановления Windows 7 , нажатием кнопки F-8 на клавиатуре сразу же после запуска компьютера. Открывается меню Дополнительные варианты загрузки, выбираем Устранение неполадок компьютера.

Восстановление образа системы

Использовать последний доступный образ системы


Конечно все наши данные на Локальном диске, куда сейчас восстанавливается операционная система, удалятся, поэтому можно предварительно загрузиться с любого Live CD и скопировать то, что вам нужно.
Как ещё можно восстановить систему Windows 7? Конечно с помощью Диска восстановления Windows 7. Создадим Диск восстановления , который можно использовать для загрузки компьютера, на нём будут находиться средства восстановления, с помощью которых можно восстановить неисправности загрузки Windows 7, а так же восстановить операционную систему из архивной копии, которую мы создали заранее.

Важно: Для диска восстановления важна битность системы, вы можете использовать 32-битный диск восстановления для любой 32-битной Windows 7, а 64-битный диск восстановления для любой 64-битной Windows 7.

Опять идём Архивирование данных компьютера


Создать диск восстановления системы , вставляем в дисковод DVD-диск, нажимаем


Создать диск

Когда загрузочный Диск восстановления Windows 7 будет готов, уберите его в надёжное место.

Что бы восстановить Windows 7 с Диска восстановления, не нужно в принципе никакой работающей операционной системы вообще. Вам нужно будет только сменить в BIOS вашего компьютера приоритет загрузки на дисковод, вставить в него диск восстановления и восстановить с помощью архива вашу Windows 7. Многие здесь могут провести аналогию с программами резервного копирования данных и это правильно, работают они по такому же принципу, только вот функционал у них конечно поудобнее.

  • Если не знаете как сменить приоритет загрузки в BIOS, читайте наши статьи и

Восстанавливаем Windows 7 с Диска восстановления. Показываю как это сделать. Допустим у нас неприятности, мы не можем запустить Windows 7, при нажатии F-8 на клавиатуре сразу же после запуска компьютера ничего не происходит. В меню с Дополнительными вариантами загрузки мы попасть не можем и выдаётся сообщение об ошибке. В таком случае, архив системы на жёстком диске нам не доступен. Именно такая неприятность произошла с нашим читателем Ильёй, который и написал нам письмо с просьбой помочь.

При таком раскладе многие переустанавливают Windows 7 с нуля, но не мы с вами, ведь у нас есть Диск восстановления системы .
Вставляем его в дисковод и перезагружаемся, выставляем в BIOS загрузку с дисковода, как я и говорил диск загрузочный, запускается программа Параметры восстановления системы.
Нажимаем Enter пока не пропало предложение загрузиться с диска.

Служба Установщика Windows - один из значимых элементов операционной системы, который нужен для установки программного обеспечения. Эта служба применяет все программы, разработанные для Windows, стало быть, если при установке какой - то программы, Windows Installer вне доступа или просто не отвечает, то установка не совершится.

В большинстве ситуаций, на экране компьютера появляются такие надписи:

Чтобы решить задачу доступа к службе Установщика Windows 7, 8 или 10, есть несколько рабочих способов.

Недоступна служба Установщика Windows 7

Если нет доступа к службе установщика, то необязательно сразу же заниматься переустановкой системы Windows, а лучше - совершить некоторые действия по восстановлению ее рабочих функций. Для начала, нужно выяснить произошел ли запуск данной службы и есть ли она на самом деле.

Для этого предпринимаем следующие действия:

  • нужно открыть список Windows 7 кликом по клавишам Win + R , после чего ввести команду services.msc в окошке «Выполнить»;
  • дальше в списке требуется найти Установщик Windows и 2 раза щелкнуть по нему;

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

  • конечный этап - включение автоматического запуска службы Установщика Windows (в 7й Windows возможна перемена типа запуска на «Автоматически»), перезагрузка и повторная установка программы.

Если первый способ исправления ошибки 1719 не принес никакого результата, то следует попробовать службу Windows Installer зарегистрировать в системе по - новому, произвести запуск от имени Администратора командной строки.

Для этого потребуется отыскать в стандартных программах командную строку, после чего по ней кликнуть правой стороной компьютерной мышки и выбрать « Запуск от имени Администратора».

Для того, чтобы перерегистрировать службу Установщика Windows в 32 -битной версии, требуется совершить ввод двух команд:

  • первая - msiexec /unregister ;
  • вторая - msiexec /register .

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

Для устранения ошибки в 64 – битной версии нужно ввести последовательно такие команды:

1.%windir%\system32\msiexec.exe /unregister;

2.%windir%\system32\msiexec.exe /regserver ;

3.%windir%\syswow64\msiexec.exe /unregister ;

4.%windir%\syswow64\msiexec.exe /regserver .

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

Недоступна служба Установщика Windows 10

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

Это происходит таким образом:

  • нужно нажать на клавишу «Пуск» и открыть раздел «Выполнить»;
  • ввод команды regedit ;
  • в открывшемся окошке редактора требуется перейти по ветке - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msiserver ;
  • проверка соответствия пункта ImagePath со значением - %systemroot%\system32\msiexec.exe /V
  • если показатели имеют отличие, то их нужно уравновесить посредством ввода требуемых параметров в окно данного пункта, открывшееся после нажатия (2 раза) левой стороной компьютерной мыши;
  • запуск службы services.msc .

При 64 – битной версии системы нужно брать во внимание параметр WOW64, чей параметр равняется нулевому значению. При этом, в свойствах обязательно должна быть использована шестнадцатеричная система исчисления.

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

Если после всех используемых способов, так и нет доступа к службе Установщика Windows Installer, то можно попробовать радикальный метод по изменению параметров реестра: создание реестрового файла посредством программы Блокнот с последующим запуском файла и обновлением пункта реестра:

  • после нажатия клавиши «Пуск» нужно ввести Блокнот в окошке «Поиск»;
  • открытие файла Notepad.exe в пункте «Программы»;
  • в окно Блокнота нужно вставить скопированный на официальном сайте Майкрософт текст по обновлению реестра;
  • нужно выбрать «Сохранить как» в меню «Файл» и ввести файловое название Msirepair.reg ;
  • в окне «Тип файла» необходимо обозначить Все файлы (*.*);
  • в поле «Сохранить» нужно отметить Рабочий стол, а потом непосредственно само действие « Сохранить»;
  • для закрытия Блокнота нужно нажать команду Выход в меню «Файл»;
  • затем на рабочем столе требуется правой клавишей мыши раскрыть файл Msirepair.reg и выбрать раздел «Запуск от имени Администратора». После ввода требуемого пароля нужно нажать «Продолжить»;
  • после предложения установки разделов реестра нужно кликнуть по пункту «Да»;
  • переустановка требуемой программы.

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

Удаление устаревшей версии

В некоторых случаях, запустить службу Установщика Windows нельзя из-за присутствия устаревшей версии. Ее нужно удалить. Это делается посредством перехода по дорожке «Пуск» - «Панель управления» - «Программы». В последнем пункте требуется найти «Удалить / Изменить программу» и воспользоваться ею для необходимого ярлыка. В результате, как обычно, нужно сделать перезагрузку и повторную установку системы.

Подавляющему количеству пользователей, работающих на домашних ПК всех типов, иногда требуется установить новую программу от корпорации Microsoft. Обычно всего пара щелчков мышкой - и готово, можно пользоваться. Но, как и любая в достаточной мере сложная система, ОС Windows может дать сбой. Как правило, в проблеме виноват сервис - "Установщик Windows", занимающийся распаковкой программ из инсталляционных пакетов и регистрацией значений для работы в реестре. Все файлы, упакованные с помощью протоколов этого инсталлятора, поставляются с расширением msi. Каждый пакет выполнен по технологии OLE (универсальное решение, применяемое для программных продуктов Microsoft) и представляет собой четко структурированную микробазу данных из соответствующих друг другу таблиц с данными, необходимыми для установки. Кроме того, это еще и набор библиотек, скриптов и прочих файлов, запакованных cab-архиватором. Для инсталляционных пакетов от Microsoft для ОС Windows начиная с 2000 характерно использование именно этой службы, которая заменила собой ACME Setup, стандартный установщик предыдущих версий системы Windows. Основные отличия от инсталлятора архаичных версий и 9x) - возвращение к предыдущему состоянию системы в любой момент, а также возможность Следует отметить, что существует ряд широко используемых альтернативных инсталляторов - Inno Setup, Nullsoft Installation System, Minstaller, Spinstall, Smart Install Maker, Rinstall Wizard и так далее, но по понятным причинам установщик Windows (Windows Installer) занимает лидирующие позиции.

В этой статье мы расскажем, как устранить возможные неполадки с Windows Installer, выполняя комплекс восстановительных процедур, который позволит не переустанавливать ОС заново, что предпочитает делать большинство пользователей. В худшем случае надо будет проверить и перерегистрировать большое количество библиотек, проверить несколько ключей реестра или реинсталлировать программу. Но вполне возможно, все обойдется лишь запуском автоматизированной восстановительной утилиты, которая сделает все за вас. Мы постарались собрать максимально полную информацию по этому вопросу, что позволит вам сэкономить время.

Итак, типичные ошибки при запуске инсталляционных пакетов под управлением Windows Installer - "Не удалось запустить службу установщик Windows", "Нет доступа к службе установщика Windows", "Не удалось запустить службу установщика Windows на локальном компьютере". "Ошибка 5: Пробуем запустить автоматизированный режим исправления проблемы через приложение Microsoft FixIt, скачав соответствующий патч с официального сайта корпорации. Ссылку на патч можно получить в статье 2438651 (для более старых, чем Windows 7, систем будет установлена служба автоматической диагностики, для пользователей XP перед установкой надо обновиться до SP3).

Если по каким-то причинам патч не помог и выскакивает та же ошибка, пробуем справиться с проблемой другим способом. Запустите (Win + R > cmd.exe) в режиме администратора системы. Наберите sfc /scannow и дождитесь, пока система восстановит поврежденные библиотеки. Перерегистрируйте службу командами msiexec /unregister и msiexec /regserver. После этого регистрируем библиотеку Windows Installer, используя команду regsvr32 msi.dll. Затем нужно попробовать запустить инсталляционный файл вновь. Скорее всего, все заработает. Если же нет, нужно перезагрузить систему в набрав там команду msiexec /regserver. Снова пробуем. Если же не помогло и это, то пора переустанавливать саму службу "Установщик Windows". Проще всего осуществить это с помощью утилиты Windows Installer CleanUp Utility. Скачать ее можно с официального сайта поддержки Microsoft, заодно "захватите" с официального сайта установщик Windows 45, который сам является актуальнейшей версией для практически всей современной линейки ОС Windows. Скорее всего, эта версия инсталлятора современней той, которая была установлена на вашей машине. Если только вы не использовали установщик Windows 7 на лицензионной копии. После всех трудов запустите инсталляционный файл программы. Если вы все сделали правильно, то все пройдет успешно.

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

Можно ли запустить клиентское приложение в качестве службы? В одной из я описывал способы создания службы Windows штатными средствами ОС. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть, и поможет нам в этом программа с оригинальным названием Non-Sucking Service Manager .

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc , на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.

Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду nssm install notepad , которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

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

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

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

На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl+C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление ввода\вывода приложения в указанный файл.

На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие.

Также можно не пользоваться графической оболочкой и сразу создать службу в консоли такой командой:

nssm install notepad ″C:\Windows\system32\notepad.exe″

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

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

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду nssm remove notepad confirm , можно обойтись и без подтверждения.

Запуск службы в интерактивном режиме

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

Для того, чтобы запустить службу в интерактивном режиме, надо в оснастке Службы открыть ее свойства и на вкладке «Вход в систему» отметить чекбокс «Разрешить взаимодействие с рабочим столом».

А дальше начинаются чудеса 🙂 Cлужба, запущенная в интерактивном режиме, открывается в изолированном сеансе (session 0). Попасть в этот сеанс можно только при помощи Службы обнаружения интерактивных служб (ui0detect), которая отслеживает запуск интерактивных служб на компьютере и выдает оповещение. В Windows 7\Server 2008 эта служба активна по умолчанию, а в Windows 8\Server 2012 она отключена и не отображается в графической оснастке Службы (по крайней мере я ее там не нашел). Более того, если вы все же найдете эту таинственную службу и попробуете ее запустить, то получите сообщение об ошибке.

А дело в том, что для ее запуска необходимо разрешить запуск интерактивных служб на компьютере. Поэтому открываем редактор реестра, находим в разделе HKLM\System\CurrentControlSet\Control\Windows параметр типа DWORD с именем NoInteractiveServices и ставим его значение в 0 .

После чего открываем консоль PowerShell и стартуем службу обнаружения командой:

Start-Service -Name ui0detect

Убедившись что служба обнаружения запущена, рестартуем службу notepad, и получаем вот такое окошко. Выбираем пункт «Посмотреть сообщение»

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

Такое вот интересное решение для запуска приложений в виде служб Windows. Не самое красивое, но вполне соответствующее своему названию 🙂