Автоматическая установка программ после установки windows

Устанавливать привычные приложения после переустановки Windows или на новом компьютере по одному не всегда удобно. При желании процесс можно автоматизировать и сделать так, чтобы нужное бесплатное ПО скачивалось и устанавливалось автоматически.

В этой инструкции подробно о способах установки сразу нескольких программ в Windows и дополнительная информация, которая может быть полезной.

Winget

Winget — встроенный менеджер пакетов (подробнее о базовом использовании — в этой статье), доступный в Windows 11 и Windows 10, позволяющий скачивать и устанавливать программы и приложения Microsoft Store в интерфейсе командной строки, в том числе сразу несколько приложений.

Пример использования winget для установки нескольких программ одновременно:

  1. Запустите Терминал Windows или Windows PowerShell от имени администратора, сделать это можно в контекстном меню командной строки.
  2. Выполните поиск нужных приложений с помощью команды (вместо имени приложения можно использовать его часть)
    winget search имя_приложения

    и обратите внимание на ИД нужных приложений (скопируйте их куда-либо).

    Поиск приложений в Winget

  3. Для установки сразу нескольких приложений по их ИД используйте команду
    winget install --id=ИД_ПРИЛОЖЕНИЯ1 -e -h ; winget install --id=ИД_ПРИЛОЖЕНИЯ2 -e -h

    указывая нужные приложения (в примере — лишь два, но может быть больше, разделенных знаком «;»).

    Установка нескольких программ в Winget

  4. Дождитесь завершения скачивания и установки выбранных приложений.

Команду из 3-го шага можно сохранить для использования в дальнейшем на этом или других компьютерах, чтобы не выполнять поиск приложений повторно.

Dev Home (Домашняя версия для разработчиков)

Ранее на сайте рассматривалось приложение Dev Home в контексте добавления виджетов использования ресурсов компьютера в Windows 11. С помощью этого же приложения от Microsoft можно автоматизировать установку программ:

  1. Загрузите приложение Dev Home из Microsoft Store (оно может быть уже установлено в Windows 11).
  2. Запустите приложение, перейдите в раздел Конфигурация компьютера — Установка приложений.
    Установка приложений в Dev Home

  3. Выполните поиск нужных приложений, нажимая «+» для добавления в список установки.
    Добавление программ в Dev Home

  4. Нажмите кнопку «Далее», примите условия лицензии и нажмите кнопку «Настроить» для установки выбранных приложений.
    Установка нескольких программ в Dev Home

Останется лишь дождаться скачивания и установки требуемых программ.

Winstall

Winstall — онлайн-сервис для поиска приложений и генерации скрипта для их автоматической установки с помощью winget.

Порядок использования:

  1. Зайдите на сайт https://winstall.app/ и найдите нужные приложения, нажимая «+» для их добавления.
    Добавление приложений в Winstall

  2. Добавив нужные приложения, нажмите кнопку «Generate script».
  3. Выберите тип скрипта и либо скопируйте его в буфер обмена для вставки в командной строке или PowerShell, либо скачайте файл скрипта для запуска и автоматической установки выбранных программ.
    Получить скрипт в Winstall

  4. Запустите готовый скрипт для установки приложений.

В отдельной статье — подробно про использование Winstall.

Ninite

Ninite, возможно, самый простой способ создания пакета для установки набора программ. Всё, что требуется для использования — зайти на сайт https://ninite.com/ и отметить нужные приложения:

Установка нескольких программ в Ninite

После этого нажать кнопку «Get Your Ninite» чтобы скачать установщик, который автоматически загрузит и установит все выбранные программы на вашем компьютере, при этом не установив ничего лишнего, даже если официальный установщик пробует это сделать.

Подробнее о сервисе Ninite — в этом материале.

Надеюсь, информация была полезной, а если вы знаете другие возможности реализации описанного, буду рад вашему комментарию ниже.

Наверное вы задавались вопросом, а можно ли упростить себе переустановку системы.
Конечно вы подразумеваете что переустановка Windows включает установку драйверов и нужного ПО. Office, Браузер и так далее.

Программа называется Silent Install Helper. Ссылка на sourceforge программы: sourceforge.net/projects/sih

Программа скачивается и запускается без установки.

Главное окно программы:

image

Эта программа обладает огромными возможностями для автоматизации установки.
Программа может создать скрипт для авто установки софта.

И так же установить весь софт прямо из программы.

Нам нужно создать скрипт для установки.

В Menu Bar в интерфейсе нам нужно выбрать пункт Installer.

В зависимости если от наших хотелок мы можем выбрать папку с инсталляторами или отдельно инсталляторы.

И после добавление всех установщиков нажимаем на галочку возле каждого инсталлятора.

И потом нажимаем пункт Tools нажимаем пункт Create *.cmd file.

Программа про анализирует установщик и создаст скрипт или запустит установку.

И сохраняем этот файл куда-то.

Программа создаст файл с примерно таким контентом:

pause
C:\Users\CtoZaPizdec\Downloads\VSCodeUserSetup-x64-1.51.0.exe
C:\Users\CtoZaPizdec\Documents\Microsoft Office 2007 Standard SP3 12.0.6734.5000 RePack by KpoJIuK.v2015.10.exe -y
C:\Users\CtoZaPizdec\Documents\PaperASMCV1000.exe /SILENT /SUPPRESSMSGBOXES /NORESTART /SP-
pause

Программа проанализирует инсталлятор и создаст скрипт для тихой установки программ если это возможно.

Вы тут: Главная Windows Автоустановка приложений с winget по окончании установки Windows

WinGet — замечательное средство автоматической установки приложений. Не надо тратить время на скачивание актуальных инсталляторов и забивать себе голову тонкостями ключей тихой установки. Просто запускаешь скрипт с подборкой своих программ и готово!

Но есть нюанс © Установщик пакетов не входит в поставку Windows! Это не вполне очевидно, потому что winget «сразу» работает в начисто установленной ОС. Однако он не включен в WIM-образ, а скачивается уже по окончании установки системы с помощью магазина Windows. И временной интервал загрузки варьируется. Поэтому нельзя просто взять и прицепить скрипт установки приложений к установке Windows.

Сегодня я расскажу, как автоматизировать процесс загрузки и регистрации winget, когда его нет в Windows.

[+] Сегодня в программе

Ручной способ

Детали могут варьироваться в зависимости от издания Windows. Для самого сложного расклада способ изложен в документации Windows IoT: Using WinGet to Install Apps on Windows IoT Enterprise. В этом издании нет магазина, поэтому требуется ручная загрузка всех компонентов.

Метод также подходит для издания LTSC, поскольку оно идентично IoT. Наконец, он должен сработать и в серверных системах, для которых winget в принципе не позиционируется (читатель Alexandr Petnitsky подтверждает успешную работу скрипта в Windows Server 2022).

Автоматический способ (скрипт)

Я просто автоматизировал ручные шаги по загрузке и установке всего необходимого.

Скачайте скрипт winget-install.zip, разблокируйте его, потом выполняйте от имени администратора.

Для работы winget нужен он сам – это установщик пакетов Microsoft.DesktopAppInstaller, а также Microsoft.VCLibs.x64 и Microsoft.UI.Xaml.2.8. Еще понадобится файл лицензии, который можно скачать из любого релиза winget.

# doc https://learn.microsoft.com/en-us/windows/iot/iot-enterprise/deployment/install-winget-windows-iot
# blog https://www.outsidethebox.ms/22409

$ErrorActionPreference = 'SilentlyContinue'
$ProgressPreference = 'SilentlyContinue'

$AppInstaller = 'Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle'
$VCLibs = 'Microsoft.VCLibs.x64.14.00.Desktop.appx'
$Xaml = 'Microsoft.UI.Xaml.2.8.x64.appx'
$components = @($VCLibs, $Xaml, $AppInstaller)
$license = '5e4a105df01840b0bbf00985e4f57c1e_License1.xml' #from v1.7.10582 assets

Write-Host "Downloading winget and dependencies..."
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile .\$AppInstaller
Invoke-WebRequest -Uri https://aka.ms/$($VCLibs) -OutFile .\$VCLibs
Invoke-WebRequest -Uri https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/$($Xaml ) -OutFile .\$Xaml 
(Invoke-RestMethod -Uri https://github.com/microsoft/winget-cli/releases/download/v1.7.10582/$($license)).OuterXML | Out-File $license

Write-Host "Installing winget..."
# Deploy provisional package for all users
Add-AppxProvisionedPackage -Online -PackagePath .\$($AppInstaller) -LicensePath .\$($license)
Remove-Item -Path .\$($license) -Force

$components  | ForEach-Object {
    # Install downloaded packages...
    Add-AppxPackage -Path .\$($_) -ErrorAction 0
    # ... and delete them
    Remove-Item -Path .\$($_) -Force
}

# if anything went wrong, check out errors
if ($ERROR) {$ERROR | Out-File -FilePath $env:temp\winget-install.log -Append}

Ничего принципиально нового здесь нет. Invoke-WebRequest я показывал в блоге неоднократно (раз, два). Invoke-RestMethod вроде не фигурировал раньше, но смысл тот же (просто скачиваемый файл — XML). Установку скачанных пакетов с помощью Add-AppxPackage я тоже разбирал.

После этого уже можно устанавливать приложения с помощью winget. Например, надергав команд с winget.run или winstall, вы получите что-то вроде:

winget install --id=M2Team.NanaZip -e
winget install --id=Notepad++.Notepad++ -e 
winget install --id=Ghisler.TotalCommander -e 
winget install --id=DominikReichl.KeePass -e

Однако все эти сайты используют в качестве источника только репозиторий winget. У некоторых программ я предпочитаю магазинную версию (репо msstore) из-за ее автоматического обновления.

Поэтому в моем примере смешанная подборка (NanaZip из магазина). Поскольку у магазинных приложений идентификаторы не предназначены для человеческого восприятия, я сделал хэш-таблицу, чтобы видеть названия приложений.

# Software installation 
Start-Sleep -Seconds 10 #before installing software
Write-Host "Installing apps with winget..."
[hashtable]$apps = @{
    "NanaZip" = "9N8G7TSCL18R"
    "Notepad++" = "Notepad++.Notepad++"
    "Total Commander" = "Ghisler.TotalCommander"
    "KeePass" = "DominikReichl.KeePass"
}

foreach ($key in $apps.keys) {
    winget install --id $($apps[$key]) -e --accept-package-agreements --accept-source-agreements
}

Процесс выглядит так.

winget unattend

Осталась сущая мелочь — прицепить запуск скрипта к установке системы. Как обычно, выбор между FirstLogonCommands в файле ответов и setupcomplete.cmd.

Здесь нужно учитывать, что по умолчанию некоторые пакеты устанавливают приложения в профиль – например, утилиты Sysinternals. Файл setupcomplete.cmd выполняется от имени учетной записи SYSTEM. В ее профиле такие программы и окажутся, что будет бесполезно для вас.

FirstLogonCommands срабатывают уже после входа в систему, поэтому такой проблеме не подвержены.

<FirstLogonCommands>
    <SynchronousCommand wcm:action="add">
    <CommandLine>powershell -command "(Get-Volume).DriveLetter | Foreach-Object {if (Test-Path "${PSItem}:\winget-install.ps1") {powershell -ex bypass -file ${PSItem}:\winget-install.ps1}}"</CommandLine>
    <Description>Install winget</Description>
    <Order>1</Order>
    </SynchronousCommand>
</FirstLogonCommands>    

Этот способ вызова скрипта я уже неоднократно показывал в блоге. Сам скрипт выступает в роли маркерного файла — находим его в корне установочного диска и запускаем.

Бонус: быстрая установка своего набора программ на чистой системе

Спустя некоторое время я опубликовал в канале Telegram пост о том, как автоматизировать создание списка любимых приложений для их быстрой установки.

Заключение

Будь у нас winget 20 лет назад, форум про автоустановку приложений не имел бы особого смысла. Да, сторонние менеджеры пакетов вроде Chocolatey далеко не вчера родились. Но ценность и популярность winget обусловлена его наличием «из коробки». Ну, почти :) Надеюсь, со временем он полноценно войдет в состав Windows.

🛠 Автоматический установщик программ для Windows

Добро пожаловать! Этот инструмент поможет вам быстро установить популярные программы, активировать Windows/Office и настроить систему. Всё это — с минимальными усилиями и максимальной автоматизацией.

Main script GUI


📦 Основные возможности

  • Установка популярных программ (Chrome, 7-Zip, Office и др.)
  • Активация Windows и Office
  • Настройка UAC и брандмауэра
  • Автозапуск через 20 секунд с индикацией прогресса
  • Логирование всех действий для удобного отслеживания

🚀 Быстрый старт

  1. Скачайте и распакуйте архив
    Загрузите архив с инструментом и распакуйте его в удобное место.
  2. Запустите StartGUI.cmd
    Щелкните правой кнопкой мыши → выберите «Запуск от имени администратора».
  3. Выберите программы и опции
    В открывшемся окне отметьте нужное.
  4. Начните установку
    Нажмите «Установить выбранное» или просто подождите 20 секунд — скрипт запустится автоматически.

💡 Совет: Если не хотите ждать автостарта, запускайте установку вручную!


⚙️ Добавление новых программ

Хотите установить что-то своё? Вот пошаговая инструкция:

Шаг 1: Подготовка файлов

  1. Создайте папку в директории apps с названием программы.
    Пример: apps/Notepad++
  2. Поместите установочный файл в эту папку.
    Поддерживаемые форматы: .exe, .msi, .bat.

Шаг 2: Создание скрипта

  1. Создайте файл НазваниеПрограммы.ps1 в папке программы.
    Пример: apps/Notepad++/Notepad++.ps1
  2. Скопируйте и настройте этот шаблон:
   param(
       [string]$RootPath = $PSScriptRoot,
       [string]$LogPath
   )

   $dirName = "Notepad++"          # Имя программы
   $installFile = "npp.8.6.7.exe"  # Точное имя установочного файла
   $Arguments = "/S"               # Параметры тихой установки

   function Write-Log {
       param($message)
       "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - [$dirName] $message" | Out-File $LogPath -Append -Encoding UTF8
   }

   try {
       Write-Log "Запуск установки"
       $process = Start-Process "$RootPath\$installFile" -ArgumentList $Arguments -Verb RunAs -PassThru -Wait
       if ($process.ExitCode -eq 0) {
           Write-Log "Успешно! Код: $($process.ExitCode)"
       } else {
           throw "Ошибка. Код: $($process.ExitCode)"
       }
   }
   catch {
       Write-Log "Сбой: $_"
       throw
   }
  1. Укажите правильные значения для $installFile и $Arguments.

Шаг 3: Обновление конфига

Откройте файл installer_config.json и добавьте программу в список:

"Programs": [
    ...,
    "Notepad++"
]

🔍 Подсказка: Параметры тихой установки можно найти в разделе «Параметры установки» ниже.


Настройка автозапуска скрипта после установки Windows

Чтобы ваш скрипт автоматически запускался после установки Windows, можно воспользоваться программой ntlite и добавить в ваш iso комманду запуска после первого входа. Это позволит запускать скрипт main.ps1 с флешки или iso после завершения установки системы.

Для автоматизации процесса рекомендуется отключить UAC через ntlite и включить его после окончания установки.

Вариант команды который я использую

timeout 180 && powershell -nologo -noninteractive -windowStyle hidden -noprofile -executionpolicy bypass -Command "$scriptDrive = Get-Volume -FileSystemLabel 'YOUR_LABEL'; $drive = $scriptDrive.DriveLetter; powershell  -nologo -noninteractive -windowStyle hidden -noprofile -executionpolicy bypass -file \"$drive`:\YOUR_PATH\main.ps1""
  • Заменить YOUR_LABEL на вашу метку флешки или CD
  • Заменить YOUR_PATH на ваш путь к main.ps1

Возможно есть и другие варианты автозапуска.


🔄 Обновление программ

Чтобы обновить программу:

  1. Замените установочный файл в папке программы.
    Пример: apps/7-Zip/7z2409-x64.exe7z2500-x64.exe.

  2. При необходимости обновите скрипт:

    • Измените $installFile на новое имя файла.
    • Проверьте $Arguments, если параметры установки изменились.
      Пример: $Arguments = "/S /D=C:\Program Files\7-Zip".

🛠 Параметры установки

Не знаете, какие аргументы использовать? Вот подсказки:

Тип файла Примеры аргументов Где найти информацию
.exe /SILENT, /VERYSILENT silentinstallhq.com, silentinstall.org
.msi /qn, /norestart Введите msiexec /? в командной строке
.bat Не требуются

❗ Важно

  • Права администратора: Всегда запускайте скрипт с правами администратора.
  • Логи: Логи хранятся на рабочем столе в файле InstallLog.txt.
    Путь: C:\Users\ВАШ_ПОЛЬЗОВАТЕЛЬ\Desktop\InstallLog.txt.
  • Ошибки: Если что-то пошло не так, проверьте код выхода в логах.

🆘 Поддержка

Столкнулись с проблемой?

  • Изучите логи в InstallLog.txt.
  • Погуглите ошибки PowerShell — это часто помогает.
  • Если совсем не получается, пишите мне, разберёмся вместе!

🌐 Полезные ссылки

  • Silent Install HQ — параметры тихой установки.
  • PowerShell Docs — документация по PowerShell.
  • GitHub Issues — сообщайте об ошибках или предлагайте улучшения.

Выберите вариант загрузки:

  • скачать с сервера SoftPortal

AutoInstall — программа автоматической установки программ. Вам часто после установки Windows приходится устанавливать огромное количество программ? Если да, то эта программа для Вас. (полное описание…)

Рекомендуем популярное

OP Auto Clicker 3.0

Бесплатный полноценный автокликер с двумя режимами работы — с динамическим…

AutoHotkey 2.0.15

AutoHotkey — приложение для автоматизации процессов до одного клика. Настраивайте клавиатуру и…

Free Mouse Auto Clicker 3.8.6

Free Mouse Auto Clicker — утилита для автоматического срабатывания левой или правой кнопки мышки через через заданные промежутки времени…

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Owncloud клиент для windows
  • Windows 10 долго включается с черным экраном
  • Установка openssh client windows 10
  • Софт для просмотра фотографий windows 10
  • Как исправить ошибку 0xc0000102 windows 10