Как я могу использовать 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