Портал о бытовой технике

Установщик Windows: устранение неполадок. Как запустить приложение в виде службы Windows Зависает на программа установки запускает службы

Как запустить приложение в виде службы 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. Не самое красивое, но вполне соответствующее своему названию 🙂

1. Нажмите кнопку Пуск | Start .
2. В поле поиска введите services.msc .
3. В списке результатов кликните правым кликом на services.msc .
4. В открывшемся меню выберите Запуск от имени администратора | Run as administrator .

5. В открывшемся окне прокрутите вниз список служб и найдите Установщик Windows | Windows Installer . Дважды щелкните на нем.
6. На вкладке Общие | General в группе Состояние | Service status проверьте, запущена ли служба.
7. Если служба не запущена, нажмите кнопку Запустить | Start .

8. Убедитесь, что теперь служба запущена.
9. Нажмите кнопку OK .

Шаг 2: Перерегистрация Установщика Windows.

1. Нажмите кнопку Пуск | Start .
2. В поле поиска введите MSIEXEC /UNREGISTER и нажмите Enter .

3. Снова нажмите Пуск | Start .
4. В поле поиска введите MSIEXEC /REGSERVER и нажмите Enter .

Дисклеймер. Следующие шаги связаны с редактированием реестра. Будьте очень внимательны, поскольку некорректное конфигурирование параметров реестра может привести к серьезным проблемам в системе вплоть до выхода ее из строя. Изменение этих параметров вы выполняете на свой страх и риск.

Шаг 3: Очистка подвешенных процессов установки.

1. Нажмите кнопку Пуск | Start .
2. В поле поиска введите команду regedit и нажмите Enter .

3. Перейдите в раздел реестра: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress . Если раздел InProgress отсутствует, переходите к пункту 5.
4. Удалите все параметры в этом разделе. Если раздел не содержит параметров, переходите к следующему пункту.

5. Перейдите в раздел реестра: HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations . Если раздел PendingFileRenameOperations отсутствует, переходите к следующему шагу.
6. Удалите все параметры в этом разделе. Если раздел не содержит параметров, переходите к следующему шагу.

Шаг 4: Проверка прав доступа.

1. Перейдите в раздел реестра: HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer .
2. Кликните правой кнопкой мыши на заголовке раздела и в открывшемся меню выберите пункт Разрешения | Permissions .
3. В открывшемся диалоговом окне в категории Группы или пользователи | Group or user names кликните на пункт SYSTEM .
4. В категории Разрешения для группы | Permissions for убедитесь, что система имеет полный контроль над разделом.

После выполнения всех шагов перезагрузите компьютер.

Подавляющему количеству пользователей, работающих на домашних ПК всех типов, иногда требуется установить новую программу от корпорации 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 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 пока не пропало предложение загрузиться с диска.

Загрузка...