Использование программы winget для установки приложений и управления ими

Программа командной строки winget позволяет пользователям обнаруживать, устанавливать, обновлять, удалять и настраивать приложения на компьютерах с Windows 10 и Windows 11. Она является клиентским интерфейсом для службы Диспетчера пакетов Windows.

Установка winget

Диспетчер пакетов Windows программа командной строки winget доступна в Windows 11 и современных версиях Windows 10 в составе установщика приложений.

Установщик приложений можно получить в Microsoft Store. Если он уже установлен, убедитесь, что он обновлен до последней версии.

Примечание

Программа командной строки winget сейчас поддерживается только в Windows 10 1709 (сборка 16299) или более поздней версии. Средство winget будет недоступно, пока вы не войдете в Windows в качестве пользователя в первый раз, активируя Microsoft Store для регистрации Диспетчер пакетов Windows в рамках асинхронного процесса. Если вы недавно вошли в систему от имени пользователя и обнаружили, что winget еще недоступен, откройте PowerShell и введите следующую команду, чтобы запросить регистрацию winget: Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.

Установка предварительной версии winget [только для разработчиков]

WinGet входит в установщик приложений Windows. Чтобы опробовать новейшие Диспетчер пакетов Windows функции, можно установить предварительную сборку одним из следующих способов:

Установка winget на Песочница Windows

Песочница Windows предоставляет упрощенную среду рабочего стола для безопасного запуска приложений в изоляции. Программное обеспечение, установленное в среде Песочница Windows, остается изолированным и выполняется отдельно от хост-компьютера. Песочница Windows не включает winget и приложение Microsoft Store, поэтому вам потребуется скачать последний пакет winget со страницы выпусков winget на сайте GitHub.

Чтобы установить стабильный выпуск winget на Песочница Windows, выполните следующие действия в командной строке Windows PowerShell:

$progressPreference = 'silentlyContinue'
$latestWingetMsixBundleUri = $(Invoke-RestMethod https://api.github.com/repos/microsoft/winget-cli/releases/latest).assets.browser_download_url | Where-Object {$_.EndsWith(".msixbundle")}
$latestWingetMsixBundle = $latestWingetMsixBundleUri.Split("/")[-1]
Write-Information "Downloading winget to artifacts directory..."
Invoke-WebRequest -Uri $latestWingetMsixBundleUri -OutFile "./$latestWingetMsixBundle"
Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage $latestWingetMsixBundle

Если вам требуется предварительная версия или другая версия диспетчера пакетов, перейдите на страницу https://github.com/microsoft/winget-cli/releases. Скопируйте URL-адрес предпочтительной версии и обновите указанный выше универсальный код ресурса (URI).

Дополнительные сведения о Песочница Windows, в том числе о том, как установить песочницу и чего ожидать от ее использования, см. в документации по Песочница Windows.

Рекомендации для администраторов

Поведение установщика может отличаться в зависимости от того, выполняется ли winget с правами администратора.

  • При запуске winget без прав администратора для установки некоторых приложения может потребоваться повышение уровня прав. При запуске установщика Windows предложит вам повысить уровень права. Если вы откажетесь, приложение не будет установлено.

  • При запуске winget в командной строке администратора запросы на повышение прав до необходимого приложению уровня не отображаются. Будьте осторожны при запуске командной строки от имени администратора и устанавливайте только приложения, которым доверяете.

Использование winget

После установки установщика приложений можно запустить winget, введя winget в командной строке.

Одним из наиболее распространенных сценариев использования является поиск и установка избранного средства.

  1. Для поиска средства введите winget search <appname>.

  2. Убедившись в доступности нужного средства, его можно установить, введя winget install <appname>. Программа winget запустит установщик и установит приложение на компьютере. Командная строка winget

  3. Помимо установки и поиска winget предоставляет ряд других команд, позволяющих отображать сведения о приложениях, менять источники и проверять пакеты. Для вывода полного списка команд введите winget --help. Справка по winget

Некоторые пользователи сообщили о проблемах, когда клиент не был указан в пути.

Команды

Текущая предварительная версия программы winget поддерживает следующие команды.

Команда Описание
сведения Отображает метаданные о системе (номера версий, архитектуру, расположение журнала и т. д.). Полезно для устранения неполадок.
install Устанавливает указанное приложение.
show. Отображает сведения об указанном приложении.
source Добавляет, удаляет и обновляет репозитории Диспетчера пакетов Windows, доступ к которым осуществляется с помощью программы winget.
search Ищет приложение.
list Отображает установленные пакеты.
upgrade Обновляет указанный пакет.
uninstall Удаляет указанный пакет.
hash Создает хэш SHA256 для установщика.
validate Проверяет файл манифеста для отправки в репозиторий Диспетчера пакетов Windows.
параметры Открывает параметры.
features Отображает состояние экспериментальных функций.
export Экспортирует список установленных пакетов.
import Устанавливает все пакеты в файле.

Варианты

Средство winget поддерживает следующие параметры:

Параметр Описание
-v, --version Возвращает текущую версию winget.
--info Предоставляет подробные сведения о winget, в том числе ссылки на лицензию, заявление о конфиденциальности и настроенные политики групп.
-?, --help Отображает дополнительную справку для winget.

Поддерживаемые форматы установщика

Текущая предварительная версия средства winget поддерживает следующие типы установщиков:

  • EXE (с флагами Silent и SilentWithProgress);
  • ZIP
  • INNO;
  • NULLSOFT;
  • MSI
  • APPX;
  • MSIX
  • BURN.
  • PORTABLE

Создание скриптов для winget

Вы можете создавать пакетные скрипты и скрипты PowerShell для установки нескольких приложений.

@echo off  
Echo Install Powertoys and Terminal  
REM Powertoys  
winget install Microsoft.Powertoys  
if %ERRORLEVEL% EQU 0 Echo Powertoys installed successfully.  
REM Terminal  
winget install Microsoft.WindowsTerminal  
if %ERRORLEVEL% EQU 0 Echo Terminal installed successfully.   %ERRORLEVEL%

Примечание

При использовании скрипта winget запускает приложения в указанном порядке. Когда установщик сообщит об успешной установке или сбое, winget запустит следующий установщик. Если установщик запускает другой процесс, он может сообщить winget о завершении или сбое установки преждевременно. Это приведет к тому, что winget запустит следующий установщик до завершения выполнения предыдущего.

Отладка и устранение неполадок

В winget предусмотрено ведение журнала для диагностики проблем. Рекомендации по устранению неполадок и дополнительные сведения о ведении журнала см. в статье Отладка и устранение неполадок.

Отсутствующие средства

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

Настройка параметров winget

Вы можете настроить интерфейс командной строки winget, изменив файл settings.json. Для получения дополнительной информации см. https://aka.ms/winget-settings. Обратите внимание, что параметры по-прежнему поддерживаются в экспериментальном режиме и еще не готовы для предварительной версии средства.

Сведения об открытом коде

Средство winget — это программное обеспечение с открытым кодом, доступное в GitHub в репозитории https://github.com/microsoft/winget-cli/. Источник для сборки клиента находится в папке src.

Источник для winget содержится в решении Visual Studio 2019 C++. Чтобы построить решение правильно, установите новейшую версию Visual Studio с рабочей нагрузкой C++.

Мы рекомендуем вам пополнять источник winget на сайте GitHub. Для этого необходимо сначала принять и подписать соглашение Microsoft CLA.

Устранение неполадок

Репозиторий winget-cli содержит список распространенных проблем и ошибок, а также рекомендации по устранению следующих неполадок: