<p><strong>Ну раз вы тут, значит уже в теме:</strong> winget — это то, чего Windows ждала 30 лет. Пакетный менеджер от Microsoft, который устанавливает программы одной командой. Без Next-Next-Finish, без «скачать с официального сайта», без панелей инструментов и рекламы. Запустили PowerShell, написали <code>winget install 7zip</code> — готово.</p>
<p>Эта шпаргалка — для тех, кто устал кликать мышкой, хочет автоматизировать установку софта, развернуть новый компьютер за 10 минут одним скриптом и наконец почувствовать себя на <a class="wpil_keyword_link" href="https://it-apteka.com/category/windows-server/" title="Windows Server" data-wpil-keyword-link="linked" data-wpil-monitor-id="303" target="_blank">Windows</a> как на Linux с apt/dnf.</p>
<h2>Концепция: почему winget — это революция для Windows</h2>
<h3>Как это было раньше (до winget)</h3>
<p><strong>Сценарий 1: Настройка нового компьютера</strong></p>
<ol>
<li>Открываем браузер (Edge, потому что больше ничего нет)</li>
<li>Гуглим «скачать Chrome»</li>
<li>Кликаем на первую ссылку (надеемся, что это не реклама)</li>
<li>Скачиваем ChromeSetup.exe</li>
<li>Запускаем, жмём Next-Next-Install</li>
<li>Гуглим «скачать 7-Zip»</li>
<li>Повторяем п. 3-5</li>
<li>Гуглим «скачать Visual Studio Code»</li>
<li>Повторяем п. 3-5</li>
<li>…40 программ спустя…</li>
<li>Прошло 3 часа, кофе закончился, желание жить — тоже</li>
</ol>
<p><strong>Сценарий 2: На работе попросили поставить программу</strong></p>
<ol>
<li>«Поставь мне Python»</li>
<li>Идёте на python.org</li>
<li>Там 15 версий, непонятно какую качать</li>
<li>Скачиваете installer</li>
<li>Забываете поставить галку «Add Python to PATH»</li>
<li>Переустанавливаете</li>
<li>Python не работает, потому что нужна другая версия</li>
<li>Удаляете через Control Panel</li>
<li>Повторяете п. 1-6 с правильной версией</li>
<li>Проклинаете всё на свете</li>
</ol>
<h3>Как это с winget (сейчас)</h3>
<p><strong>Сценарий 1 (новый): Настройка компьютера</strong></p>
<ol>
<li>Открываете PowerShell</li>
<li>Пишете <a class="wpil_keyword_link" href="https://it-apteka.com/category/scripts/" title="Скрипты" data-wpil-keyword-link="linked" data-wpil-monitor-id="304" target="_blank">скрипт</a> (один раз навсегда):
<pre><code class="brush: powershell">
winget install Google.Chrome
winget install 7zip.7zip
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install VideoLAN.VLC
# ...и так далее
</code></pre>
</li>
<li>Запускаете скрипт</li>
<li>Идёте пить кофе</li>
<li>Возвращаетесь — всё установлено</li>
<li>Время: 10 минут (из них 9 минут — на кофе)</li>
</ol>
<p><strong>Сценарий 2 (новый): Установка программы</strong></p>
<pre><code class="brush: powershell">
# "Поставь мне Python"
winget install Python.Python.3.12
# Готово. Python установлен, в PATH добавлен, версия правильная.
</code></pre>
<h3>Почему это круто?</h3>
<p><strong>1. Прощай, Next-Next-Finish</strong></p>
<p>Помните эти установщики, где нужно 15 раз нажать Next? Где нужно снять галку «Установить панель инструментов <a class="wpil_keyword_link" href="https://it-apteka.com/tag/mail/" title="mail" data-wpil-keyword-link="linked" data-wpil-monitor-id="301" target="_blank">Mail</a>.ru? Где в середине процесса внезапно предлагают антивирус McAfee?</p>
<p>Winget говорит всему этому: «Нет». Одна команда — программа установлена. Без вопросов, без рекламы, без сюрпризов.</p>
<p><strong>2. Наконец-то как на Linux</strong></p>
<p>Linux-админы смеялись над Windows 30 лет:</p>
<pre><code class="brush: bash">
# Linux
sudo apt install nginx
# Windows (раньше)
# 1. Открыть браузер
# 2. Погуглить nginx
# 3. Найти официальный сайт
# 4. Скачать zip
# 5. Распаковать
# 6. Прочитать README
# 7. Настроить PATH вручную
# 8. Понять, что скачали не ту версию
# 9. Повторить п. 1-7
</code></pre>
<p>Теперь:</p>
<pre><code class="brush: powershell">
# Windows (с winget)
winget install nginx
</code></pre>
<p>Шах и мат, линуксоиды!</p>
<p><strong>3. Обновления одной командой</strong></p>
<p>Раньше каждая программа обновлялась по-своему:</p>
<ul>
<li>Chrome обновляется сам (иногда)</li>
<li>Adobe Reader показывает popup каждый день</li>
<li>Java требует перезагрузку</li>
<li>WinRAR напоминает, что пора купить лицензию (уже 15 лет)</li>
<li>Половина программ вообще не обновляется</li>
</ul>
<p>С winget:</p>
<pre><code class="brush: powershell">
winget upgrade --all
</code></pre>
<p>Всё. Все программы обновлены. Можно идти домой.</p>
<p><strong>4. Автоматизация для ленивых (и умных)</strong></p>
<p>Вы системный администратор. У вас 50 новых компьютеров. Нужно на каждый поставить стандартный набор программ.</p>
<p><strong>Раньше:</strong> 3 дня кликанья мышкой, RSI (repetitive strain injury), увольнение.</p>
<p><strong>С winget:</strong> Один скрипт PowerShell, GPO или Intune, запустили — пошли обедать.</p>
<p><strong>5. Нет больше «а где вы это скачали?»</strong></p>
<p>Помните диалог:</p>
<ul>
<li>«Поставил программу, теперь компьютер тормозит»</li>
<li>«А где скачали?»</li>
<li>«Погуглил, первая ссылка»</li>
<li>«Это был сайт с рекламой и вирусами. Вы скачали не 7-Zip, а 7-Zip-Pro-Crack-2024-Free.exe»</li>
</ul>
<p>С winget программы берутся из официального репозитория Microsoft. Никаких левых сайтов, никаких вирусов, никаких сюрпризов.</p>
<p><strong>6. Поиск программ не выходя из терминала</strong></p>
<pre><code class="brush: powershell">
# Нужен архиватор? Ищем:
winget search archive
# Результат:
# 7zip.7zip
# WinRAR.WinRAR
# PeaZip.PeaZip
# ...
# Выбираем, устанавливаем
winget install 7zip.7zip
</code></pre>
<p>Не нужно гуглить, не нужно открывать браузер. Всё в терминале, как завещал Линус Торвальдс (хотя это Windows, но детали).</p>
<h3>Когда использовать winget</h3>
<p><strong>Идеально подходит для:</strong></p>
<ul>
<li><a href="https://it-apteka.com/mikrotik-dlja-professionalov-pravilnaja-nastrojka-s-nulja-do-production-2026/" target="_blank" rel="noopener" data-wpil-monitor-id="455">Настройка новых компьютеров — один скрипт</a> вместо трёх часов кликанья</li>
<li><strong>Массовое развёртывание софта</strong> — IT-отделы, rejoice!</li>
<li><strong>Быстрая установка инструментов разработки</strong> — VSCode, <a class="wpil_keyword_link" href="https://it-apteka.com/tag/git/" title="Git" data-wpil-keyword-link="linked" data-wpil-monitor-id="302" target="_blank">Git</a>, Python, Node.js за минуту</li>
<li><strong>Обновление всех программ разом</strong> — <code>winget upgrade --all</code> раз в неделю</li>
<li><a href="https://it-apteka.com/powershell-skripty-v-windows-kak-sozdat-zapustit-i-avtomatizirovat-vypolnenie/" target="_blank" rel="noopener" data-wpil-monitor-id="802">Скрипты автоматизации — PowerShell</a> + winget = любовь</li>
<li><strong>Когда лень искать официальный сайт</strong> — почти всегда</li>
</ul>
<p><strong>Может быть неудобно для:</strong></p>
<ul>
<li><strong>Программ, которых нет в репозитории</strong> — редко, но бывает</li>
<li><strong>Когда нужны специфичные настройки установки</strong> — winget ставит с дефолтными параметрами</li>
<li><strong>Пользователям без прав администратора</strong> — winget требует админские права</li>
<li><strong>Windows 7/8.x</strong> — winget только для Windows 10 1809+ и Windows 11</li>
</ul>
<h2>Когда это использовать</h2>
<p><strong>Реальные кейсы:</strong></p>
<ul>
<li><strong>Новый компьютер/переустановка </strong><a href="https://it-apteka.com/soft-hp-dlja-printerov-i-kak-ustanovit-printer-bez-hp-smart/" title="Софт HP для принтеров и как установить HP принтер без HP Smart: UPD, TCP/IP и Print Server" target="_blank" rel="noopener" data-wpil-monitor-id="1633">Windows — разворачиваете софт</a> за 10 минут</li>
<li><strong>Рабочее место разработчика</strong> — Git, Node.js, Python, VSCode одной командой</li>
<li><strong>Серверная установка</strong> — устанавливаете утилиты без GUI</li>
<li><strong>Корпоративное развёртывание</strong> — массовая установка через GPO/Intune</li>
<li><strong>Портативные утилиты</strong> — быстро поставить 7-Zip, curl, wget на сервер</li>
<li><strong>Домашний компьютер</strong> — держите софт в актуальном состоянии</li>
</ul>
<p><strong>Ошибки новичков:</strong></p>
<ul>
<li>Пытаются установить winget на Windows 7 — не работает</li>
<li>Не запускают PowerShell от администратора — ошибки прав доступа</li>
<li>Ищут программу по неправильному имени — используйте <code>winget search</code></li>
<li>Забывают обновлять сам winget — старые версии могут глючить</li>
<li>Не знают про <code>winget upgrade --all</code> — обновляют программы вручную</li>
<li>Паникуют, когда видят <code>--accept-source-agreements</code> — это нормально</li>
</ul>
<h2>Быстрый старт</h2>
<p><strong>Проверка наличия winget (Windows 11 / Windows 10 свежие):</strong></p>
<pre><code class="brush: powershell">
# Открываем PowerShell (Win+X → Windows PowerShell)
winget --version
# Вывод:
# v1.7.10582
</code></pre>
<p>Если команда найдена — winget уже установлен. Если нет — см. раздел «Установка winget».</p>
<p><strong>Установка первой программы:</strong></p>
<pre><code class="brush: powershell">
# Устанавливаем 7-Zip
winget install 7zip.7zip
# ИЛИ просто
winget install 7zip
</code></pre>
<p><strong>Поиск программы:</strong></p>
<pre><code class="brush: powershell">
# Ищем Chrome
winget search chrome
# Устанавливаем найденное
winget install Google.Chrome
</code></pre>
<p><strong>Обновление всех программ:</strong></p>
<pre><code class="brush: powershell">
# Список доступных обновлений
winget upgrade
# Обновить всё
winget upgrade --all
</code></pre>
<p><strong>Удаление программы:</strong></p>
<pre><code class="brush: powershell">
winget uninstall 7zip
</code></pre>
<h2>Установка winget</h2>
<h3>Windows 11 — winget уже установлен</h3>
<p>На Windows 11 winget установлен по умолчанию. Просто откройте PowerShell и используйте.</p>
<pre><code class="brush: powershell">
winget --version
</code></pre>
<h3>Windows 10 — установка через Microsoft Store</h3>
<p><strong>Автоматическая установка (рекомендуется):</strong></p>
<ol>
<li>Открываем Microsoft Store</li>
<li>Ищем «App Installer»</li>
<li>Устанавливаем/обновляем</li>
<li>Перезапускаем PowerShell</li>
<li>Проверяем: <code>winget --version</code></li>
</ol>
<p><strong>Требования:</strong></p>
<ul>
<li><a href="https://it-apteka.com/windows-12-data-vyhoda-versii-64-bit-i-chto-izvestno-v-2026-godu/" target="_blank" rel="noopener" data-wpil-monitor-id="642">Windows 10 версия</a> 1809 (build 17763) или новее</li>
<li>Microsoft Store должен быть доступен</li>
<li>App Installer установлен</li>
</ul>
<h3>Windows 10 — установка вручную (без Microsoft Store)</h3>
<p><strong>Способ 1: Скачать установщик напрямую</strong></p>
<ol>
<li>Идём на GitHub: <code>https://github.com/microsoft/winget-cli/releases</code></li>
<li>Скачиваем последний <code>Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle</code></li>
<li>Запускаем, устанавливаем</li>
<li>Перезапускаем PowerShell</li>
</ol>
<p><strong>Способ 2: Через PowerShell (скрипт установки)</strong></p>
<pre><code class="brush: powershell">
# Запускаем PowerShell от администратора
# Скачиваем установщик
$progressPreference = 'silentlyContinue'
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile $env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# Устанавливаем
Add-AppxPackage -Path $env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# Проверяем
winget --version
</code></pre>
<h3>Обновление winget</h3>
<pre><code class="brush: powershell">
# Способ 1: Через Microsoft Store
# Открываем Store → Library → Updates → Update All
# Способ 2: Через winget (да, winget обновляет сам себя)
winget upgrade Microsoft.AppInstaller
# ИЛИ обновить всё включая winget
winget upgrade --all
</code></pre>
<h3>Проверка версии и обновлений</h3>
<pre><code class="brush: powershell">
# Текущая версия
winget --version
# Информация о winget
winget --info
# Вывод:
# Windows Package Manager v1.7.10582
# Copyright (c) Microsoft Corporation. All rights reserved.
# ...
</code></pre>
<h2>Основные команды winget</h2>
<h3>winget search — поиск программ</h3>
<pre><code class="brush: powershell">
# Поиск по названию
winget search chrome
# Поиск точного совпадения
winget search --name "Google Chrome"
# Поиск по ID
winget search --id Google.Chrome
# Поиск по тегам
winget search --tag browser
# Поиск всех программ от издателя
winget search --publisher Microsoft
# Точное совпадение (без частичного поиска)
winget search --exact chrome
</code></pre>
<p><strong>Вывод поиска:</strong></p>
<pre><code class="brush: plain">
Name Id Version Source
-------------------------------------------------------
Google Chrome Google.Chrome 121.0... winget
Chromium Hibbiki.Chromium 121.0 winget
Microsoft Edge Microsoft.Edge 121.0 winget
</code></pre>
<h3>winget install — установка программ</h3>
<pre><code class="brush: powershell">
# Установка по имени
winget install Chrome
# Установка по ID (рекомендуется)
winget install Google.Chrome
# Установка конкретной версии
winget install Google.Chrome --version 120.0.6099.130
# Установка с принятием соглашений (без интерактивности)
winget install 7zip --accept-package-agreements --accept-source-agreements
# Интерактивная установка (откроется GUI installer)
winget install Google.Chrome --interactive
# Тихая установка (без вопросов)
winget install 7zip --silent
# Установка из конкретного источника
winget install Google.Chrome --source winget
# Установка с override параметрами
winget install Python.Python.3.12 --override '/quiet PrependPath=1'
</code></pre>
<h3>winget upgrade — обновление программ</h3>
<pre><code class="brush: powershell">
# Список доступных обновлений
winget upgrade
# Обновить конкретную программу
winget upgrade Google.Chrome
# Обновить всё
winget upgrade --all
# Обновить всё с принятием соглашений (для автоматизации)
winget upgrade --all --accept-package-agreements --accept-source-agreements
# Обновить всё, включая программы с неизвестными версиями
winget upgrade --all --include-unknown
# Обновить только конкретный источник
winget upgrade --all --source winget
</code></pre>
<h3>winget uninstall — удаление программ</h3>
<pre><code class="brush: powershell">
# Удаление по имени
winget uninstall Chrome
# Удаление по ID
winget uninstall Google.Chrome
# Тихое удаление
winget uninstall 7zip --silent
# Интерактивное удаление (откроется стандартный uninstaller)
winget uninstall Google.Chrome --interactive
</code></pre>
<h3>winget list — список установленных программ</h3>
<pre><code class="brush: powershell">
# Все установленные программы
winget list
# Поиск установленной программы
winget list chrome
# Список программ, установленных через winget
winget list --source winget
# Только программы с доступными обновлениями
winget list --upgrade-available
</code></pre>
<h3>winget show — информация о программе</h3>
<pre><code class="brush: powershell">
# Подробная информация
winget show Google.Chrome
# Вывод:
# Found Google Chrome [Google.Chrome]
# Version: 121.0.6167.185
# Publisher: Google LLC
# Description: A fast, secure, and free web browser...
# Homepage: https://www.google.com/chrome/
# License: Proprietary
# ...
</code></pre>
<h3>winget source — управление источниками</h3>
<pre><code class="brush: powershell">
# Список источников
winget source list
# Обновить источники (аналог apt update)
winget source update
# Сброс источников (если что-то сломалось)
winget source reset
# Добавить кастомный источник (для корпоративных репозиториев)
winget source add --name "CompanyRepo" --arg "https://repo.company.com" --type "Microsoft.Rest"
# Удалить источник
winget source remove --name "CompanyRepo"
</code></pre>
<h3>winget export / import — экспорт/импорт списка программ</h3>
<pre><code class="brush: powershell">
# Экспорт списка установленных программ в JSON
winget export --output apps.json
# Импорт (установка) программ из JSON
winget import --import-file apps.json
# Импорт с принятием соглашений (для автоматизации)
winget import --import-file apps.json --accept-package-agreements --accept-source-agreements
# Игнорировать недоступные программы
winget import --import-file apps.json --ignore-unavailable
# Игнорировать версии (устанавливать последние)
winget import --import-file apps.json --ignore-versions
</code></pre>
<p><strong>Пример apps.json:</strong></p>
<pre><code class="brush: json">
{
"$schema": "https://aka.ms/winget-packages.schema.2.0.json",
"Sources": [
{
"Packages": [
{
"PackageIdentifier": "Google.Chrome"
},
{
"PackageIdentifier": "7zip.7zip"
},
{
"PackageIdentifier": "Microsoft.VisualStudioCode"
}
],
"SourceDetails": {
"Name": "winget"
}
}
]
}
</code></pre>
<h2>Популярные программы для установки через winget</h2>
<h3>Браузеры</h3>
<pre><code class="brush: powershell">
# Google Chrome
winget install Google.Chrome
# Mozilla Firefox
winget install Mozilla.Firefox
# Microsoft Edge (обычно уже установлен)
winget install Microsoft.Edge
# Brave
winget install Brave.Brave
# Opera
winget install Opera.Opera
# Vivaldi
winget install VivaldiTechnologies.Vivaldi
</code></pre>
<h3>Инструменты разработки</h3>
<pre><code class="brush: powershell">
# Visual Studio Code
winget install Microsoft.VisualStudioCode
# Git
winget install Git.Git
# Python 3.12
winget install Python.Python.3.12
# Node.js LTS
winget install OpenJS.NodeJS.LTS
# Node.js Current
winget install OpenJS.NodeJS
# Docker Desktop
winget install Docker.DockerDesktop
# Postman
winget install Postman.Postman
# DBeaver (SQL клиент)
winget install dbeaver.dbeaver
# Notepad++
winget install Notepad++.Notepad++
# Sublime Text
winget install SublimeHQ.SublimeText.4
# IntelliJ IDEA Community
winget install JetBrains.IntelliJIDEA.Community
# Visual Studio 2022 Community
winget install Microsoft.VisualStudio.2022.Community
# Android Studio
winget install Google.AndroidStudio
# JDK (OpenJDK)
winget install Microsoft.OpenJDK.17
</code></pre>
<h3>Утилиты и инструменты</h3>
<pre><code class="brush: powershell">
# 7-Zip
winget install 7zip.7zip
# WinRAR
winget install RARLab.WinRAR
# Everything (поиск файлов)
winget install voidtools.Everything
# PowerToys (утилиты Microsoft)
winget install Microsoft.PowerToys
# ShareX (скриншоты)
winget install ShareX.ShareX
# Greenshot (скриншоты)
winget install Greenshot.Greenshot
# Sysinternals Suite
winget install Microsoft.Sysinternals.Suite
# Process Explorer
winget install Microsoft.Sysinternals.ProcessExplorer
# CPU-Z
winget install CPUID.CPU-Z
# GPU-Z
winget install TechPowerUp.GPU-Z
# CrystalDiskInfo (состояние дисков)
winget install CrystalDewWorld.CrystalDiskInfo
# Rufus (создание загрузочных USB)
winget install Rufus.Rufus
# Ventoy (мультизагрузочный USB)
winget install Ventoy.Ventoy
# Balena Etcher
winget install Balena.Etcher
# WinSCP
winget install WinSCP.WinSCP
# PuTTY
winget install PuTTY.PuTTY
# FileZilla
winget install TimKosse.FileZilla.Client
# KeePass (менеджер паролей)
winget install KeePassXCTeam.KeePassXC
# Bitwarden
winget install Bitwarden.Bitwarden
# 1Password
winget install AgileBits.1Password
</code></pre>
<h3>Мультимедиа</h3>
<pre><code class="brush: powershell">
# VLC Media Player
winget install VideoLAN.VLC
# Spotify
winget install Spotify.Spotify
# AIMP (аудиоплеер)
winget install AIMP.AIMP
# OBS Studio (стриминг)
winget install OBSProject.OBSStudio
# Audacity
winget install Audacity.Audacity
# GIMP
winget install GIMP.GIMP
# Inkscape
winget install Inkscape.Inkscape
# Blender
winget install BlenderFoundation.Blender
# HandBrake (конвертер видео)
winget install HandBrake.HandBrake
# FFmpeg
winget install Gyan.FFmpeg
</code></pre>
<h3>Коммуникация</h3>
<pre><code class="brush: powershell">
# Discord
winget install Discord.Discord
# Telegram
winget install Telegram.TelegramDesktop
# Slack
winget install SlackTechnologies.Slack
# Zoom
winget install Zoom.Zoom
# Microsoft Teams
winget install Microsoft.Teams
# Skype
winget install Microsoft.Skype
# WhatsApp
winget install WhatsApp.WhatsApp
</code></pre>
<h3>Офисные программы</h3>
<pre><code class="brush: powershell">
# LibreOffice
winget install TheDocumentFoundation.LibreOffice
# Adobe Acrobat Reader
winget install Adobe.Acrobat.Reader.64-bit
# Foxit PDF Reader
winget install Foxit.FoxitReader
# Sumatra PDF
winget install SumatraPDF.SumatraPDF
# Notion
winget install Notion.Notion
# Obsidian
winget install Obsidian.Obsidian
</code></pre>
<h3>Системные утилиты</h3>
<pre><code class="brush: powershell">
# Windows Terminal
winget install Microsoft.WindowsTerminal
# PowerShell 7
winget install Microsoft.PowerShell
# Oh My Posh (кастомизация терминала)
winget install JanDeDobbeleer.OhMyPosh
# Chocolatey (альтернативный пакетный менеджер)
winget install Chocolatey.Chocolatey
# NSSM (Non-Sucking Service Manager)
winget install NSSM.NSSM
# Wireshark
winget install WiresharkFoundation.Wireshark
# Nmap
winget install Insecure.Nmap
# Angry IP Scanner
winget install angryziber.AngryIPScanner
# TeamViewer
winget install TeamViewer.TeamViewer
# AnyDesk
winget install AnyDeskSoftwareGmbH.AnyDesk
</code></pre>
<h2>Продвинутые техники и автоматизация</h2>
<h3>Скрипт установки софта на новый компьютер</h3>
<pre><code class="brush: powershell">
# install-essentials.ps1
# Скрипт установки базового набора программ
# Браузер
winget install Google.Chrome --accept-package-agreements --accept-source-agreements
# Инструменты разработки
winget install Microsoft.VisualStudioCode --silent
winget install Git.Git --silent
winget install Python.Python.3.12 --silent
winget install OpenJS.NodeJS.LTS --silent
# Утилиты
winget install 7zip.7zip --silent
winget install Microsoft.PowerToys --silent
winget install voidtools.Everything --silent
# Мультимедиа
winget install VideoLAN.VLC --silent
winget install Spotify.Spotify --silent
# Коммуникация
winget install Discord.Discord --silent
winget install Telegram.TelegramDesktop --silent
# Системное
winget install Microsoft.WindowsTerminal --silent
winget install Microsoft.PowerShell --silent
Write-Host "Installation complete!" -ForegroundColor Green
</code></pre>
<p>Запуск:</p>
<pre><code class="brush: powershell">
# Запускаем PowerShell от администратора
.\install-essentials.ps1
</code></pre>
<h3>Скрипт обновления всех программ</h3>
<pre><code class="brush: powershell">
# update-all.ps1
# Обновление всех программ через winget
Write-Host "Checking for updates..." -ForegroundColor Yellow
# Обновляем источники
winget source update
# Показываем список обновлений
winget upgrade
# Обновляем всё
winget upgrade --all --accept-package-agreements --accept-source-agreements --include-unknown
Write-Host "All updates installed!" -ForegroundColor Green
</code></pre>
<p>Добавляем в Task Scheduler для автоматического запуска раз в неделю:</p>
<pre><code class="brush: powershell">
# Создаём задачу в планировщике
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\update-all.ps1"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Winget Auto Update" -Action $action -Trigger $trigger -Principal $principal
</code></pre>
<h3>Условная установка (проверка перед установкой)</h3>
<pre><code class="brush: powershell">
# Устанавливаем только если программа ещё не установлена
$apps = @(
"Google.Chrome",
"7zip.7zip",
"Microsoft.VisualStudioCode"
)
foreach ($app in $apps) {
$installed = winget list --id $app --exact
if ($installed -like "*No installed package found*") {
Write-Host "Installing $app..." -ForegroundColor Yellow
winget install $app --silent --accept-package-agreements --accept-source-agreements
} else {
Write-Host "$app already installed" -ForegroundColor Green
}
}
</code></pre>
<h3>Экспорт и восстановление конфигурации</h3>
<pre><code class="brush: powershell">
# 1. На старом компьютере - экспортируем список
winget export --output "C:\Backup\my-apps.json"
# 2. Копируем my-apps.json на новый компьютер
# 3. На новом компьютере - импортируем
winget import --import-file "C:\Backup\my-apps.json" --accept-package-agreements --accept-source-agreements --ignore-unavailable
</code></pre>
<h3>Интеграция с PowerShell Profile</h3>
<p>Добавляем алиасы и функции в PowerShell profile:</p>
<pre><code class="brush: powershell">
# Открываем профиль
notepad $PROFILE
# Если файл не существует:
New-Item -Path $PROFILE -Type File -Force
notepad $PROFILE
</code></pre>
<p>Добавляем:</p>
<pre><code class="brush: powershell">
# Алиасы для winget
function wg-search { winget search $args }
function wg-install { winget install $args --accept-package-agreements --accept-source-agreements }
function wg-update { winget upgrade --all --accept-package-agreements --accept-source-agreements }
function wg-list { winget list $args }
Set-Alias -Name wgs -Value wg-search
Set-Alias -Name wgi -Value wg-install
Set-Alias -Name wgu -Value wg-update
Set-Alias -Name wgl -Value wg-list
</code></pre>
<p>Теперь можно использовать короткие команды:</p>
<pre><code class="brush: powershell">
wgs chrome # winget search chrome
wgi 7zip # winget install 7zip
wgu # winget upgrade --all
wgl # winget list
</code></pre>
<h3>Скрипт удаления bloatware</h3>
<pre><code class="brush: powershell">
# remove-bloatware.ps1
# Удаление ненужных предустановленных приложений Windows
$bloatware = @(
"Microsoft.BingWeather",
"Microsoft.GetHelp",
"Microsoft.Getstarted",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.People",
"Microsoft.WindowsFeedbackHub",
"Microsoft.Xbox.TCUI",
"Microsoft.XboxApp",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo"
)
foreach ($app in $bloatware) {
Write-Host "Removing $app..." -ForegroundColor Yellow
winget uninstall $app --silent
Get-AppxPackage $app -AllUsers | Remove-AppxPackage
}
Write-Host "Bloatware removed!" -ForegroundColor Green
</code></pre>
<h3>Массовая установка для разработчиков</h3>
<pre><code class="brush: powershell">
# dev-setup.ps1
# Полная настройка окружения разработчика
$devTools = @{
"Editors" = @(
"Microsoft.VisualStudioCode",
"Notepad++.Notepad++",
"JetBrains.IntelliJIDEA.Community"
)
"Version Control" = @(
"Git.Git",
"GitHub.GitHubDesktop",
"TortoiseGit.TortoiseGit"
)
"Languages" = @(
"Python.Python.3.12",
"OpenJS.NodeJS.LTS",
"Microsoft.OpenJDK.17",
"GoLang.Go"
)
"Containers" = @(
"Docker.DockerDesktop",
"Kubernetes.kubectl"
)
"Database Tools" = @(
"dbeaver.dbeaver",
"PostgreSQL.PostgreSQL.15"
)
"API Tools" = @(
"Postman.Postman",
"Insomnia.Insomnia"
)
"Terminal" = @(
"Microsoft.WindowsTerminal",
"Microsoft.PowerShell",
"JanDeDobbeleer.OhMyPosh"
)
}
foreach ($category in $devTools.Keys) {
Write-Host "`n=== Installing $category ===" -ForegroundColor Cyan
foreach ($app in $devTools[$category]) {
Write-Host "Installing $app..." -ForegroundColor Yellow
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
Write-Host "`nDevelopment environment ready!" -ForegroundColor Green
</code></pre>
<h2>Интеграция с корпоративной средой</h2>
<h3>Развёртывание через GPO (Group Policy)</h3>
<p><strong>Создание скрипта запуска:</strong></p>
<pre><code class="brush: powershell">
# company-software.ps1
# Скрипт для GPO
$companyApps = @(
"Google.Chrome",
"Adobe.Acrobat.Reader.64-bit",
"Microsoft.Teams",
"7zip.7zip"
)
foreach ($app in $companyApps) {
$installed = winget list --id $app --exact 2>&1
if ($installed -like "*No installed package found*") {
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
</code></pre>
<p><strong>Настройка GPO:</strong></p>
<ol>
<li>Открываем Group Policy Management</li>
<li>Создаём новую GPO или редактируем существующую</li>
<li>Computer Configuration → Policies → Windows Settings → Scripts → Startup</li>
<li>Добавляем PowerShell скрипт</li>
<li>Применяем к нужным OU</li>
</ol>
<h3>Интеграция с Microsoft Intune</h3>
<p>Создание Win32 приложения для установки через winget:</p>
<ol>
<li>Создаём PowerShell скрипт установки</li>
<li>Конвертируем в .intunewin формат</li>
<li>Загружаем в Intune</li>
<li>Назначаем на группы пользователей/устройств</li>
</ol>
<p><strong>Пример скрипта для Intune:</strong></p>
<pre><code class="brush: powershell">
# install.ps1
$app = "Google.Chrome"
winget install $app --silent --accept-package-agreements --accept-source-agreements
exit 0
</code></pre>
<pre><code class="brush: powershell">
# detect.ps1
$app = "Google.Chrome"
$installed = winget list --id $app --exact 2>&1
if ($installed -notlike "*No installed package found*") {
Write-Output "Installed"
exit 0
} else {
exit 1
}
</code></pre>
<h3>Корпоративный репозиторий winget</h3>
<p>Создание собственного источника пакетов для внутреннего использования:</p>
<ol>
<li>Настраиваем REST API сервер</li>
<li>Добавляем источник в winget:
<pre><code class="brush: powershell">
winget source add --name "CompanyApps" --arg "https://apps.company.com" --type "Microsoft.Rest"
</code></pre>
</li>
<li>Устанавливаем из корпоративного репозитория:
<pre><code class="brush: powershell">
winget install CompanyApp --source CompanyApps
</code></pre>
</li>
</ol>
<h2>Частые проблемы и решения</h2>
<h3>Ошибка: «winget is not recognized»</h3>
<p><strong>Причина:</strong> winget не установлен или PATH не настроен.</p>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Проверяем наличие App Installer
Get-AppxPackage Microsoft.DesktopAppInstaller
# Если нет - устанавливаем через Microsoft Store
# ИЛИ скачиваем с GitHub (см. раздел "Установка winget")
# Перезапускаем PowerShell после установки
</code></pre>
<h3>Ошибка: «Failed in attempting to update source: winget»</h3>
<p><strong>Причина:</strong> Проблемы с источниками winget.</p>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Сбрасываем источники
winget source reset --force
# Обновляем источники
winget source update
# Если не помогло - переустанавливаем App Installer
</code></pre>
<h3>Ошибка: «This application requires administrator privileges»</h3>
<p><strong>Решение:</strong></p>
<ol>
<li>Запускаем PowerShell от администратора: Win+X → Windows PowerShell (Admin)</li>
<li>Выполняем команду winget</li>
</ol>
<h3>Ошибка: «No applicable installer was found»</h3>
<p><strong>Причины:</strong></p>
<ul>
<li>Программа не поддерживает вашу архитектуру (x86/x64/ARM64)</li>
<li><a href="https://it-apteka.com/programmy-dlja-udalenija-fajlov-kotorye-ne-udaljajutsja-windows-unlocker-lockhunter-i-drugie/" target="_blank" rel="noopener" data-wpil-monitor-id="475">Программа не доступна для вашей версии Windows</a></li>
</ul>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Проверяем информацию о программе
winget show PROGRAM_ID
# Пробуем установить интерактивно (откроет GUI installer)
winget install PROGRAM_ID --interactive
</code></pre>
<h3>Ошибка: Программа установилась, но не работает</h3>
<p><strong>Причина:</strong> PATH не обновлён в текущей сессии.</p>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Перезапускаем PowerShell
# ИЛИ обновляем PATH вручную
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
</code></pre>
<h3>Ошибка: «Multiple installed packages found»</h3>
<p><strong>Причина:</strong> Установлено несколько версий программы.</p>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Список всех версий
winget list PROGRAM_NAME
# Удаляем конкретную версию по ID
winget uninstall --id EXACT_PROGRAM_ID
# ИЛИ используем точный ID при установке
winget install --id EXACT_PROGRAM_ID
</code></pre>
<h3>Winget медленно работает</h3>
<p><strong>Решение:</strong></p>
<pre><code class="brush: powershell">
# Очищаем кеш
winget source reset --force
# Отключаем прогресс-бар (быстрее для скриптов)
$ProgressPreference = 'SilentlyContinue'
winget install APP_ID
</code></pre>
<h2>Полезные хаки и трюки</h2>
<h3>Быстрая установка без подтверждений</h3>
<pre><code class="brush: powershell">
# Создаём функцию для быстрой установки
function Quick-Install {
param($app)
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
# Использование
Quick-Install Google.Chrome
Quick-Install 7zip
</code></pre>
<h3>Поиск всех программ от издателя</h3>
<pre><code class="brush: powershell">
# Все программы Microsoft
winget search --publisher Microsoft
# Все программы Google
winget search --publisher Google
</code></pre>
<h3>Установка нескольких программ одной командой</h3>
<pre><code class="brush: powershell">
# Через цикл
@("Google.Chrome", "7zip.7zip", "Microsoft.VisualStudioCode") | ForEach-Object {
winget install $_ --silent --accept-package-agreements --accept-source-agreements
}
# ИЛИ через функцию
function Install-Multiple {
param([string[]]$apps)
foreach ($app in $apps) {
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
Install-Multiple -apps "Google.Chrome","7zip","Git.Git"
</code></pre>
<h3>Проверка доступности программы перед установкой</h3>
<pre><code class="brush: powershell">
function Test-WingetPackage {
param($PackageId)
$result = winget search --id $PackageId --exact
if ($result -like "*No package found*") {
Write-Host "Package $PackageId not found in winget" -ForegroundColor Red
return $false
} else {
Write-Host "Package $PackageId found" -ForegroundColor Green
return $true
}
}
# Использование
if (Test-WingetPackage "Google.Chrome") {
winget install Google.Chrome
}
</code></pre>
<h3>Логирование установок</h3>
<pre><code class="brush: powershell">
# Установка с логированием
$logFile = "C:\Logs\winget-install-$(Get-Date -Format 'yyyyMMdd-HHmmss').log"
Start-Transcript -Path $logFile
winget install Google.Chrome --silent --accept-package-agreements --accept-source-agreements
winget install 7zip --silent --accept-package-agreements --accept-source-agreements
Stop-Transcript
Write-Host "Log saved to: $logFile"
</code></pre>
<h3>Создание меню выбора программ</h3>
<pre><code class="brush: powershell">
# install-menu.ps1
$apps = @{
"1" = @{Name = "Google Chrome"; Id = "Google.Chrome"}
"2" = @{Name = "Firefox"; Id = "Mozilla.Firefox"}
"3" = @{Name = "7-Zip"; Id = "7zip.7zip"}
"4" = @{Name = "VS Code"; Id = "Microsoft.VisualStudioCode"}
"5" = @{Name = "VLC"; Id = "VideoLAN.VLC"}
}
Write-Host "`n=== Installation Menu ===" -ForegroundColor Cyan
foreach ($key in $apps.Keys | Sort-Object) {
Write-Host "$key. $($apps[$key].Name)"
}
Write-Host "0. Install All"
Write-Host "Q. Quit"
$choice = Read-Host "`nEnter choice"
if ($choice -eq "0") {
foreach ($app in $apps.Values) {
Write-Host "Installing $($app.Name)..." -ForegroundColor Yellow
winget install $app.Id --silent --accept-package-agreements --accept-source-agreements
}
} elseif ($apps.ContainsKey($choice)) {
Write-Host "Installing $($apps[$choice].Name)..." -ForegroundColor Yellow
winget install $apps[$choice].Id --silent --accept-package-agreements --accept-source-agreements
} elseif ($choice -eq "Q") {
exit
} else {
Write-Host "Invalid choice" -ForegroundColor Red
}
</code></pre>
<h2>Краткий чек-лист</h2>
<p><strong>Установка и проверка:</strong></p>
<ul>
<li>☐ Winget установлен: <code>winget --version</code></li>
<li>☐ Версия актуальна: <code>winget upgrade Microsoft.AppInstaller</code></li>
<li>☐ Источники обновлены: <code>winget source update</code></li>
</ul>
<p><strong>Базовое использование:</strong></p>
<ul>
<li>☐ Поиск: <code>winget search НАЗВАНИЕ</code></li>
<li>☐ Установка: <code>winget install ID</code></li>
<li>☐ Список установленного: <code>winget list</code></li>
<li>☐ Обновление всего: <code>winget upgrade --all</code></li>
</ul>
<p><strong>Автоматизация:</strong></p>
<ul>
<li>☐ Создан скрипт установки базового софта</li>
<li>☐ Создан скрипт обновления (можно в Task Scheduler)</li>
<li>☐ Экспортирован список программ: <code>winget export</code></li>
<li>☐ Настроены алиасы в PowerShell Profile (опционально)</li>
</ul>
<p><strong>Корпоративное использование:</strong></p>
<ul>
<li>☐ GPO скрипт создан (если применимо)</li>
<li>☐ Intune пакеты подготовлены (если применимо)</li>
<li>☐ Корпоративный репозиторий настроен (если нужен)</li>
</ul>
<p><strong>Полезные команды:</strong></p>
<ul>
<li>☐ <code>winget search chrome</code> — поиск</li>
<li>☐ <code>winget install Google.Chrome</code> — установка</li>
<li>☐ <code>winget upgrade --all</code> — обновить всё</li>
<li>☐ <code>winget list</code> — список установленного</li>
<li>☐ <code>winget show Google.Chrome</code> — информация</li>
<li>☐ <code>winget export apps.json</code> — экспорт списка</li>
<li>☐ <code>winget import apps.json</code> — импорт списка</li>
</ul>
<h2>Резюме</h2>
<p>Winget — это то, что превращает <a href="https://it-apteka.com/far-manager-skachat-ustanovit-i-osvoit-komandy-za-odin-vecher/" target="_blank" rel="noopener" data-wpil-monitor-id="1232">Windows</a> из «кликай мышкой 3 часа» в «написал команду, попил кофе, готово. Это официальный пакетный менеджер от Microsoft, который работает из коробки на <a href="https://it-apteka.com/network-test-portable-utilita-dlja-diagnostiki-seti-bez-ustanovki/" target="_blank" rel="noopener" data-wpil-monitor-id="564">Windows 10/11 и делает установку</a> софта такой же простой, как на Linux.</p>
<p><strong>Три команды, которые изменят вашу жизнь:</strong></p>
<ol>
<li><code>winget search chrome</code> — найти программу</li>
<li><code>winget install Google.Chrome</code> — установить программу</li>
<li><code>winget upgrade --all</code> — обновить все программы разом</li>
</ol>
<p><strong>Зачем это нужно:</strong></p>
<ul>
<li><strong>Экономия времени</strong> — новый компьютер настраивается за 10 минут вместо 3 часов</li>
<li><a href="https://it-apteka.com/avtomatizacija-ssl-dlja-desjatkov-domenov-cherez-acme-sh-i-dns-api-bez-certbot/" target="_blank" rel="noopener" data-wpil-monitor-id="866">Автоматизация — один скрипт</a> устанавливает всё необходимое</li>
<li><strong>Безопасность</strong> — программы из официального репозитория, никаких левых сайтов</li>
<li><strong>Обновления</strong> — <code>winget upgrade --all</code> раз в неделю, и весь софт актуальный</li>
<li><strong>Консистентность</strong> — одинаковая <a href="https://it-apteka.com/mikrotik-hap-obzor-vseh-modelej-harakteristiki-i-nastrojka-routera/" target="_blank" rel="noopener" data-wpil-monitor-id="2058">настройка на всех</a> компьютерах через export/import</li>
</ul>
<p><strong>Что обязательно попробовать:</strong></p>
<ul>
<li>Создайте скрипт установки вашего базового набора программ — сохраните его, и при следующей переустановке Windows скажете спасибо себе прошлому</li>
<li>Добавьте <code>winget upgrade --all</code> в Task Scheduler — программы будут обновляться автоматически</li>
<li>Используйте <code>winget export</code> перед переустановкой системы — восстановите весь софт одной командой</li>
</ul>
<p><strong>Главное правило:</strong> Если программа есть в winget (а там уже тысячи пакетов) — устанавливайте через winget. Это быстрее, безопаснее и удобнее, чем искать на сайте, скачивать и кликать Next-Next-Finish.</p>
<p>Winget — это не «ещё одна утилита», это новая философия работы с Windows. Философия, где системный администратор пишет код вместо того, чтобы кликать мышкой. Где разработчик разворачивает окружение за минуту вместо часа. Где пользователь обновляет все программы одной командой вместо 40 отдельных кликов.</p>
<p>Добро пожаловать в будущее. Будущее, где Windows наконец-то имеет нормальный пакетный менеджер.</p>
<p>Сохраните статью в закладки — в следующий раз, когда коллега будет час искать «где скачать официальный Python», просто скиньте ему одну строчку: <code>winget install Python.Python.3.12</code></p>
<p><strong>Следующая шпаргалка:</strong> Chocolatey и Scoop — альтернативные <a href="https://it-apteka.com/upravlenie-tremja-kompjuterami-s-odnoj-klaviatury-i-myshi/" data-wpil-monitor-id="339" target="_blank">пакетные менеджеры для Windows</a>.</p>
Ну раз вы тут, значит уже в теме: winget — это то, чего Windows ждала 30 лет. Пакетный менеджер от Microsoft, который устанавливает программы одной командой. Без Next-Next-Finish, без «скачать с официального сайта», без панелей инструментов и рекламы. Запустили PowerShell, написали winget install 7zip — готово.
Эта шпаргалка — для тех, кто устал кликать мышкой, хочет автоматизировать установку софта, развернуть новый компьютер за 10 минут одним скриптом и наконец почувствовать себя на Windows как на Linux с apt/dnf.
Концепция: почему winget — это революция для Windows
Как это было раньше (до winget)
Сценарий 1: Настройка нового компьютера
- Открываем браузер (Edge, потому что больше ничего нет)
- Гуглим «скачать Chrome»
- Кликаем на первую ссылку (надеемся, что это не реклама)
- Скачиваем ChromeSetup.exe
- Запускаем, жмём Next-Next-Install
- Гуглим «скачать 7-Zip»
- Повторяем п. 3-5
- Гуглим «скачать Visual Studio Code»
- Повторяем п. 3-5
- …40 программ спустя…
- Прошло 3 часа, кофе закончился, желание жить — тоже
Сценарий 2: На работе попросили поставить программу
- «Поставь мне Python»
- Идёте на python.org
- Там 15 версий, непонятно какую качать
- Скачиваете installer
- Забываете поставить галку «Add Python to PATH»
- Переустанавливаете
- Python не работает, потому что нужна другая версия
- Удаляете через Control Panel
- Повторяете п. 1-6 с правильной версией
- Проклинаете всё на свете
Как это с winget (сейчас)
Сценарий 1 (новый): Настройка компьютера
- Открываете PowerShell
- Пишете скрипт (один раз навсегда):
winget install Google.Chrome
winget install 7zip.7zip
winget install Microsoft.VisualStudioCode
winget install Git.Git
winget install VideoLAN.VLC
# ...и так далее
- Запускаете скрипт
- Идёте пить кофе
- Возвращаетесь — всё установлено
- Время: 10 минут (из них 9 минут — на кофе)
Сценарий 2 (новый): Установка программы
# "Поставь мне Python"
winget install Python.Python.3.12
# Готово. Python установлен, в PATH добавлен, версия правильная.
Почему это круто?
1. Прощай, Next-Next-Finish
Помните эти установщики, где нужно 15 раз нажать Next? Где нужно снять галку «Установить панель инструментов Mail.ru? Где в середине процесса внезапно предлагают антивирус McAfee?
Winget говорит всему этому: «Нет». Одна команда — программа установлена. Без вопросов, без рекламы, без сюрпризов.
2. Наконец-то как на Linux
Linux-админы смеялись над Windows 30 лет:
# Linux
sudo apt install nginx
# Windows (раньше)
# 1. Открыть браузер
# 2. Погуглить nginx
# 3. Найти официальный сайт
# 4. Скачать zip
# 5. Распаковать
# 6. Прочитать README
# 7. Настроить PATH вручную
# 8. Понять, что скачали не ту версию
# 9. Повторить п. 1-7
Теперь:
# Windows (с winget)
winget install nginx
Шах и мат, линуксоиды!
3. Обновления одной командой
Раньше каждая программа обновлялась по-своему:
- Chrome обновляется сам (иногда)
- Adobe Reader показывает popup каждый день
- Java требует перезагрузку
- WinRAR напоминает, что пора купить лицензию (уже 15 лет)
- Половина программ вообще не обновляется
С winget:
winget upgrade --all
Всё. Все программы обновлены. Можно идти домой.
4. Автоматизация для ленивых (и умных)
Вы системный администратор. У вас 50 новых компьютеров. Нужно на каждый поставить стандартный набор программ.
Раньше: 3 дня кликанья мышкой, RSI (repetitive strain injury), увольнение.
С winget: Один скрипт PowerShell, GPO или Intune, запустили — пошли обедать.
5. Нет больше «а где вы это скачали?»
Помните диалог:
- «Поставил программу, теперь компьютер тормозит»
- «А где скачали?»
- «Погуглил, первая ссылка»
- «Это был сайт с рекламой и вирусами. Вы скачали не 7-Zip, а 7-Zip-Pro-Crack-2024-Free.exe»
С winget программы берутся из официального репозитория Microsoft. Никаких левых сайтов, никаких вирусов, никаких сюрпризов.
6. Поиск программ не выходя из терминала
# Нужен архиватор? Ищем:
winget search archive
# Результат:
# 7zip.7zip
# WinRAR.WinRAR
# PeaZip.PeaZip
# ...
# Выбираем, устанавливаем
winget install 7zip.7zip
Не нужно гуглить, не нужно открывать браузер. Всё в терминале, как завещал Линус Торвальдс (хотя это Windows, но детали).
Когда использовать winget
Идеально подходит для:
Может быть неудобно для:
- Программ, которых нет в репозитории — редко, но бывает
- Когда нужны специфичные настройки установки — winget ставит с дефолтными параметрами
- Пользователям без прав администратора — winget требует админские права
- Windows 7/8.x — winget только для Windows 10 1809+ и Windows 11
Когда это использовать
Реальные кейсы:
- Новый компьютер/переустановка Windows — разворачиваете софт за 10 минут
- Рабочее место разработчика — Git, Node.js, Python, VSCode одной командой
- Серверная установка — устанавливаете утилиты без GUI
- Корпоративное развёртывание — массовая установка через GPO/Intune
- Портативные утилиты — быстро поставить 7-Zip, curl, wget на сервер
- Домашний компьютер — держите софт в актуальном состоянии
Ошибки новичков:
- Пытаются установить winget на Windows 7 — не работает
- Не запускают PowerShell от администратора — ошибки прав доступа
- Ищут программу по неправильному имени — используйте
winget search
- Забывают обновлять сам winget — старые версии могут глючить
- Не знают про
winget upgrade --all — обновляют программы вручную
- Паникуют, когда видят
--accept-source-agreements — это нормально
Быстрый старт
Проверка наличия winget (Windows 11 / Windows 10 свежие):
# Открываем PowerShell (Win+X → Windows PowerShell)
winget --version
# Вывод:
# v1.7.10582
Если команда найдена — winget уже установлен. Если нет — см. раздел «Установка winget».
Установка первой программы:
# Устанавливаем 7-Zip
winget install 7zip.7zip
# ИЛИ просто
winget install 7zip
Поиск программы:
# Ищем Chrome
winget search chrome
# Устанавливаем найденное
winget install Google.Chrome
Обновление всех программ:
# Список доступных обновлений
winget upgrade
# Обновить всё
winget upgrade --all
Удаление программы:
winget uninstall 7zip
Установка winget
Windows 11 — winget уже установлен
На Windows 11 winget установлен по умолчанию. Просто откройте PowerShell и используйте.
winget --version
Windows 10 — установка через Microsoft Store
Автоматическая установка (рекомендуется):
- Открываем Microsoft Store
- Ищем «App Installer»
- Устанавливаем/обновляем
- Перезапускаем PowerShell
- Проверяем:
winget --version
Требования:
- Windows 10 версия 1809 (build 17763) или новее
- Microsoft Store должен быть доступен
- App Installer установлен
Windows 10 — установка вручную (без Microsoft Store)
Способ 1: Скачать установщик напрямую
- Идём на GitHub:
https://github.com/microsoft/winget-cli/releases
- Скачиваем последний
Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
- Запускаем, устанавливаем
- Перезапускаем PowerShell
Способ 2: Через PowerShell (скрипт установки)
# Запускаем PowerShell от администратора
# Скачиваем установщик
$progressPreference = 'silentlyContinue'
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile $env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# Устанавливаем
Add-AppxPackage -Path $env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
# Проверяем
winget --version
Обновление winget
# Способ 1: Через Microsoft Store
# Открываем Store → Library → Updates → Update All
# Способ 2: Через winget (да, winget обновляет сам себя)
winget upgrade Microsoft.AppInstaller
# ИЛИ обновить всё включая winget
winget upgrade --all
Проверка версии и обновлений
# Текущая версия
winget --version
# Информация о winget
winget --info
# Вывод:
# Windows Package Manager v1.7.10582
# Copyright (c) Microsoft Corporation. All rights reserved.
# ...
Основные команды winget
winget search — поиск программ
# Поиск по названию
winget search chrome
# Поиск точного совпадения
winget search --name "Google Chrome"
# Поиск по ID
winget search --id Google.Chrome
# Поиск по тегам
winget search --tag browser
# Поиск всех программ от издателя
winget search --publisher Microsoft
# Точное совпадение (без частичного поиска)
winget search --exact chrome
Вывод поиска:
Name Id Version Source
-------------------------------------------------------
Google Chrome Google.Chrome 121.0... winget
Chromium Hibbiki.Chromium 121.0 winget
Microsoft Edge Microsoft.Edge 121.0 winget
winget install — установка программ
# Установка по имени
winget install Chrome
# Установка по ID (рекомендуется)
winget install Google.Chrome
# Установка конкретной версии
winget install Google.Chrome --version 120.0.6099.130
# Установка с принятием соглашений (без интерактивности)
winget install 7zip --accept-package-agreements --accept-source-agreements
# Интерактивная установка (откроется GUI installer)
winget install Google.Chrome --interactive
# Тихая установка (без вопросов)
winget install 7zip --silent
# Установка из конкретного источника
winget install Google.Chrome --source winget
# Установка с override параметрами
winget install Python.Python.3.12 --override '/quiet PrependPath=1'
winget upgrade — обновление программ
# Список доступных обновлений
winget upgrade
# Обновить конкретную программу
winget upgrade Google.Chrome
# Обновить всё
winget upgrade --all
# Обновить всё с принятием соглашений (для автоматизации)
winget upgrade --all --accept-package-agreements --accept-source-agreements
# Обновить всё, включая программы с неизвестными версиями
winget upgrade --all --include-unknown
# Обновить только конкретный источник
winget upgrade --all --source winget
winget uninstall — удаление программ
# Удаление по имени
winget uninstall Chrome
# Удаление по ID
winget uninstall Google.Chrome
# Тихое удаление
winget uninstall 7zip --silent
# Интерактивное удаление (откроется стандартный uninstaller)
winget uninstall Google.Chrome --interactive
winget list — список установленных программ
# Все установленные программы
winget list
# Поиск установленной программы
winget list chrome
# Список программ, установленных через winget
winget list --source winget
# Только программы с доступными обновлениями
winget list --upgrade-available
winget show — информация о программе
# Подробная информация
winget show Google.Chrome
# Вывод:
# Found Google Chrome [Google.Chrome]
# Version: 121.0.6167.185
# Publisher: Google LLC
# Description: A fast, secure, and free web browser...
# Homepage: https://www.google.com/chrome/
# License: Proprietary
# ...
winget source — управление источниками
# Список источников
winget source list
# Обновить источники (аналог apt update)
winget source update
# Сброс источников (если что-то сломалось)
winget source reset
# Добавить кастомный источник (для корпоративных репозиториев)
winget source add --name "CompanyRepo" --arg "https://repo.company.com" --type "Microsoft.Rest"
# Удалить источник
winget source remove --name "CompanyRepo"
winget export / import — экспорт/импорт списка программ
# Экспорт списка установленных программ в JSON
winget export --output apps.json
# Импорт (установка) программ из JSON
winget import --import-file apps.json
# Импорт с принятием соглашений (для автоматизации)
winget import --import-file apps.json --accept-package-agreements --accept-source-agreements
# Игнорировать недоступные программы
winget import --import-file apps.json --ignore-unavailable
# Игнорировать версии (устанавливать последние)
winget import --import-file apps.json --ignore-versions
Пример apps.json:
{
"$schema": "https://aka.ms/winget-packages.schema.2.0.json",
"Sources": [
{
"Packages": [
{
"PackageIdentifier": "Google.Chrome"
},
{
"PackageIdentifier": "7zip.7zip"
},
{
"PackageIdentifier": "Microsoft.VisualStudioCode"
}
],
"SourceDetails": {
"Name": "winget"
}
}
]
}
Популярные программы для установки через winget
Браузеры
# Google Chrome
winget install Google.Chrome
# Mozilla Firefox
winget install Mozilla.Firefox
# Microsoft Edge (обычно уже установлен)
winget install Microsoft.Edge
# Brave
winget install Brave.Brave
# Opera
winget install Opera.Opera
# Vivaldi
winget install VivaldiTechnologies.Vivaldi
Инструменты разработки
# Visual Studio Code
winget install Microsoft.VisualStudioCode
# Git
winget install Git.Git
# Python 3.12
winget install Python.Python.3.12
# Node.js LTS
winget install OpenJS.NodeJS.LTS
# Node.js Current
winget install OpenJS.NodeJS
# Docker Desktop
winget install Docker.DockerDesktop
# Postman
winget install Postman.Postman
# DBeaver (SQL клиент)
winget install dbeaver.dbeaver
# Notepad++
winget install Notepad++.Notepad++
# Sublime Text
winget install SublimeHQ.SublimeText.4
# IntelliJ IDEA Community
winget install JetBrains.IntelliJIDEA.Community
# Visual Studio 2022 Community
winget install Microsoft.VisualStudio.2022.Community
# Android Studio
winget install Google.AndroidStudio
# JDK (OpenJDK)
winget install Microsoft.OpenJDK.17
Утилиты и инструменты
# 7-Zip
winget install 7zip.7zip
# WinRAR
winget install RARLab.WinRAR
# Everything (поиск файлов)
winget install voidtools.Everything
# PowerToys (утилиты Microsoft)
winget install Microsoft.PowerToys
# ShareX (скриншоты)
winget install ShareX.ShareX
# Greenshot (скриншоты)
winget install Greenshot.Greenshot
# Sysinternals Suite
winget install Microsoft.Sysinternals.Suite
# Process Explorer
winget install Microsoft.Sysinternals.ProcessExplorer
# CPU-Z
winget install CPUID.CPU-Z
# GPU-Z
winget install TechPowerUp.GPU-Z
# CrystalDiskInfo (состояние дисков)
winget install CrystalDewWorld.CrystalDiskInfo
# Rufus (создание загрузочных USB)
winget install Rufus.Rufus
# Ventoy (мультизагрузочный USB)
winget install Ventoy.Ventoy
# Balena Etcher
winget install Balena.Etcher
# WinSCP
winget install WinSCP.WinSCP
# PuTTY
winget install PuTTY.PuTTY
# FileZilla
winget install TimKosse.FileZilla.Client
# KeePass (менеджер паролей)
winget install KeePassXCTeam.KeePassXC
# Bitwarden
winget install Bitwarden.Bitwarden
# 1Password
winget install AgileBits.1Password
Мультимедиа
# VLC Media Player
winget install VideoLAN.VLC
# Spotify
winget install Spotify.Spotify
# AIMP (аудиоплеер)
winget install AIMP.AIMP
# OBS Studio (стриминг)
winget install OBSProject.OBSStudio
# Audacity
winget install Audacity.Audacity
# GIMP
winget install GIMP.GIMP
# Inkscape
winget install Inkscape.Inkscape
# Blender
winget install BlenderFoundation.Blender
# HandBrake (конвертер видео)
winget install HandBrake.HandBrake
# FFmpeg
winget install Gyan.FFmpeg
Коммуникация
# Discord
winget install Discord.Discord
# Telegram
winget install Telegram.TelegramDesktop
# Slack
winget install SlackTechnologies.Slack
# Zoom
winget install Zoom.Zoom
# Microsoft Teams
winget install Microsoft.Teams
# Skype
winget install Microsoft.Skype
# WhatsApp
winget install WhatsApp.WhatsApp
Офисные программы
# LibreOffice
winget install TheDocumentFoundation.LibreOffice
# Adobe Acrobat Reader
winget install Adobe.Acrobat.Reader.64-bit
# Foxit PDF Reader
winget install Foxit.FoxitReader
# Sumatra PDF
winget install SumatraPDF.SumatraPDF
# Notion
winget install Notion.Notion
# Obsidian
winget install Obsidian.Obsidian
Системные утилиты
# Windows Terminal
winget install Microsoft.WindowsTerminal
# PowerShell 7
winget install Microsoft.PowerShell
# Oh My Posh (кастомизация терминала)
winget install JanDeDobbeleer.OhMyPosh
# Chocolatey (альтернативный пакетный менеджер)
winget install Chocolatey.Chocolatey
# NSSM (Non-Sucking Service Manager)
winget install NSSM.NSSM
# Wireshark
winget install WiresharkFoundation.Wireshark
# Nmap
winget install Insecure.Nmap
# Angry IP Scanner
winget install angryziber.AngryIPScanner
# TeamViewer
winget install TeamViewer.TeamViewer
# AnyDesk
winget install AnyDeskSoftwareGmbH.AnyDesk
Продвинутые техники и автоматизация
Скрипт установки софта на новый компьютер
# install-essentials.ps1
# Скрипт установки базового набора программ
# Браузер
winget install Google.Chrome --accept-package-agreements --accept-source-agreements
# Инструменты разработки
winget install Microsoft.VisualStudioCode --silent
winget install Git.Git --silent
winget install Python.Python.3.12 --silent
winget install OpenJS.NodeJS.LTS --silent
# Утилиты
winget install 7zip.7zip --silent
winget install Microsoft.PowerToys --silent
winget install voidtools.Everything --silent
# Мультимедиа
winget install VideoLAN.VLC --silent
winget install Spotify.Spotify --silent
# Коммуникация
winget install Discord.Discord --silent
winget install Telegram.TelegramDesktop --silent
# Системное
winget install Microsoft.WindowsTerminal --silent
winget install Microsoft.PowerShell --silent
Write-Host "Installation complete!" -ForegroundColor Green
Запуск:
# Запускаем PowerShell от администратора
.\install-essentials.ps1
Скрипт обновления всех программ
# update-all.ps1
# Обновление всех программ через winget
Write-Host "Checking for updates..." -ForegroundColor Yellow
# Обновляем источники
winget source update
# Показываем список обновлений
winget upgrade
# Обновляем всё
winget upgrade --all --accept-package-agreements --accept-source-agreements --include-unknown
Write-Host "All updates installed!" -ForegroundColor Green
Добавляем в Task Scheduler для автоматического запуска раз в неделю:
# Создаём задачу в планировщике
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\update-all.ps1"
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At 3am
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -TaskName "Winget Auto Update" -Action $action -Trigger $trigger -Principal $principal
Условная установка (проверка перед установкой)
# Устанавливаем только если программа ещё не установлена
$apps = @(
"Google.Chrome",
"7zip.7zip",
"Microsoft.VisualStudioCode"
)
foreach ($app in $apps) {
$installed = winget list --id $app --exact
if ($installed -like "*No installed package found*") {
Write-Host "Installing $app..." -ForegroundColor Yellow
winget install $app --silent --accept-package-agreements --accept-source-agreements
} else {
Write-Host "$app already installed" -ForegroundColor Green
}
}
Экспорт и восстановление конфигурации
# 1. На старом компьютере - экспортируем список
winget export --output "C:\Backup\my-apps.json"
# 2. Копируем my-apps.json на новый компьютер
# 3. На новом компьютере - импортируем
winget import --import-file "C:\Backup\my-apps.json" --accept-package-agreements --accept-source-agreements --ignore-unavailable
Интеграция с PowerShell Profile
Добавляем алиасы и функции в PowerShell profile:
# Открываем профиль
notepad $PROFILE
# Если файл не существует:
New-Item -Path $PROFILE -Type File -Force
notepad $PROFILE
Добавляем:
# Алиасы для winget
function wg-search { winget search $args }
function wg-install { winget install $args --accept-package-agreements --accept-source-agreements }
function wg-update { winget upgrade --all --accept-package-agreements --accept-source-agreements }
function wg-list { winget list $args }
Set-Alias -Name wgs -Value wg-search
Set-Alias -Name wgi -Value wg-install
Set-Alias -Name wgu -Value wg-update
Set-Alias -Name wgl -Value wg-list
Теперь можно использовать короткие команды:
wgs chrome # winget search chrome
wgi 7zip # winget install 7zip
wgu # winget upgrade --all
wgl # winget list
Скрипт удаления bloatware
# remove-bloatware.ps1
# Удаление ненужных предустановленных приложений Windows
$bloatware = @(
"Microsoft.BingWeather",
"Microsoft.GetHelp",
"Microsoft.Getstarted",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.People",
"Microsoft.WindowsFeedbackHub",
"Microsoft.Xbox.TCUI",
"Microsoft.XboxApp",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo"
)
foreach ($app in $bloatware) {
Write-Host "Removing $app..." -ForegroundColor Yellow
winget uninstall $app --silent
Get-AppxPackage $app -AllUsers | Remove-AppxPackage
}
Write-Host "Bloatware removed!" -ForegroundColor Green
Массовая установка для разработчиков
# dev-setup.ps1
# Полная настройка окружения разработчика
$devTools = @{
"Editors" = @(
"Microsoft.VisualStudioCode",
"Notepad++.Notepad++",
"JetBrains.IntelliJIDEA.Community"
)
"Version Control" = @(
"Git.Git",
"GitHub.GitHubDesktop",
"TortoiseGit.TortoiseGit"
)
"Languages" = @(
"Python.Python.3.12",
"OpenJS.NodeJS.LTS",
"Microsoft.OpenJDK.17",
"GoLang.Go"
)
"Containers" = @(
"Docker.DockerDesktop",
"Kubernetes.kubectl"
)
"Database Tools" = @(
"dbeaver.dbeaver",
"PostgreSQL.PostgreSQL.15"
)
"API Tools" = @(
"Postman.Postman",
"Insomnia.Insomnia"
)
"Terminal" = @(
"Microsoft.WindowsTerminal",
"Microsoft.PowerShell",
"JanDeDobbeleer.OhMyPosh"
)
}
foreach ($category in $devTools.Keys) {
Write-Host "`n=== Installing $category ===" -ForegroundColor Cyan
foreach ($app in $devTools[$category]) {
Write-Host "Installing $app..." -ForegroundColor Yellow
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
Write-Host "`nDevelopment environment ready!" -ForegroundColor Green
Интеграция с корпоративной средой
Развёртывание через GPO (Group Policy)
Создание скрипта запуска:
# company-software.ps1
# Скрипт для GPO
$companyApps = @(
"Google.Chrome",
"Adobe.Acrobat.Reader.64-bit",
"Microsoft.Teams",
"7zip.7zip"
)
foreach ($app in $companyApps) {
$installed = winget list --id $app --exact 2>&1
if ($installed -like "*No installed package found*") {
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
Настройка GPO:
- Открываем Group Policy Management
- Создаём новую GPO или редактируем существующую
- Computer Configuration → Policies → Windows Settings → Scripts → Startup
- Добавляем PowerShell скрипт
- Применяем к нужным OU
Интеграция с Microsoft Intune
Создание Win32 приложения для установки через winget:
- Создаём PowerShell скрипт установки
- Конвертируем в .intunewin формат
- Загружаем в Intune
- Назначаем на группы пользователей/устройств
Пример скрипта для Intune:
# install.ps1
$app = "Google.Chrome"
winget install $app --silent --accept-package-agreements --accept-source-agreements
exit 0
# detect.ps1
$app = "Google.Chrome"
$installed = winget list --id $app --exact 2>&1
if ($installed -notlike "*No installed package found*") {
Write-Output "Installed"
exit 0
} else {
exit 1
}
Корпоративный репозиторий winget
Создание собственного источника пакетов для внутреннего использования:
- Настраиваем REST API сервер
- Добавляем источник в winget:
winget source add --name "CompanyApps" --arg "https://apps.company.com" --type "Microsoft.Rest"
- Устанавливаем из корпоративного репозитория:
winget install CompanyApp --source CompanyApps
Частые проблемы и решения
Ошибка: «winget is not recognized»
Причина: winget не установлен или PATH не настроен.
Решение:
# Проверяем наличие App Installer
Get-AppxPackage Microsoft.DesktopAppInstaller
# Если нет - устанавливаем через Microsoft Store
# ИЛИ скачиваем с GitHub (см. раздел "Установка winget")
# Перезапускаем PowerShell после установки
Ошибка: «Failed in attempting to update source: winget»
Причина: Проблемы с источниками winget.
Решение:
# Сбрасываем источники
winget source reset --force
# Обновляем источники
winget source update
# Если не помогло - переустанавливаем App Installer
Ошибка: «This application requires administrator privileges»
Решение:
- Запускаем PowerShell от администратора: Win+X → Windows PowerShell (Admin)
- Выполняем команду winget
Ошибка: «No applicable installer was found»
Причины:
Решение:
# Проверяем информацию о программе
winget show PROGRAM_ID
# Пробуем установить интерактивно (откроет GUI installer)
winget install PROGRAM_ID --interactive
Ошибка: Программа установилась, но не работает
Причина: PATH не обновлён в текущей сессии.
Решение:
# Перезапускаем PowerShell
# ИЛИ обновляем PATH вручную
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Ошибка: «Multiple installed packages found»
Причина: Установлено несколько версий программы.
Решение:
# Список всех версий
winget list PROGRAM_NAME
# Удаляем конкретную версию по ID
winget uninstall --id EXACT_PROGRAM_ID
# ИЛИ используем точный ID при установке
winget install --id EXACT_PROGRAM_ID
Winget медленно работает
Решение:
# Очищаем кеш
winget source reset --force
# Отключаем прогресс-бар (быстрее для скриптов)
$ProgressPreference = 'SilentlyContinue'
winget install APP_ID
Полезные хаки и трюки
Быстрая установка без подтверждений
# Создаём функцию для быстрой установки
function Quick-Install {
param($app)
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
# Использование
Quick-Install Google.Chrome
Quick-Install 7zip
Поиск всех программ от издателя
# Все программы Microsoft
winget search --publisher Microsoft
# Все программы Google
winget search --publisher Google
Установка нескольких программ одной командой
# Через цикл
@("Google.Chrome", "7zip.7zip", "Microsoft.VisualStudioCode") | ForEach-Object {
winget install $_ --silent --accept-package-agreements --accept-source-agreements
}
# ИЛИ через функцию
function Install-Multiple {
param([string[]]$apps)
foreach ($app in $apps) {
winget install $app --silent --accept-package-agreements --accept-source-agreements
}
}
Install-Multiple -apps "Google.Chrome","7zip","Git.Git"
Проверка доступности программы перед установкой
function Test-WingetPackage {
param($PackageId)
$result = winget search --id $PackageId --exact
if ($result -like "*No package found*") {
Write-Host "Package $PackageId not found in winget" -ForegroundColor Red
return $false
} else {
Write-Host "Package $PackageId found" -ForegroundColor Green
return $true
}
}
# Использование
if (Test-WingetPackage "Google.Chrome") {
winget install Google.Chrome
}
Логирование установок
# Установка с логированием
$logFile = "C:\Logs\winget-install-$(Get-Date -Format 'yyyyMMdd-HHmmss').log"
Start-Transcript -Path $logFile
winget install Google.Chrome --silent --accept-package-agreements --accept-source-agreements
winget install 7zip --silent --accept-package-agreements --accept-source-agreements
Stop-Transcript
Write-Host "Log saved to: $logFile"
Создание меню выбора программ
# install-menu.ps1
$apps = @{
"1" = @{Name = "Google Chrome"; Id = "Google.Chrome"}
"2" = @{Name = "Firefox"; Id = "Mozilla.Firefox"}
"3" = @{Name = "7-Zip"; Id = "7zip.7zip"}
"4" = @{Name = "VS Code"; Id = "Microsoft.VisualStudioCode"}
"5" = @{Name = "VLC"; Id = "VideoLAN.VLC"}
}
Write-Host "`n=== Installation Menu ===" -ForegroundColor Cyan
foreach ($key in $apps.Keys | Sort-Object) {
Write-Host "$key. $($apps[$key].Name)"
}
Write-Host "0. Install All"
Write-Host "Q. Quit"
$choice = Read-Host "`nEnter choice"
if ($choice -eq "0") {
foreach ($app in $apps.Values) {
Write-Host "Installing $($app.Name)..." -ForegroundColor Yellow
winget install $app.Id --silent --accept-package-agreements --accept-source-agreements
}
} elseif ($apps.ContainsKey($choice)) {
Write-Host "Installing $($apps[$choice].Name)..." -ForegroundColor Yellow
winget install $apps[$choice].Id --silent --accept-package-agreements --accept-source-agreements
} elseif ($choice -eq "Q") {
exit
} else {
Write-Host "Invalid choice" -ForegroundColor Red
}
Краткий чек-лист
Установка и проверка:
- ☐ Winget установлен:
winget --version
- ☐ Версия актуальна:
winget upgrade Microsoft.AppInstaller
- ☐ Источники обновлены:
winget source update
Базовое использование:
- ☐ Поиск:
winget search НАЗВАНИЕ
- ☐ Установка:
winget install ID
- ☐ Список установленного:
winget list
- ☐ Обновление всего:
winget upgrade --all
Автоматизация:
- ☐ Создан скрипт установки базового софта
- ☐ Создан скрипт обновления (можно в Task Scheduler)
- ☐ Экспортирован список программ:
winget export
- ☐ Настроены алиасы в PowerShell Profile (опционально)
Корпоративное использование:
- ☐ GPO скрипт создан (если применимо)
- ☐ Intune пакеты подготовлены (если применимо)
- ☐ Корпоративный репозиторий настроен (если нужен)
Полезные команды:
- ☐
winget search chrome — поиск
- ☐
winget install Google.Chrome — установка
- ☐
winget upgrade --all — обновить всё
- ☐
winget list — список установленного
- ☐
winget show Google.Chrome — информация
- ☐
winget export apps.json — экспорт списка
- ☐
winget import apps.json — импорт списка
Резюме
Winget — это то, что превращает Windows из «кликай мышкой 3 часа» в «написал команду, попил кофе, готово. Это официальный пакетный менеджер от Microsoft, который работает из коробки на Windows 10/11 и делает установку софта такой же простой, как на Linux.
Три команды, которые изменят вашу жизнь:
winget search chrome — найти программу
winget install Google.Chrome — установить программу
winget upgrade --all — обновить все программы разом
Зачем это нужно:
- Экономия времени — новый компьютер настраивается за 10 минут вместо 3 часов
- Автоматизация — один скрипт устанавливает всё необходимое
- Безопасность — программы из официального репозитория, никаких левых сайтов
- Обновления —
winget upgrade --all раз в неделю, и весь софт актуальный
- Консистентность — одинаковая настройка на всех компьютерах через export/import
Что обязательно попробовать:
- Создайте скрипт установки вашего базового набора программ — сохраните его, и при следующей переустановке Windows скажете спасибо себе прошлому
- Добавьте
winget upgrade --all в Task Scheduler — программы будут обновляться автоматически
- Используйте
winget export перед переустановкой системы — восстановите весь софт одной командой
Главное правило: Если программа есть в winget (а там уже тысячи пакетов) — устанавливайте через winget. Это быстрее, безопаснее и удобнее, чем искать на сайте, скачивать и кликать Next-Next-Finish.
Winget — это не «ещё одна утилита», это новая философия работы с Windows. Философия, где системный администратор пишет код вместо того, чтобы кликать мышкой. Где разработчик разворачивает окружение за минуту вместо часа. Где пользователь обновляет все программы одной командой вместо 40 отдельных кликов.
Добро пожаловать в будущее. Будущее, где Windows наконец-то имеет нормальный пакетный менеджер.
Сохраните статью в закладки — в следующий раз, когда коллега будет час искать «где скачать официальный Python», просто скиньте ему одну строчку: winget install Python.Python.3.12
Следующая шпаргалка: Chocolatey и Scoop — альтернативные пакетные менеджеры для Windows.