У меня есть exe-файл, созданный с помощью InstallShield 2018 Express Edition. Мне нужно создать скрипт PowerShell, который будет молча устанавливать этот exe-файл на разные компьютеры.
Я перепробовал все варианты, которые я нашел в Google, и ничего не работает. Я попытался сгенерировать файл ответов setup.iss с помощью команд setup.exe /r
и setup.exe /r /f1'-path'
, но это не сработало. Я не смог получить этот файл.
Команды, которые я пробовал:
setup.exe /s /v /qn
setup.exe /s /v "/qn"
setup.exe /s /v /qb
setup.exe /q /norestart
setup.exe /qb /norestart
setup.exe /passive
Я конвертировал exe в msi и пробовал с msiexec
, но это тоже не сработало.
Проблема со всеми этими командами в том, что пользовательский интерфейс продолжает появляться, и мне нужно нажать на все кнопки, чтобы завершить установку.
Я также обнаружил, что автоматическая установка может быть отключена для конкретного exe-файла. Используемый мной exe-файл создается с проектом InstallShield в Visual Studio 2017, поэтому я решил создать новую сборку с включенным Silent Install Switch, но не смог найти эту опцию.
Способ, которым я частично добился успеха, таков:с
setup.exe /a
, после чего пользовательский интерфейс запрашивается, я нажимаю все кнопки и генерируется некоторый файл setup.msi размером 1.6 МБ (setup.exe составляет 270 МБ). Приложение не устанавливается.
Запуск этой setup.msi из 1.6 Мб с командой msiexec
успешно устанавливает приложение без вывода сообщений на компьютер, где генерируется эта msi. Проблема в том, что setup.msi нельзя использовать на других компьютерах.