Установка через PowerShell: быстрые команды для Windows
Установить через PowerShell можно почти всё: программы (через WinGet/Chocolatey), модули PowerShell (Install-Module), MSI/EXE-установщики и компоненты Windows (DISM/Capabilities). Ниже — короткие команды, которые можно сразу копировать в консоль.
Оглавление
Программы через WinGet и Chocolatey
WinGet — самый простой вариант для обычного ПК: ищет и ставит приложения из каталога.
winget --version
winget search 7zip
winget install --id 7zip.7zip --silent --accept-source-agreements --accept-package-agreements
Если не знаете точный --id, сначала посмотрите карточку пакета:
winget show 7zip.7zip
Chocolatey удобен для админских сценариев и автосборок (много пакетов, стабильные скрипты):
choco install 7zip -y
choco upgrade all -y
Установка в C:\Program Files, системные компоненты и большинство установок через менеджеры пакетов часто требуют PowerShell от имени администратора. Если ловите “Access denied” — начните именно с этого.
Как выбрать способ (коротко)
| Что ставите | Команда | Когда выбирать |
|---|---|---|
| Обычные программы | winget install ... | Быстро на одном ПК, минимум ручных шагов |
| Много программ/автоматизация | choco install ... | Скрипты, развёртывание на нескольких ПК |
| Свой установщик | msiexec / Start-Process | Нет пакета в каталогах, нужен полный контроль |
| Командлеты/библиотеки | Install-Module | Это не “программа”, а модуль для PowerShell |
Установка из MSI/EXE файла (тихо и предсказуемо)
Если у вас уже есть установщик (например, в папке C:\Install), ставьте так, чтобы скрипт дождался завершения.
MSI (рекомендуется, самый предсказуемый формат)
$msi = "C:\Install\app.msi"
Start-Process msiexec.exe -ArgumentList "/i `"$msi`" /qn /norestart" -Wait
/qn— полностью тихо/norestart— не перезагружать ПК автоматически-Wait— PowerShell подождёт завершения установки
EXE (нужно знать ключи “тихой” установки)
$exe = "C:\Install\app-setup.exe"
Start-Process $exe -ArgumentList "/S" -Wait
Если EXE “не молчит” или не ставится — проблема обычно в параметрах. Попробуйте сначала WinGet: для многих программ он уже знает правильные ключи тихой установки.
Модули PowerShell и компоненты Windows
Установка модуля PowerShell (PSGallery)
Чтобы поставить модуль (например, Pester) без админ-прав — используйте область текущего пользователя:
Install-Module Pester -Scope CurrentUser
Get-Module Pester -ListAvailable
Update-Module Pester
Если система спрашивает доверие к репозиторию — лучше подтверждать явно, а не “ломать” политики безопасности.
Компоненты Windows (Capabilities/Optional Features)
Пример: установка OpenSSH-клиента как возможности Windows:
Get-WindowsCapability -Online | Where-Object Name -like "OpenSSH.Client*"
Add-WindowsCapability -Online -Name "OpenSSH.Client~~~~0.0.1.0"
Для ролей/фич (например, IIS) чаще используют:
Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole -All
Проверка установки и быстрые правки ошибок
Проверить, что программа установилась:
winget list
choco list --local-only
Проверить наличие файла/папки:
Test-Path "C:\Program Files\AppName"
Частые проблемы и быстрые решения:
wingetне найден: закройте и заново откройте PowerShell, при необходимости перезагрузите ПК.- Ошибка доступа: запустите PowerShell Run as Administrator или ставьте “в профиль” (где это возможно, например
Install-Module ... -Scope CurrentUser). - Скрипт “убежал вперёд”: добавляйте
-WaitвStart-Process, иначе установка может идти в фоне без контроля результата.