Современные версии Windows предлагают всё больше инструментов для автоматизации настройки системы. Один из самых удобных способов быстро развернуть набор приложений — использование Winget (Windows Package Manager) в сочетании с PowerShell. В этой статье рассмотрим, как с помощью этих инструментов автоматизировать установку программ, обновления и даже создание собственных установочных скриптов.
Что такое Winget
Winget — это официальный менеджер пакетов от Microsoft, встроенный в Windows 11 и доступный для Windows 10. Он позволяет устанавливать, обновлять и удалять приложения напрямую из командной строки. Принцип работы схож с Linux-пакетными менеджерами вроде apt или yum, что делает его особенно удобным для системных администраторов и разработчиков.
Пример простой команды установки:
winget install Microsoft.VisualStudioCode
Winget сам находит нужный пакет в официальном репозитории и устанавливает его без участия пользователя.
Преимущества использования Winget
– Упрощает развёртывание новых рабочих станций.
– Позволяет создать единый скрипт установки нужных программ.
– Поддерживает обновления без необходимости ручного скачивания установщиков.
– Идеально подходит для DevOps, IT-отделов и домашних энтузиастов.
Комбинирование Winget с PowerShell
PowerShell — мощный инструмент сценарной автоматизации, а Winget идеально в него интегрируется. Вместе они позволяют создавать полноценные скрипты для массовой установки и обновления ПО.
Пример скрипта для автоматической установки набора приложений
Допустим, нужно установить стандартный набор утилит — браузер, редактор кода, мессенджер и офисный пакет.
# Устанавливаем стандартные программы через Winget
$apps = @(
"Google.Chrome",
"Microsoft.VisualStudioCode",
"7zip.7zip",
"Microsoft.Teams",
"Microsoft.Office"
)foreach ($app in $apps) {
Write-Host "Устанавливается $app..." -ForegroundColor Cyan
winget install --id=$app --silent --accept-package-agreements --accept-source-agreements
}
Этот скрипт можно сохранить как `install-apps.ps1` и запускать на новых устройствах после установки Windows. Все программы будут установлены автоматически, без необходимости ручного подтверждения.
Автоматизация обновлений приложений
Winget также умеет обновлять уже установленные программы. С помощью PowerShell можно быстро проверить наличие обновлений и установить их:
Write-Host "Проверка обновлений..." -ForegroundColor Yellow
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
Такой скрипт удобно запускать через Планировщик заданий Windows (Task Scheduler), чтобы обновления выполнялись, например, раз в неделю.
Создание списка приложений и массовая установка
Если вы хотите использовать один и тот же набор программ на разных компьютерах, можно создать список пакетов и импортировать его в Winget.
1. На основном ПК выполните:
winget export -o C:\backup\apps.json
2. А затем на новом устройстве:
winget import -i C:\backup\apps.json --accept-source-agreements --accept-package-agreements
Winget автоматически установит все программы из файла. Это особенно удобно при настройке корпоративных или учебных ПК.
Дополнительные возможности PowerShell для автоматизации
PowerShell позволяет интегрировать установку через Winget в более сложные сценарии:
– Настройка системных параметров после установки.
– Создание логов успешных и неудачных установок.
– Проверка наличия установленных программ через команду Get-Command или Get-Package.
– Уведомления об окончании установки (через ToastNotification или email).
Пример с логированием:
$log = "C:\Logs\install_log.txt"
foreach ($app in $apps) {
winget install --id=$app --silent >> $log
}
Write-Host "Установка завершена. Подробности в $log" -ForegroundColor Green
Безопасность и ограничения
Хотя Winget — официальный инструмент Microsoft, стоит учитывать несколько моментов:
– Для выполнения некоторых установок требуется запуск PowerShell с правами администратора.
– Не все приложения имеют бесшумный (`–silent`) установщик.
– При работе с корпоративными устройствами может потребоваться настройка доверенных источников.
Проверить список доступных источников можно командой:
winget source list
Автоматизация установки программ через Winget и PowerShell значительно ускоряет развертывание и обслуживание Windows-систем. Вы можете настроить персонализированный скрипт установки, регулярно обновлять приложения и минимизировать участие пользователя.
Это особенно полезно при настройке рабочих станций разработчиков, IT-инженеров или при массовом внедрении новых компьютеров в организации.
Используйте возможности Winget, чтобы сделать установку и управление программами простыми, предсказуемыми и полностью автоматизированными.