У каждого компьютера есть скучная обязанность, о которой вспоминают слишком поздно: десятки установленных программ стареют, копят уязвимости и мелкие глюки. В Windows 11 эту рутину почти целиком можно снять с плеч: встроенный менеджер пакетов winget покажет список устаревших программ и обновит их одной командой, а для любителей мыши есть наглядный бесплатный помощник. Дальше по порядку: что система обновляет сама, что стоит доверить расписанию и планировщику задач и где лучше не доверять автоматизации.
Программы, которые Windows 11 обновляет сама без напоминаний
Часть работы уже идёт без вашего участия. Microsoft Store по умолчанию обновляет свои пакеты в фоне: приложения из магазина подтягивают новые версии сами, поэтому почти никогда не числятся устаревшими. Управляется это в два клика: откройте Microsoft Store → значок профиля в правом верхнем углу → Параметры → переключатель "Обновлять приложения автоматически". Рядом в разделе Библиотека лежит кнопка Получить обновления для немедленной проверки. Если фоновая самостоятельность магазина не нравится, тот же переключатель её выключает.
Вторая группа тихих тружеников – браузеры и защитники. Chrome, Edge, Firefox и Opera обновляются собственными механизмами, то же делают антивирусные пакеты и облачные клиенты. Они просто не дают себе состариться, поэтому в списках кандидатов на обновление появляются редко. У каждого приложения своя политика: кто-то ждёт команды, а кто-то живёт по принципу "сначала обновлюсь, потом покажу". Всё остальное, поставленное классическими установщиками, и есть территория winget, у которого два источника: собственный репозиторий и магазин Microsoft Store.
Зачем вообще гнаться за свежими версиями? Обновления закрывают уязвимости, чинят совместимость с новыми форматами файлов и несут приятные функции. Устаревшая программа – дверь, которую забыли запереть: известная брешь в ней живёт месяцами.
Список устаревших программ командой upgrade в Терминале
winget встроен в Windows 11 и приходит вместе с приложением "Установщик приложений" из магазина. Проверка занимает секунду: откройте Пуск → Терминал, лучше сразу с правами администратора, для этого щёлкните по найденному значку правой кнопкой и выберите Запуск от имени администратора. Введите команду:
winget --version
После нажатия Enter терминал напечатает номер версии. Если вместо него выпало сообщение о неизвестной команде, откройте Microsoft Store → Библиотека → Получить обновления и дождитесь обновления "Установщика приложений".
Дальше идёт главный список. Введите:
winget upgrade
Через несколько секунд появится таблица: название программы, её идентификатор, установленная версия и доступная. Каждая строка – кандидат на обновление, а длина таблицы честно показывает масштаб работ. Если терминал спросит о согласии с условиями источников, ответьте Y, это разовый вопрос. У команды есть псевдоним update, так что winget update выведет то же самое. Командой winget list можно увидеть вообще все установленные программы, включая те, что обновления не ждут.
Нюанс, который стоит знать заранее: winget видит не всё. Программы, распакованные в папку без установки, и редкие утилиты могут остаться за кадром, потому что системе неоткуда взять сведения об их версии. Это не поломка, а плата за порядок: обновляется то, что установлено по правилам.
Пустая таблица – хорошая новость: значит, всё свежее. Но каталоги пополняются ежедневно, и завтра в списке появятся новые строки. Все команды одинаково работают в PowerShell и в классической командной строке.
Массовая установка обновлений и программы без номера версии
Когда список изучен, всё скопом обновляет одна команда:
winget upgrade --all
Терминал по очереди скачает и поставит обновления для каждой строки, показывая прогресс. Вопросы о лицензиях убирают два флага, а окна установщиков прячет --silent:
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
В тихом режиме установщики не задают вопросов и не ждут нажатий, что для массового прогона удобнее. Опция --allow-reboot разрешает перезагрузку, если обновление её требует; на рабочем дне её лучше не включать, иначе можно потерять несохранённый документ. По умолчанию winget вызывает штатный установщик, и тот сам решает, удалять ли прежнюю версию или поставить новую рядом; принудительное удаление старой версии включает флаг --uninstall-previous.
Особый случай – программы без определяемой версии: некоторые установщики не сообщают номер, и winget считает их "всегда последними", поэтому по умолчанию пропускает. Включает их в работу флаг --include-unknown:
winget upgrade --all --include-unknown
Слепой прогон всего подряд – инструмент с характером. Обновление может привезти новый интерфейс, переехавшие кнопки и переименованные пункты, и привычки дадут сбой в самый неподходящий момент. Хочется мягче – обновляйте несколько конкретных программ одной строкой через пробел или по одной командой winget upgrade --id, подставив идентификатор из таблицы.
За кадром остаётся и забота о самих файлах. Перед установкой пакет проходит проверку контрольной суммы: если скачанный файл не совпал с эталоном, установка отменяется, это защита от подделок. Если одна программа отказалась обновляться, остальные всё равно доустановятся, а упрямую строку повторяют отдельной командой.
Перенос списка программ на новый компьютер через файл JSON
Самая недооценённая пара команд экономит целый вечер при переезде на новый ПК или после переустановки системы. Команда export выгружает перечень установленных программ в файл JSON:
winget export -o D:\Backup\programs.json
В выбранной папке появится файл с разделами Sources и Packages: внутри перечислены идентификаторы пакетов, а при желании и их версии. Строки с PackageIdentifier как раз и редактируют под себя: файл открывается в обычном блокноте, и лишние программы удаляются целиком, чтобы импорт не ставил ненужное. Без флага --include-versions в файл попадут только имена, и на новом компьютере установятся свежие версии; с флагом запишутся и текущие номера.
На новом компьютере остаётся скопировать файл и ввести:
winget import -i D:\Backup\programs.json --ignore-unavailable
Установщик пройдёт по списку и по очереди поставит программы, сообщая о каждой. Флаг --ignore-unavailable гасит ошибки, если какой-то пакет из списка больше недоступен, а --ignore-versions велит игнорировать записанные версии и брать новейшие. Уже установленные программы не дублируются. Предупреждения о неподходящих пакетах – норма: то, для чего нет манифеста, пропускается с пометкой. Помните: экспорт хранит список, а не сами программы, поэтому держите файл в резервной копии вместе с документами.
Плановое обновление по расписанию и его отключение настройкой
Сам по себе winget фоновой службы не имеет: пока команда не введена или задача не создана, ничего не обновляется. Автоматику добавляет встроенный в Windows Планировщик задач. Настройка занимает пару минут:
- Откройте Пуск → Планировщик задач и в панели справа выберите Создать задачу;
- На вкладке Общие придумайте имя вроде "Ночное обновление программ" и отметьте флажок Выполнять с наивысшими правами;
- На вкладке Триггеры нажмите Создать и назначьте ежедневный запуск на время, когда компьютер обычно включён;
- На вкладке Действия нажмите Создать и в поле Программа или сценарий укажите путь %LOCALAPPDATA%\Microsoft\WindowsApps\winget.exe;
- В поле Добавить аргументы введите строку upgrade --all --silent --accept-package-agreements --accept-source-agreements;
- На вкладке Условия проверьте флажок Запускать задачу только при питании от электросети: на ноутбуке от батареи задача молча пропустится.
Там же на вкладке Условия есть флажок Разбудить компьютер для выполнения этой задачи. Для первой проверки запустите задачу вручную: правый клик по задаче → Выполнить. После сохранения терминал по расписанию невидимо пробегает по списку обновлений, и утром таблица после winget upgrade оказывается короче или пустой. Если что-то пошло не так, папку с журналами открывает опция --open-logs у любой команды winget.
А вот отключение автовыполнения устроено даже проще, чем включение. Планировщик задач → Библиотека планировщика задач → правый клик по задаче → Отключить, и фоновые обновления замирают до лучших времён; пункт Удалить убирает задачу насовсем. Магазин переключается тем же тумблером из первого раздела, а сторонние утилиты подчиняются собственным настройкам. У каждого звена автоматизации есть выключатель, до которого можно дотянуться за секунды.
Диагностика тоже несложная: в библиотеке планировщика есть колонка Последний результат запуска, и код 0 в ней означает, что ночной прогон отработал без ошибок. Если там другое число, откройте журнал winget и посмотрите, на какой программе он споткнулся: обычно хватает повторного запуска задачи.
Patch My PC Home Updater для тех, кто не любит командную строку
Есть путь и без терминала. У Patch My PC два лица: корпоративная платформа для централизованного обновления парка компьютеров и бесплатная домашняя редакция Home Updater для обычных пользователей. Вторая ставится с сайта разработчика за минуту, сканирует установленные программы и рисует картину прямо в окне: устаревшие подсвечены красным, актуальные зелёным. Отмечаете нужное галочками, жмёте кнопку запуска, и утилита сама скачивает и ставит свежие версии, не задавая вопросов.
Внутри знакомые по планировщику идеи: автозапуск вместе с Windows, автоматическая проверка при старте и создание плановой задачи для регулярных прогонов. Для полного ручного контроля эти галочки снимаются, и утилита превращается в наглядный справочник: открыли раз в неделю, посмотрели, что устарело, решили сами. Каталог здесь собственный и частично пересекается с базой winget: одна утилита замечает то, чего не видит другая, поэтому связка из двух инструментов покрывает больше программ, чем каждый по отдельности.
Если какая-то программа не обновилась с первого раза, повторный запуск обычно доводит дело до конца: часть установщиков требует, чтобы старая версия сначала закрылась. Утилита ведёт и собственный журнал, по которому видно, что именно она ставила и когда.
Пределы автоматизации и программы, требующие ручного контроля
Слепое обновление всего подряд несёт конкретные риски. Новая версия может принести регрессию: функция, на которой построен рабочий процесс, сломается или переедет. Интерфейсы меняются без спроса, кнопки перекочёвывают, горячие клавиши переназначаются. Профессиональные пакеты чувствительнее прочих: графические редакторы, программы монтажа, САПР и звуковые станции живут в связке с плагинами, и после обновления хоста плагины порой отказываются запускаться. В бухгалтерских и инженерных программах обновление иногда тянет за собой смену формата файлов, и старые версии их уже не открывают.
Для таких программ работает дозирующая стратегия: обновлять по одной и читать, что пишет установщик. Точечная команда выглядит так:
winget upgrade --id Microsoft.PowerToys -e
Флаг -e требует точного совпадения идентификатора, чтобы система не спутала программы с похожими названиями. Если новая версия не подошла, прежнюю возвращают повторной установкой с флагом --version и нужным номером. А чтобы массовый прогон вообще не трогал критичную программу, её фиксируют командой winget pin add с идентификатором в аргументах: закреплённые строки обычное обновление пропускает, а жёсткая фиксация с флагом --blocking запрещает обновление даже явной командой.
Ещё недавно обновление программ означало вечер с браузером: десяток сайтов, десяток установщиков, кнопка Далее до онемения пальцев. Сегодня тот же объём работы сжимается до одной строки в терминале или пары кликов в окне утилиты.
Рабочая схема выглядит сбалансированно. Домашнему компьютеру подходит максимум автоматизации: список раз в неделю, ночное обновление по расписанию, магазин и браузеры на самообслуживании. Рабочей машине нужен дозированный режим: безобидные утилиты обновляются точечно, профессиональные пакеты – после проверки, критичные версии под фиксацией. Windows 11 умеет обновлять программы почти без вашего участия, и вопрос теперь только в том, какие решения вы готовы делегировать машине, а какие оставите себе.