Как я могу использовать powershell для запуска через установщик?

Я пытаюсь установить часть программного обеспечения, которая, когда все сделано вручную, имеет параметры конфигурации, которые вы можете выбрать при прохождении процесса. Я пытаюсь найти способ автоматизировать это с помощью PowerShell, но застрял в том, как я могу установить эти параметры конфигурации. Я считаю, что мне нужно было бы запустить команду start-process в установщике.exe, но я не знаю, куда идти дальше. Могу ли я использовать параметры команды start-process для передачи желаемых конфигураций?

1 ответ

Решение

ОБНОВЛЕНИЕ: несколько ссылок внизу с информацией о том, как обрабатывать установку, настройку и извлечение файлов для setup.exe файлы.

ОБНОВЛЕНИЕ: См. Модуль PowerShell для установщика Windows на github.com (прокрутите вниз для описания, используйте вкладку выпусков для загрузки). Я не особо тестировал его, но он от Хита Стюарта - старшего инженера-программиста Microsoft ( github).


Я быстро посмотрел на этот установщик, но не нашел его легко. По сути, установщик - это либо база данных установщика Windows (MSI), либо что-то еще - обычно это файл setup.exe. База данных MSI также может быть включена в файл setup.exe.

Вы должны знать, что для установщиков устаревшего стиля обычной практикой крупномасштабного развертывания является захват устаревшей установки с помощью инструмента переупаковки приложений, а затем компиляция файла MSI для использования при установке (эффективное преобразование установщика из старого формата в современный MSI). формат). Это специальная задача, требующая хорошего понимания Windows и настроек. Обычно это делается в крупных корпорациях для очень больших дистрибутивов программного обеспечения. Если вы работаете в крупной компании, возможно, есть команда, специализирующаяся на упаковке программного обеспечения, подобная той, которую вы упомянули. Может быть, проконсультироваться с вашим руководством. Если установка MSI, эта же команда может также изменить ее для вас в соответствии с вашими спецификациями.


Что касается вашего установщика EXE. Попробуй запустить setup.exe /a из командной строки и посмотрите, есть ли возможность извлечь файлы в "точку сетевой установки" (административная установка). Затем вы имеете дело с файлом MSI, обернутым в setup.exe. Если это не сработает, вы можете попробовать setup.exe /x или же setup.exe /extract также.

Установщик Windows имеет встроенные функции, позволяющие настроить установку через свойства PUBLIC (верхний регистр), заданные в командной строке или примененные с помощью преобразования (механизм установщика Windows, применяющий существенные изменения к файлу вендора - это частичная база данных, которая получает применяется к базе данных установки от поставщика во время выполнения).

У устаревших технологий инсталляторов, не относящихся к MSI, обычно меньше надежных способов настройки параметров установки, и они, как правило, нерегулярны, когда они там есть. В частности, тихий запуск и удаление могут быть функциями, которые отсутствуют или плохо выполняются. Эти установки, как правило, все упакованы в формате EXE, и для их создания используется множество инструментов, каждый со своими особенностями и функциями.

Другими словами, все зависит от того, как реализован установщик. Дай это setup.exe /a Пойдите и обновите ваш ответ новой информацией для нас (не добавляйте слишком много комментариев - мы проверим).


Что касается использования PowerShell. До сих пор я не использовал PowerShell для развертывания, если честно. Вот основное описание того, как установить PowerShell: https://kevinmarquette.github.io/2016-10-21-powershell-installing-msi-files/

Вы также можете вызвать автоматизацию для файлов MSI из PowerShell, я не думаю, что это имеет отношение к тому, что вы просили, но вот быстрая ссылка для изменения файла преобразования: http://www.itninja.com/question/ps-how-to-edit-a-mst-file.

Обычный способ установки MSI-файлов - это встроенная в Windows командная строка msiexec.exe. Основная командная строка msiexec.exe для установки программного обеспечения:

msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"

Краткое объяснение параметров:

/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).

Что такое трансформация? Здесь объясняется: как лучше использовать файлы MSI.

У расширенного установщика есть общая страница командных строк msiexec.exe. А вот документация Microsoft msiexec.exe на MSDN.


Некоторые ссылки:

  • Возможно, посмотрите ответ Майкла Урмана здесь: Программно извлеките содержимое InstallShield setup.exe. Это только для упакованных EXE-файлов Installshield.
  • Команды Installshield setup.exe (общая ссылка с некоторыми примерами командных строк - ближе к концу документа выглядит, что командные строки не верны, но первые выглядят нормально. Более поздние в любом случае довольно неясны - просто подумал, что дам вам знать, так как я на него ссылку). Вот официальная справочная документация по Installshield.
  • Команды Wise setup.exe - Wise больше недоступен, но, если установка устарела, она может быть упакована с Wise.
  • Расширенный установщик стандартной командной строки. Для этого инструмента настройки могут быть извлечены с помощью setup.exe /x или же setup.exe /extract, Смотрите ссылку для полного списка.
  • Был также инструмент " тихий поиск переключателей ", используемый для поиска скрытых переключателей в исполняемых файлах (для развертывания), но он не прошел проверку на virustotal.com, поэтому я не буду ссылаться на него. Может быть, он использует что-то экзотическое, например, сканирует заголовок файла на битовом уровне или что-то странное, что ошибочно помечается как вредоносное ПО? В любом случае, не инструмент, который я бы использовал.
  • И наконец: http://unattended.sourceforge.net/installers.php. Эта ссылка неплохая, в ней представлены некоторые из перечисленных инструментов и несколько других - и наиболее распространенные используемые переключатели. Не проверенный мной, но выглядит хорошо.
  • Есть и другие инструменты развертывания, которые имеют свой собственный способ упаковки и доставки EXE-файлов - это могут быть джунгли. Я могу предоставить список таких инструментов с большим количеством ссылок, но, возможно, это просто сбивает с толку. Пожалуйста, сначала попробуйте то, что указано выше.
  • Вот общий ответ, который также может быть полезен: Извлечение MSI из EXE
Другие вопросы по тегам