
Winget (Windows Package Manager) — это официальный менеджер пакетов от Microsoft, встроенный в Windows 10 и Windows 11. Он позволяет устанавливать, обновлять и удалять приложения через командную строку, аналогично тому, как это делают apt в Linux или brew в macOS
До появления winget администраторам и продвинутым пользователям приходилось вручную скачивать установщики с сайтов, что занимало много времени и повышало риск загрузки вредоносного ПО. Winget решает эти проблемы, предоставляя единый централизованный источник проверенных приложений
Ключевые преимущества:
- Бесплатный и встроенный — не требует установки дополнительного ПО
- Автоматизация — возможность создания скриптов для массовой установки
- Безопасность — приложения загружаются из официальных источников
- Актуальность — автоматическое обновление всех программ одной командой
Основные команды winget
|
Команда
|
Описание
|
Пример
|
|---|---|---|
|
winget search <запрос>
|
Поиск приложений в репозитории
|
winget search chrome
|
|
winget show
|
Отображение подробной информации о пакете
|
winget show Google.Chrome
|
|
winget list
|
Список установленных приложений
|
winget list
|
|
winget list --upgrade-available
|
Показать только приложения с обновлениями
|
winget list --upgrade-available
|
|
Команда
|
Описание
|
Пример
|
|---|---|---|
|
winget install
|
Установка приложения
|
winget install VideoLAN.VLC
|
|
winget uninstall
|
Удаление приложения
|
winget uninstall 7zip.7zip
|
|
winget upgrade
|
Обновление конкретного приложения
|
winget upgrade Microsoft.PowerToys
|
|
winget upgrade --all
|
Обновление всех приложений сразу
|
winget upgrade --all
|
Экспорт и импорт (восстановление окружения)
Winget позволяет экспортировать список всех установленных программ в JSON-файл и затем восстановить их на новом компьютере :
# Экспорт списка программ
winget export -o C:\backup\myapps.json
# Импорт и установка всех программ из файла
winget import -i C:\backup\myapps.json
|
Команда
|
Описание
|
|---|---|
|
winget --info
|
Информация о версии winget и системных настройках
|
|
winget source list
|
Список настроенных репозиториев
|
|
winget pin add
|
Закрепить версию приложения (запретить автоматическое обновление)
|
|
winget features
|
Показать экспериментальные возможности
|
|
Параметр
|
Назначение
|
|---|---|
|
-e, --exact
|
Точное совпадение ID (без поиска по подстроке)
|
|
--silent
|
Тихая установка без окон и запросов
|
|
--accept-package-agreements
|
Автоматически принять лицензионное соглашение пакета
|
|
--accept-source-agreements
|
Автоматически принять соглашение источника
|
|
--scope machine
|
Установка для всех пользователей компьютера
|
|
--disable-interactivity
|
Полное отключение интерактивных запросов
|
Джентльменский набор: скрипт массовой установки программ
Ниже представлен PowerShell-скрипт для автоматической установки лучших бесплатных программ, не требующих лицензии. Этот скрипт можно запустить на новом компьютере и забыть — всё установится автоматически.
|
Программа
|
Назначение
|
ID в winget
|
|---|---|---|
|
Google Chrome
|
Веб-браузер
|
Google.Chrome
|
|
Mozilla Firefox
|
Веб-браузер
|
Mozilla.Firefox
|
|
7-Zip
|
Архиватор файлов
|
7zip.7zip
|
|
VLC Media Player
|
Универсальный медиаплеер
|
VideoLAN.VLC
|
|
Microsoft PowerToys
|
Набор утилит для Windows
|
Microsoft.PowerToys
|
|
Visual Studio Code
|
Редактор кода
|
Microsoft.VisualStudioCode
|
|
Git
|
Система контроля версий
|
Git.Git
|
|
OBS Studio
|
Запись и стриминг видео
|
OBSProject.OBSStudio
|
|
LibreOffice
|
Офисный пакет
|
TheDocumentFoundation.LibreOffice
|
|
GIMP
|
Редактирование изображений
|
GIMP.GIMP
|
|
qBittorrent
|
Torrent-клиент
|
qBittorrent.qBittorrent
|
|
Discord
|
Голосовой и текстовый чат
|
Discord.Discord
|
|
Spotify
|
Музыкальный стриминг
|
Spotify.Spotify
|
|
Everything
|
Мгновенный поиск файлов
|
voidtools.Everything
|
|
LocalSend
|
Передача файлов между устройствами
|
localsend.localsend
|
|
ShareX
|
Скриншоты и запись экрана
|
ShareX.ShareX
|
|
Zoom
|
Видеоконференции
|
Zoom.Zoom
|
|
Telegram
|
Мессенджер
|
Telegram.TelegramDesktop
|
|
WinDirStat
|
Анализ дискового пространства
|
WinDirStat.WinDirStat
|
|
KeePassXC
|
Менеджер паролей
|
KeePassXC.KeePassXC
|
PowerShell скрипт установки
<#
.SYNOPSIS
Джентльменский набор программ для Windows
.DESCRIPTION
Скрипт автоматически устанавливает набор бесплатных программ через winget
.NOTES
Запускать от имени администратора для установки в систему
#>
# Запрос прав администратора
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Write-Host "Запустите PowerShell от имени администратора!" -ForegroundColor Red
Write-Host "Нажмите любую клавишу для выхода..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
exit
}
# Массив приложений для установки
$apps = @(
@{Name = "Google Chrome"; ID = "Google.Chrome"},
@{Name = "Mozilla Firefox"; ID = "Mozilla.Firefox"},
@{Name = "7-Zip"; ID = "7zip.7zip"},
@{Name = "VLC Media Player"; ID = "VideoLAN.VLC"},
@{Name = "Microsoft PowerToys"; ID = "Microsoft.PowerToys"},
@{Name = "Visual Studio Code"; ID = "Microsoft.VisualStudioCode"},
@{Name = "Git"; ID = "Git.Git"},
@{Name = "OBS Studio"; ID = "OBSProject.OBSStudio"},
@{Name = "LibreOffice"; ID = "TheDocumentFoundation.LibreOffice"},
@{Name = "GIMP"; ID = "GIMP.GIMP"},
@{Name = "qBittorrent"; ID = "qBittorrent.qBittorrent"},
@{Name = "Discord"; ID = "Discord.Discord"},
@{Name = "Spotify"; ID = "Spotify.Spotify"},
@{Name = "Everything"; ID = "voidtools.Everything"},
@{Name = "LocalSend"; ID = "localsend.localsend"},
@{Name = "ShareX"; ID = "ShareX.ShareX"},
@{Name = "Zoom"; ID = "Zoom.Zoom"},
@{Name = "Telegram"; ID = "Telegram.TelegramDesktop"},
@{Name = "WinDirStat"; ID = "WinDirStat.WinDirStat"},
@{Name = "KeePassXC"; ID = "KeePassXC.KeePassXC"}
)
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " Джентльменский набор программ" -ForegroundColor White
Write-Host " Установка через winget" -ForegroundColor White
Write-Host "========================================" -ForegroundColor Cyan
Write-Host ""
$total = $apps.Count
$current = 0
$successful = 0
$failed = @()
foreach ($app in $apps) {
$current++
Write-Host "[$current/$total] Установка: $($app.Name)..." -ForegroundColor Yellow
try {
winget install --id $($app.ID) -e --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
if ($LASTEXITCODE -eq 0) {
Write-Host " ✓ $($app.Name) успешно установлен" -ForegroundColor Green
$successful++
} else {
Write-Host " ✗ Ошибка при установке $($app.Name)" -ForegroundColor Red
$failed += $($app.Name)
}
}
catch {
Write-Host " ✗ Исключение при установке $($app.Name): $_" -ForegroundColor Red
$failed += $($app.Name)
}
Write-Host ""
}
# Итоговый отчет
Write-Host "========================================" -ForegroundColor Cyan
Write-Host " ОТЧЕТ ОБ УСТАНОВКЕ" -ForegroundColor White
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Успешно установлено: $successful из $total" -ForegroundColor Green
if ($failed.Count -gt 0) {
Write-Host "`nНе удалось установить:" -ForegroundColor Red
foreach ($app in $failed) {
Write-Host " - $app" -ForegroundColor Red
}
Write-Host "`nПроверьте подключение к интернету и повторите попытку." -ForegroundColor Yellow
}
Write-Host "`nНажмите любую клавишу для выхода..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
Как использовать скрипт
Сохраните скрипт в файл с расширением .ps1 (например, install-apps.ps1)
- Разрешите выполнение PowerShell-скриптов (еще не запускали):
powershellSet-ExecutionPolicy RemoteSigned -Scope CurrentUser - Запустите PowerShell от имени администратора (
Win+X → Terminal (Admin)) - Перейдите в папку со скриптом и выполните:
powershell.\install-apps.ps1
Внимание!
Можно просто скопировать содержимое в PowerShell и нажать ввод (для запуска - нажмите ПУСК и наберите powershell - нажмите запуск от имени администратора).
Быстрая установка одной строкой
Если нужно установить всего несколько программ, можно использовать однострочную команду :
winget install --id Google.Chrome --id 7zip.7zip --id VideoLAN.VLC --id Microsoft.PowerToys -e --accept-package-agreements --accept-source-agreements
Заключение
Winget — это мощный инструмент, который превращает установку и обслуживание программ в Windows из рутинной задачи в автоматизированный процесс. Представленный скрипт с джентльменским набором бесплатных программ позволит вам за 15-20 минут полностью подготовить новый компьютер к работе, избавив от необходимости вручную искать и скачивать каждый установщик.
Скрипт легко модифицировать — достаточно добавить или удалить ID программ в массиве $apps. Найти ID нужной программы можно командой winget search <название>.



