Мы разрабатываем развертывание автоматизации через Ansible, которое требует установки нескольких файлов .msi.
И мы случайно столкнулись со следующим сообщением об ошибке во время развертывания:
Устанавливается другая программа. Дождитесь завершения установки, а затем повторите попытку установки этого программного обеспечения.
Наша цель — инициировать тайм-аут повтора всякий раз, когда это происходит, и предоставить сообщение журнала, в котором будет описано, что, скорее всего, вызывает эту ошибку.
Мы не хотим перезагружать сервер или принудительно завершать установку.
Я нашел несколько зацепок для изучения, чтобы определить, какой процесс вызывает это.
TLDR; Я ищу последовательный воспроизводимый способ проверки того, что на самом деле вызывает эту ошибку.
1) Процесс msiexec.exe
Обычный ответ на этот вопрос в Google — проверить диспетчер задач на наличие процесса msiexec.exe и убить его перед перезапуском установки. Это не альтернатива для данного случая.
2) Вроде есть быть ключом реестра который говорит, идет ли установка
HKEY_LOCAL_MACHINE\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\Microsoft\Windows\CurrentVersion\Installer\InProgress
Но я не смог найти никаких следов этого ключа в реестре нескольких компьютеров с Windows (мы пытались обновить его при установке и удалении .msi).
3) В графическом интерфейсе services.msc есть служба WindowsInstaller, которая не находится в состоянии покоя:
Эта услуга попала в Бег
состоянии, когда мы запустили установку MSI, но затем он никогда не выходил из этого состояния даже через несколько минут после завершения установки msi.
4) Текущие обновления Windows
Еще одна распространенная зацепка, обнаруженная там, заключается в том, что Центр обновления Windows препятствуют установке любых других .msi
Есть ли последовательный способ автоматизировать проверку этого?