четверг, 1 декабря 2016 г.

Программа зависает при установке на нуле процентов

  Запускаю msi-установщик. Он задает обычные вопросы куда ставить, какие компоненты программы включать и т.д. Потом начинается сама установка, появляется индикатор копирования. Застывает на нуле процентов и дальше ничего. Программа зависла при установке. Когда 20 минут ожидания окончились ничем пришлось включать свою фантазию.
  Обычные варианты типа отсутствие свободного места, мешает антивирус и т.д. были проверены и отброшены.
  Последним средством оказалась программа Process Monitor от Марка Руссиновича, архитектора ядра Windows. Это средство показывает куда в реестр или в  файловую систему лезут процессы.
  Я запустил ее, исключил процессы самой Windows. Запустил MSI-инсталятор и посмотрел в Process Monitor-е куда он лезет во время загадочной стоянки. Оказалось что два процесса msiexec.exe и vssvc.exe периодически показывали  "Create thread" и "End thread" (не спрашивайте что это значит). Msiexec.exe понятно что это, а vssvc.exe заинтересовал.
  Оказалось, что он отвечает за защиту системы Windows. Появилась догадка, что подсистема защиты как-то мешает установке.
  Отключалась это фича в свойствах компьютера. В левом верхнем углу окна пункт "Защита системы" (для Windows 7), который открывает окно на Скрине 1. Уточняю что скрин 1 взят с другого, исправного компьютера.
Скрин 1. Окно настройки защиты
   А на нашем компе кнопки "Настроить" и "Создать" были неактивны, вместо "Включено" было пустое пространство. Несколько минут ожидания ничего не изменили. Стало понятно, что подсистема защиты Windows повреждена и отключить ее стандартными средствами не получится.
  Значит надо пользоваться нестандартными.
  В командной строке запустить оснастку gpedit.msc. Открыть "Конфигурация компьютера" \ "Административные шаблоны" \ "Система" \ "Восстановление системы". В окне "Отключить восстановление системы" (смотри Скрин 2) поставить галочку на "Включить".
Скрин 2. Окно "Отключить восстановление системы"
  Не перепутайте. Чтобы отключить защиту системы надо установить галочку Включить  На скрине 2 показано состояние перед изменением настроек.
  Теперь установка программы прошла успешно. Проблема решена.
  Хочу уточнить, что насовсем отключать защиту системы не стоит. Эта Windows явно повреждена и нуждается в переустановке при первой же возможности. Метод в этой статье применим когда проблему надо решить быстро.
  Еще хочу уточнить, что в этой статье мы боролись не с антивирусной защитой, а с защитой системы от некорректно написанных прикладных программ.