Можно ли пассивно установить .EXE, но при этом показать Powershell GUI? - PullRequest
1 голос
/ 18 января 2020

В значительной степени то, что написано в заголовке, возможно ли пассивно / беззвучно установить .EXE с помощью Powershell, но при этом установщик GUI покажет? Я бы хотел, чтобы следующий кликнул автоматически, но все равно хотел бы, чтобы GUI отображался как индикатор прогресса.

Ответы [ 2 ]

3 голосов
/ 18 января 2020

ОБНОВЛЕНИЕ : Существует модуль Powershell для Windows Установщик . Это может помочь выполнить команды, эквивалентные msiexe c .exe, проще, чем иметь дело с Причудами Powershell .


MSI? : если это MSI внутри оболочки EXE, то, как правило, будет работать нижеприведенное. Если это обычный EXE-файл, вам следует переупаковать его, когда программа Painter ответит, или по возможности выполнить его в автоматическом режиме с правильными переключателями.


Предложение : я бы предложил эту команду строка, основанная на том, что вы написали (базовый c пользовательский интерфейс с модальным окном, отображаемым при завершении и скрывающим кнопку отмены во время установки):

msiexec.exe /I "setup.msi" /qb+!

Пример диалога прогресса со скрытой кнопкой отмены:

progress dialog with hidden cancel button


нажатия клавиш : Звучит так, как будто вы хотите весь GUI wiz ARD, чтобы показать со всеми кнопками "автоматически-волшебно" нажал? Это сложно. Сумасшедшие инструменты, такие как AutoIt - те, которые нажимают клавиши windows в приложении *1218* - могут это сделать, но это примерно так же надежно, как и ваш средний карточный домик. При таких подходах к клейкой ленте всегда есть источники ошибок.

Silence! : Я полагаю, вы знаете, что вы можете подавить целое значение GUI для MSI со стандартом переключатели командной строки для msiexec.exe? Вы можете go для совершенно бесшумного GUI или точно индикатор выполнения, как вы описали, и многих других комбинаций. Вы даже можете скрыть кнопку отмены. Отличный совершенно бесшумный, чтобы полностью интерактивный. Есть 4 базовых c уровня и различные «модификаторы» (показывать диалог завершения или нет). Вот ответ по различным UILevels на практике: Удаление с панели управления отличается от удаления из .msi

Примеры : Вот некоторые дополнительные примеры командных строк:

  • Абсолютно тихий, нет GUI вообще :

    msiexec.exe /i "setup.msi" /qn
    
  • Basi c GUI без модальных диалоговых окон и скрытой кнопки отмены :

    msiexec.exe /i "setup.msi" /qb-!
    
  • Нет GUI, за исключением модального диалогового окна, отображаемого в конце :

    msiexec.exe /i "setup.msi" /qn+
    

Примечание : Есть несколько дополнительных комбинаций в зависимости от того, как вы настраиваете вещи с 4 различными уровнями GUI, модальным диалогом в конце или нет, и, наконец, скрыванием или отображением кнопки отмены.


Advanced : Помимо обычного использования msiexe c .exe, вы можете программно подавить весь GUI MSI через MSI Win32 API И в Вместо этого обрабатывайте сообщения о ходе выполнения самостоятельно.

Комплекты WiX : это подход WiX toolkit использует для доставки своих собственных, современных GUI для связок. Advanced Installer и Installshield и другие имеют схожие концепции. Интеграция с Windows Installer основана на этих вызовах API.


Ссылки :

Переупаковка:

0 голосов
/ 19 января 2020

Что вы описываете, так это разницу между полностью тихим (без интерфейса) и неинтерактивным (имеет пользовательский интерфейс, но пользователю не нужно с ним взаимодействовать). Если после MSI это лучшие практики, то @SteinAsmul описывает ваш билет.

Если это плохо написанный установщик на основе EXE, который не рассматривал этот вариант использования и не поддерживает его, тогда вам придется «переупаковать» установщик (перепроектировать / переписать) установщик в MSI, чтобы он поддерживался

...