Установка через 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, иначе установка может идти в фоне без контроля результата.