Як автоматизувати встановлення MSI?


11

У мене є близько 20 додатків, які потрібно запустити в певному порядку. Я хочу їх скриптувати, щоб я могла це робити віддалено.

Кожне з програм має Setup.exe та MSI.

Я сподівався просто мати простий скрипт, який викликав MSI з файлом відповідей, але минуло років, як я це зробив. Однак я не пам’ятаю, як створити файл відповідей.

Це хороший спосіб зробити це? Або був би простіший спосіб?

Відповіді:


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.


+1, але, на жаль, комутатори не працюють з усіма MSI. Я не розглядав, чому це, але, безумовно, справа з деякими.
Ciaran

Залежить від того, як створено MSI. Є деякі властивості, які ви можете встановити, щоб ігнорувати певні параметри, IIRC. Зазвичай використання Instedit і побудова Transform завжди працювали, єдині помилки, з якими я стикався, зазвичай були людиною.
пільман

1
+1 для InstEdit
user66001

1
Метод журналу працював для мене. Важливо зазначити, що властивості будуть вказані якProperty(S) : PROPERTY_NAME...
Дрю Чапін

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
Зауважте, що розробник може вимкнути параметр / q у своєму інсталяторі msi.
Джоель Куехорн

2

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

Під час створення сценарію ви можете запустити додаток, який встановлюється разом із setup.exe, а потім запустить інший файл, наприклад, MSI. Один із прикладів - MS Office XP. У цьому випадку ваш сценарій може подумати, що запущений файл завершений, і почати наступну установку, яка не вдається змусити все піти на південь. Щоб обійти це, спробуйте обійти файл налаштування та перейти безпосередньо до власного інсталятора (можливо, MSI) з параметрами командного рядка. Якщо це неможливо, вам може знадобитися створити якусь паузу таймера. Раніше я використовував невелику утиліту під назвою wait.exe, яку я знайшов в Інтернеті, але є мільйон способів це зробити. Ключ до сценарію, хоча, щоб мати можливість визначити, що програма встановлена ​​правильно, щоб наступна установка могла розпочатися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.