- Как использовать PowerShell для массовой переустановки приложений на десятках компьютеров
- Почему именно PowerShell?
- Какие приложения можно переустанавливать через PowerShell?
- Шаг за шагом: как собрать скрипт для массовой переустановки
- Этап 1: Собери список приложений, которые нужно установить
- Этап 2: Удали всё, что есть
- Этап 3: Установи новые приложения
- Что делать, если приложение не имеет тихой установки?
- Таблица: популярные приложения и их параметры установки
- Частые ошибки — и как их избежать
- Когда что использовать?
- Как лучше сделать: практические рекомендации
- Итог: что делать прямо сейчас
Как использовать PowerShell для массовой переустановки приложений на десятках компьютеров
Представь: ты пришёл на новое место работы, и тебе сказали — «Переустанови Windows 10 на 47 компьютерах, а потом поставь туда всё, что нужно: браузер, Office, 1С, антивирус, почтовый клиент…». Всё это — до конца недели. Если ты начнёшь делать это вручную — ты пропадёшь в этой работе на неделю. Но если знаешь, как работать с PowerShell, ты справишься за пару часов — и останется время на кофе и даже на выходные.
Эта статья — не про теорию PowerShell. Это про то, как реально переустановить десятки приложений на нескольких машинах, не сходя с места. Я покажу, как это делается на практике — с примерами, ловушками, которые подстерегают новичков, и тем, что действительно работает.
Почему именно PowerShell?
Ты можешь использовать SCCM, Intune, GPO или сторонние инструменты. Но если у тебя нет корпоративной инфраструктуры — или ты просто хочешь быстро починить 5 компьютеров у клиента — PowerShell остаётся самым быстрым, гибким и бесплатным способом.
Он работает на любом Windows 10/11 с доступом к администратору. Нет необходимости устанавливать дополнительное ПО. Ты пишешь скрипт — и запускаешь его на всех машинах. Даже если они в разных сетях — ты можешь запустить его локально через USB или по Remote Desktop.
Суть проста: ты не устанавливаешь приложения вручную. Ты даёшь команду: «Вот список программ. Удали всё, что есть. Установи всё, что нужно. Проверь, что всё появилось». И PowerShell это делает за тебя.
Какие приложения можно переустанавливать через PowerShell?
Не все. Но большинство — да.
PowerShell работает с двумя типами установщиков:
- MSI — классические установщики от Microsoft. Их легко управлять через
msiexec. - AppX/MSIX — магазинные приложения: Edge, Mail, Calculator, Teams и т.д. Их можно удалять и устанавливать через
Get-AppxPackageиAdd-AppxPackage. - EXE-установщики — Chrome, 7-Zip, Notepad++, 1С, Adobe Reader. Их можно установить через команды запуска с параметрами (типа
/silentили/quiet).
Если приложение не имеет командной строки установки — ты не сможешь автоматизировать его. Например, некоторые лицензионные программы требуют ввода ключа в GUI. Их придётся ставить вручную — или искать альтернативу.
Шаг за шагом: как собрать скрипт для массовой переустановки
Всё делается в три этапа: сборка списка → удаление старого → установка нового.
Этап 1: Собери список приложений, которые нужно установить
Создай текстовый файл apps.txt в папке, куда ты будешь копировать скрипт. Пример:
Chrome
7-Zip
Notepad++
VLC
AdobeReader
OneC
Это не просто список. Это ключи, по которым скрипт будет искать установщики. Позже ты их свяжешь с реальными файлами.
Этап 2: Удали всё, что есть
Сначала удаляем старые версии. Это важно — иначе ты получишь конфликты, ошибки установки, дублирующиеся ярлыки.
Вот скрипт для удаления:
# Удаление через AppX (магазины)
Get-AppxPackage *Microsoft.WindowsCalculator* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsStore* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsNotepad* | Remove-AppxPackage
# Удаление через WMI (для классических программ)
$appsToRemove = @("7-Zip", "VLC media player", "Google Chrome", "Adobe Reader")
foreach (app inappsToRemove) {
installed = Get-WmiObject -Class Win32_Product | Where-Object_.Name -like "*$app*"}
if ($installed) {
Write-Host "Удаляю $app..."
$installed.Uninstall()
}
}
# Удаление через реестр (для тех, что не в Win32_Product)
$uninstallKeys = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*", "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
foreach (key inuninstallKeys) {
Get-ChildItem key | Where-Object_.GetValue("DisplayName") -like "*7-Zip*" -or _.GetValue("DisplayName") -like "*VLC*" -or_.GetValue("DisplayName") -like "*Chrome*" } | ForEach-Object {
uninstallString =_.GetValue("UninstallString")
if ($uninstallString) {
Write-Host "Удаляю через реестр: (_.GetValue('DisplayName'))"
Start-Process -FilePath $uninstallString -ArgumentList "/S" -Wait -NoNewWindow -ErrorAction SilentlyContinue
}
}
}
Обрати внимание: Win32_Product медленный. Он проверяет целостность каждой установки. Но он надёжный. Если нужно быстрее — переходи к реестру.
Этап 3: Установи новые приложения
Теперь — установка. Ты должен иметь установочные файлы. Скачай их заранее и сложи в папку \\server\installs\ или на флешку в папку C:\Install\.
Создай файл install-apps.ps1:
# Путь к папке с установщиками
$installPath = "C:\Install"
# Список приложений из файла
apps = Get-Content "installPath\apps.txt"
# Словарь: ключ = имя в списке, значение = путь к установщику и параметры
$installMap = @{
"Chrome" = "$installPath\chrome_installer.exe /silent /install"
"7-Zip" = "$installPath\7z2407-x64.exe /S"
"Notepad++" = "$installPath\npp.8.7.5.Installer.x64.exe /S"
"VLC" = "$installPath\vlc-3.0.20-win64.exe /S"
"AdobeReader" = "$installPath\AcroRdrDC2400620237_ru_RU.exe /sAll /rs"
"OneC" = "$installPath\1cv8c_x64_8_3_25_1504.exe /S /V`"/qn INSTALLDIR=`"C:\Program Files\1C\1Cv8`""`
}
foreach (app inapps) {
if (installMap.ContainsKey(app)) {
Write-Host "Устанавливаю $app..."
Start-Process -FilePath installMap[app].Split(' ')[0] -ArgumentList installMap[app].Substring(installMap[app].IndexOf(' ')) -Wait -NoNewWindow
Start-Sleep -Seconds 3 # Пауза между установками — чтобы не перегружать диск
} else {
Write-Warning "Приложение '$app' не найдено в списке установок. Проверь файл apps.txt и installMap."
}
}
Write-Host "Установка завершена. Проверь, что все программы появились в списке программ."
Важно: параметры установки (/silent, /S, /qn) — это не магия. Каждый установщик имеет свои флаги. Их нужно искать в документации разработчика. Например:
/S— тихая установка для InnoSetup (7-Zip, Notepad++)./silent /install— для Chrome./sAll /rs— для Adobe Reader./qn— для MSI-установщиков черезmsiexec.
Если ты не знаешь параметры — зайди на сайт разработчика. Почти всегда есть раздел «Для администраторов» или «Командная строка».
Что делать, если приложение не имеет тихой установки?
Бывает. Например, некоторые программы требуют согласия лицензионного соглашения, ввода ключа, выбора компонентов. Ты не можешь автоматизировать это через PowerShell — если не используешь сторонние инструменты вроде AutoHotkey или SikuliX.
В таких случаях есть два пути:
- Найди альтернативу. Например, вместо «1С:Предприятие» с лицензионным ключом — используй «1С:Предприятие» в облаке. Или замени Adobe Reader на SumatraPDF — он тихо устанавливается и не требует лицензии.
- Создай образ системы. Установи всё вручную на одном компьютере, сделай образ через Macrium Reflect или Clonezilla, и разверни его на остальных. Это быстрее, чем пытаться автоматизировать невозможное.
Таблица: популярные приложения и их параметры установки
| Приложение | Тип установщика | Параметр тихой установки | Где скачать |
|---|---|---|---|
| Google Chrome | EXE | /silent /install | google.com/chrome |
| 7-Zip | EXE (InnoSetup) | /S | 7-zip.org |
| Notepad++ | EXE (InnoSetup) | /S | notepad-plus-plus.org |
| VLC | EXE (InnoSetup) | /S | videolan.org |
| Adobe Reader | EXE (Adobe) | /sAll /rs | adobe.com/reader |
| Microsoft Office | MSI/Click-to-Run | setup.exe /configure configuration.xml | office.com |
| 1С:Предприятие | EXE | /S /V`"/qn INSTALLDIR=`"C:\Program Files\1C\1Cv8`"` | v8.1c.ru |
Скачивай установщики только с официальных сайтов. Не используй «сборки» с торрентов — там могут быть вредоносные модули, особенно в 1С и Adobe.
Частые ошибки — и как их избежать
- Запускаешь скрипт без прав администратора. PowerShell не сможет удалить программы или установить их в
Program Files. Всегда запускай от имени администратора — даже если ты админ. - Путаешь имена в списке. В
apps.txtнаписал «Chrome», а вinstallMap— «Google Chrome». Скрипт не найдёт совпадение. Используй точные, короткие, без пробелов и спецсимволов — как ключи в словаре. - Не проверяешь, что установщик существует. Если файл
chrome_installer.exeне лежит в папке — скрипт упадёт. Добавь проверку:if (Test-Path $path) { ... }. - Запускаешь скрипт на компьютере без интернета. Некоторые установщики (например, Chrome) скачивают дополнительные компоненты. Если интернета нет — установка зависнет. Скачивай все файлы заранее и размещай локально.
- Не тестируешь на одном компьютере. Запускать скрипт на 47 машинах сразу — это самоубийство. Сначала протестируй на одном. Убедись, что всё удаляется, всё устанавливается, всё запускается. Только потом — массово.
Когда что использовать?
Не существует одного способа для всех. Вот когда что выбрать:
- Если у тебя 3–5 компьютеров — используй PowerShell. Просто, быстро, без лишних инструментов.
- Если у тебя 20+ компьютеров в одной сети — используй SCCM или Intune. Они лучше масштабируются, логируют ошибки, позволяют откладывать установки.
- Если компьютеры в разных офисах, с разными сетями — PowerShell + USB. Скопируй скрипт и установщики на флешку, подключи к каждому ПК — и запусти. Работает даже без интернета.
- Если нужно переустановить только Office или 1С — используй официальные инструменты:
Office Deployment Toolили1C:Enterprise Deployment Tool. Они надёжнее, чем ручные скрипты. - Если ты не уверен в PowerShell — сделай образ. Установи всё на одном ПК, сделай образ — и разверни на остальных. Это проще, чем писать скрипты, если ты не системный администратор.
Как лучше сделать: практические рекомендации
- Всегда тестируй на одном ПК. Даже если скрипт «работал на другом». Разные версии Windows, разные обновления — и всё может сломаться.
- Логируй всё. Добавь в скрипт:
Start-Transcript -Path "C:\Install\install_log.txt"— и ты будешь знать, что пошло не так. - Используй переменные. Не пиши пути вручную в 10 местах. Определи
$installPath = "C:\Install"в начале — и меняй только там. - Добавь проверку на наличие приложения после установки. Например:
if (Test-Path "C:\Program Files\Google\Chrome\Application\chrome.exe") { Write-Host "Chrome установлен" }. - Не удаляй всё подряд. Удаляй только то, что ты установишь заново. Если пользователь установил свой браузер — не трогай его. Иначе ты сломаешь его рабочую среду.
- Делай резервную копию перед запуском. Даже если это «просто переустановка». Никогда не знаешь, что сломается.
Итог: что делать прямо сейчас
Если ты сейчас стоишь перед 10 компьютерами, которые нужно переустановить — вот твой план:
- Скачай установщики нужных программ на флешку или сетевой диск.
- Создай папку
C:\Installи помести туда все .exe и .msi файлы. - Создай файл
apps.txtс названиями программ, которые нужно установить. - Создай файл
install-apps.ps1по шаблону выше — под свои приложения. - Запусти скрипт на одном компьютере от имени администратора. Проверь, что всё установилось.
- Скопируй папку
C:\Installи скрипт на остальные ПК. - Запусти скрипт на каждом — или используй
Invoke-Command, если компьютеры в одной сети.
После этого ты сможешь пить кофе, а не стоять у компьютеров с установщиками в руках. И это — настоящая сила PowerShell: не в его сложности, а в том, что он превращает рутину в задачу, которую можно решить за 15 минут.
Информация в этой статье носит ознакомительный характер. Массовая переустановка программ может повлиять на рабочие данные пользователей. Перед запуском скриптов всегда делайте резервные копии и согласовывайте действия с ответственными лицами.
