По умолчанию winget устанавливает программы автоматически. Сценарий определяется манифестом из репозитория winget. В нем можно указать любые ключи, которые поддерживает инсталлятор. Но поскольку манифест публикуется для широких масс, задействуется лишь тихая установка, а другие параметры не меняются.
Вы можете скорректировать установку под свои цели. Хотя возможности все равно ограничены теми, которые разработчик заложил в инсталлятор.
[+] Сегодня в программе
Интерактивная установка
С ключом -i установка переходит в интерактивный режим, т.е. вы задаете все доступные параметры вручную. Возьмем для примера 7-zip.
winget install --id 7zip.7zip -i
В результате появится окно инсталлятора с выбором папки для установки.

Других возможностей Игорь Павлов в установщик не включил.
Переопределение ключей командной строки
Для этого в winget предусмотрено два похожих параметра:
--overrideиспользует ваши ключи установки вместо указанных в манифесте.--customприменяет ваши ключи установки в дополнение к указанным в манифесте. Этот параметр появился в версии 1.5, которая была в превью на момент написания статьи.
В обоих случаях ваши ключи передаются строкой, заключенной в кавычки.
--override "/S /D=D:\Software\AppName"
По большому счету разница в том, что для --override необходимо прописывать ключ автоматической или тихой установки (в примере выше — это /S). Для --custom изначально форсируется автоустановка ключом из манифеста. В случае совпадения или наложения ключей инсталлятор сам разбирается с этим. Как правило, последний ключ выигрывает.
Допустим, у пакета MSI в манифесте прописан ключ /passive для незаметной установки. Вы переопределяете поведение для отображения базового интерфейса без кнопки «Cancel».
--custom "/qb-!"
В результате установщик получает строку /passive /qb-!. Стоящий последним ключ преобладает, и вы видите базовый интерфейс.
Все остальное зависит от типа инсталлятора и возможностей, которые предусмотрел создатель пакета.
Как определить тип инсталлятора
Смотрите командой show.
winget show 7zip.7zip
В выводе будут примерно такие строки
Installer: Installer Type: nullsoft Installer Url: https://www.7-zip.org/a/7z2201-x64.exe
Как выяснить доступные ключи
Всегда есть параметр тихой установки. Подборка 2005 года (!) не потеряла актуальности, т.к. эти установщики до сих пор в ходу. Остальное зависит от конкретного пакета и его автора.
В общем случае алгоритм вычисления ключей такой:
- Запустите интерактивную установку и пройдите все экраны с опциями. Станет понятно, что можно настроить.
- Для каждой опции ищите ключи в документации приложения или установщика, либо в поисковиках. Запросы в помощь: silent install ProgramName, unattended install ProgramName.
Давайте рассмотрим пару примеров.
Пример: 7-zip в пакете NullSoft
Стандартные ключи NullSoft легко нагугливаются, но возможности все равно ограничены конкретным пакетом. В данном случае получится изменить лишь папку установки — это ключ /D.
winget install --id 7zip.7zip --override "/S /D=D:\Software\7-zip"
Пример: PowerShell Core в пакете MSI
По MSI я рекомендую еще один вечнозеленый материал из руководства АУ — Использование ключей и свойств установщика Windows. 15 лет спустя даже все ссылки на документацию работают!
В гайде по установке PowerShell Core любезно описаны свойства для обновления посредством Microsoft Update и еще пять свойств с этого экрана.

Но иногда документация не раскрывает всех свойств. В этом случае их можно извлечь с помощью полезного трюка. У MSI есть ключ /lp!, который записывает все опции установщика в журнал. Я показывал этот прием в канале Telegram.
- В PowerShell перейдите в папку с пакетом и выполните команду (с поправкой на текущую версию приложения):
.\PowerShell-7.3.2-win-x64.msi /lp! "$env:temp\prop.txt"
- На каждом экране установщика отметьте все доступные опции, иначе свойства могут не попасть в лог.
- Пройдите все экраны до последнего и отмените установку полностью — закройте инсталлятор.
- Откройте файл
prop.txtиз временной папки.
Свойства записываются заглавными буквами, поэтому сразу бросаются в глаза. На скриншоте в логе отражены семь свойств из GUI — пять с показанного экрана и два свойства Microsoft Update со следующего.

Желтым выделены свойства, которые не заданы по умолчанию. В логе их значения 0, но при установке следует указывать 1.
Например, стандартная установка плюс добавление двух пунктов в контекстное меню выглядит так:
winget install Microsoft.PowerShell --source winget --override "/qn ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL= 1"
Здесь сначала задается ключ тихой установки /qn, а затем два свойства.
Заключение
Установка посредством winget не слишком отличается от обычной установки из консоли. Вы точно так же можете передать инсталлятору все ключи, использование которых предусмотрел разработчик приложения.