10

У меня около 20 приложений, которые нужно запускать в определенном порядке. Я хочу написать их, чтобы я мог сделать это удаленно.

Каждое из приложений имеет Setup.exe и MSI.

Я надеялся, что у меня будет простой скрипт, который будет называть MSI с файлом ответов, но с тех пор, как я это сделал, прошли годы. Однако я не помню, как создать файл ответов.

Это хороший способ сделать это? Или был бы более простой способ?

3 ответа3

17

Поговорим о загруженном вопросе ...

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

Я всегда обманывал и делал пробный запуск установки (msiexec /i path/to-install.msi /l*v /qn) с включенным ведением журнала, затем просматривал журнал и выбирал свойства, которые я хотел установить и установить их через командную строку. Файлы ответов никогда не работали или не стоили труда пройти через процесс их создания.

Затем я нашел InstEdit и использовал его как лодку. Это позволит вам редактировать свойства MSI и сгенерировать Transform, который вы затем можете передать в качестве аргумента в вашем скрипте: msiexec /i path/to/installer.msi /t path/to/transform.mst Я рекомендую дать ему шанс Во-первых, есть бесплатная версия, которая делает практически все.

Вы также можете взглянуть здесь для всех коммутаторов msiexec имеет.

5

Msiexec - это инструмент, который вам нужен. У него есть параметр -q, позволяющий устанавливать вещи "спокойно":

/qn: не отображает пользовательский интерфейс.

/qb: отображает основной пользовательский интерфейс.

/qr: отображает сокращенный пользовательский интерфейс с модальным диалоговым окном, отображаемым в конце установки.

/qf: отображает полный пользовательский интерфейс с модальным диалоговым окном, отображаемым в конце.

/qn+: не отображает пользовательский интерфейс, за исключением модального диалогового окна, отображаемого в конце.

/qb+: отображает базовый пользовательский интерфейс с модальным диалоговым окном, отображаемым в конце.

/qb-: отображает базовый пользовательский интерфейс без модальных диалоговых окон.

Вы также можете указать именованные параметры (или "свойства") в конце командной строки; какие свойства поддерживаются, зависит от пакета. Например, эта команда:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... это то, как вы устанавливаете ActiveState Perl, инструктируя пакет MSI добавить Perl.exe в вашу PATH и связать с ним файлы .pl. (источник)

1

Большинство приложений могут быть установлены в режиме без вывода сообщений и, следовательно, по сценарию. Каждый файл Setup.exe может иметь несколько потенциальных ключей, поэтому необходимо обязательно позвонить поставщику или выполнить поиск по его веб-сайту. Иногда вы можете получить информацию, запустив установку с помощью ключа /?, /h /help. Файлы MSI также могут иметь любое количество переключателей, но в этой статье в параметрах командной строки MSI приведен список.

При создании сценария процесса вы можете запустить приложение, которое устанавливается с помощью setup.exe, а затем запускает другой файл, например MSI. Одним из примеров был MS Office XP. Когда это происходит, ваш сценарий может подумать, что файл, который вы запустили, завершен, и запустить следующую настройку, которая не удалась, и все пойдет на юг. Чтобы обойти это, попробуйте обойти установочный файл и сразу перейти к фактическому установщику (возможно, MSI) с параметрами командной строки. Если это невозможно, вам, возможно, потребуется создать какую-то паузу таймера. Раньше я использовал небольшую утилиту под названием wait.exe, которую я нашел в Интернете, но есть миллион способов сделать это. Ключ к созданию сценариев, однако, должен быть в состоянии определить, правильно ли установлено приложение, чтобы можно было начать следующую установку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .