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

У меня Windows InstallShield Executable (.exe) без исходных файлов. Этот установщик работает в интерактивном режиме (GUI). После установки я вижу запись в реестре и запись в services.msc. Теперь есть требование изменить его на тихую установку для автоматизации.

Я преобразовал этот InstallShield exe в msi, используя некоторые параметры извлечения.

Когда я попытался установить этот MSI в автоматическом режиме с помощью msiexec.exe, установка прошла нормально, но не добавлялись записи в реестр и записи services.msc,

Это команда, которую я использовал для входа в систему администратора через командную строку,

msiexec.exe /i app.msi /qn

Я что-то здесь упустил?

ПРИМЕЧАНИЕ. Проблема в том, что у меня нет источника для сборки InstallShield, только исполняемый файл.

Я видел дополнительные свойства, такие как ALLUSERS и INSTALLLEVEL. Мне нужно что-то еще добавить к этому?

Я пробую это на Windows Server 2012 R2.


comment
Это установка, разработанная вами или вашей компанией, или сторонняя? Знаете ли вы, из базового MSI или InstallScript MSI, и можете ли вы пояснить в своем вопросе, какую командную строку вы использовали для извлечения из setup.exe?   -  person Michael Urman    schedule 25.08.2016
comment
@MichaelUrman, Это разработано с использованием стороннего разработчика, я думаю, InstallShield. Я преобразовал этот exe в msi, запустив app.exe / a, и это создаст msi и другие вспомогательные файлы.   -  person Prabu    schedule 25.08.2016
comment
@MichaelUrman Проблема в том, что у нас сейчас нет исходного кода, только exe.   -  person Prabu    schedule 25.08.2016
comment
Когда вы устанавливаете MSI с полным пользовательским интерфейсом, все ли устанавливается должным образом? Возможно, в извлеченном EXE-файле есть дополнительные функции, которые вы теряете в MSI.   -  person Bogdan Mitrache    schedule 26.08.2016
comment
вам необходимо иметь права администратора, чтобы запускать этот msi без вывода сообщений. Потому что для внесения каких-либо изменений в реестр или службы каким-либо процессом этот процесс должен иметь права администратора.   -  person Ajit Medhekar    schedule 31.08.2016


Ответы (1)


Иногда MSI выполняет настраиваемые действия после InstallFinalize в InstallExecuteSequence. Это ошибка конструкции, которая может привести к сбою автоматической установки, поскольку она никогда не достигает этих настраиваемых действий (установка завершается на InstallFinalize). Это не похоже на интерактивный запуск, который будет выполнять настраиваемые действия после InstallFinalize перед передачей управления обратно последовательности GUI. Также возможно, что настраиваемые действия определены только в последовательности графического интерфейса, поэтому они никогда не будут запускаться во время автоматической установки - еще одна ошибка дизайна, которая не так уж редка.

Можете ли вы проверить с помощью Orca или другого инструмента, есть ли настраиваемые действия после InstallFinalize в InstallExecuteSequence? Плохая новость заключается в том, что для этой ошибки нет хорошего исправления, но вы можете попробовать запустить установку, показывая только индикатор выполнения и посмотреть, вызывает ли это выполнение настраиваемого действия:

msiexec.exe /i app.msi /qb-

Это запускает базовый пользовательский интерфейс без модальных диалоговых окон. Фактически полутихая установка. Если это не удается, попробуйте запустить / qb вместо / qb-. Идея состоит в том, чтобы увидеть, выполняет ли это отсутствующее настраиваемое действие, запустив минимальный графический интерфейс, чтобы запустить последовательность графического интерфейса.

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

person Stein Åsmul    schedule 28.08.2016