В этом гайде мы разберемся как создать собственный установочный образ с Windows 10/11 с предустановленными программами, необходимыми файлами, другими настройками среды и приложений. Превалирующий сейчас подход предполагает развертывания чистого образа Windows, после чего на компьютер устанавливаются необходимые программы: через GPO, командами загрузки и установки приложений в
AutoUnattend.xml
или в скрипте
%WINDIR%\Setup\Scripts\SetupComplete.cmd
, логон скриптами Windows, средствами автоматизации (SCCM, Intune, Ansible, и пр). Однако в некоторых случаях особенности бизнеса требуют, чтобы на компьютер сразу разворачивался готовый образ Windows со всеми необходимыми программами.
Процесс создания собственного установочного образа Windows с предустановленным софтом будет состоять из следующих этапов:
- Развертывание чистой Windows на эталонном компьютере (виртуальной машине);
- Вход в режим аудита, установка необходимых приложений, настройка окружения;
- Загрузка в среде WinPE и захват WIM образа Windows с помощью DISM;
- Замена оригинального install.wim на установочной USB флешке (ISO образе).
Подготовка эталонного образа Windows с установленными программами
На первом этапе вы должны создать эталонный образ Windows со всем необходимым набором программ, файлов и настроек. Для этого нужно выполнить чистую установку Windows на виртуальную машину или компьютер
Итак, начните с получения оригинального установочного образа Windows 10/11 в виде ISO файла или сразу запишите его на загрузочную USB флешку с помощью Media Creatin Tool или Rufus.
Выполните ручную установку Windows и на этапе OOBE (когда вам предлагают выбрать региональные настройки и создать учетную запись), нажмите
CTRL + SHIFT + F3
. Это переведет компьютер в режим аудита (Audit Mode), в котором будет выполнен автоматический вход под встроенной учётной записью Administrator.
После появления рабочего стола, сверните окно утилиты sysprep (не закрывая его) и можете приступить к установке программ, обновлений, настройке нужных параметров Windows.
В этом примере я воспользуюсь пакетным менеджером WinGet для установки программ в Windows:
winget install --id=7zip.7zip -e ; winget install --id=Notepad++.Notepad++ -e ; winget install --id=VideoLAN.VLC -e ; winget install --id=WinDirStat.WinDirStat -e ; winget install --id=dotPDNLLC.paintdotnet -e ; winget install --id=IrfanSkiljan.IrfanView -e ; winget install --id=Microsoft.PowerToys -e
Дополнительно я вручную создал каталоги и скопировал файлы для некоторых корпоративных приложений.
Настройте ярлыки на рабочем столе, плитки в меню Start, фоновые рисунки, заставки, цветовые схемы и прочее. Настройте параметры локальной групповой политики с помощью редактора
gpedit.msc
. Эти настройки в дальнейшем будут применены ко всем пользователям на компьютерах, которые вы развернете из вашего образа.
После того, как вы завершили настройку операционной и приложений, нужно выполнить очистку Windows для уменьшения итогового размера образа.
Удалите имеющиеся теневые копии и точки восстановления:
vssadmin delete shadows /All /Quiet
Очистите неиспользуемые файлы компонентов и обновлений в папке WinSxS:
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Удалите загруженные файлы обновлений Windows:
del %windir%\SoftwareDistribution\Download\*.* /f /s /q
Для очистки папок Temp, Downloads и кэша в профиле пользователя можно использовать этот PowerShell скрипт.
Выполните очистку диска с помощью утилиты cleanmgr:
Cleanmgr /sagerun:1
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
Очистите корзину:
Clear-RecycleBin -Force
Чтобы применить настройки текущего пользователю к шаблонному пользователю Default, создайте файл ответов unattend.xml в каталоге C:\Windows\System32\Sysprep:
<?xml version="1.0" encoding="utf-8"?> <unattend xmlns="urn:schemas-microsoft-com:unattend"> <settings pass="specialize"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <CopyProfile>true</CopyProfile> </component> </settings> </unattend>
Осталось подготовить ваш настроенный образ Windows к развертыванию с помощью утилиты sysprep.exe. Разверните окно sysprep и выберите в ней опции:
- Enter System Out-of-Box Experience (OOBE)
- Generalize
- Shutdown
После завершения этой операции, компьютер выключиться автоматически.
Захват настроенного образа Windows с помощью DISM
На этом этапе нужно выполнить офлайн захват образа установленной Windows в WIM файл и поместить его на отдельный диск (мы подключили отдельный диск емкостью 60 Гб к компьютеру)
Загрузите компьютер с эталонной версией Windows с загрузочного диска в среде WinPE (WinRE). Можно загрузиться с установочной USB флешки с Windows и на этапе начала установки нажать
Shift+F10
, чтобы открыть командную строку.
Вам нужно идентифицировать буквы диска, которые назначены разделу с Windows и чистому разделу, куда будет скопирован WIM файл. Выполните команды:
diskpart
list disk
exit
В нашем примере диску с Windows присвоена бука E:, а чистому диску – буква D:.
Чтобы выполнить захват офлайн образа Windows на диске E и поместить полученный WIM образ на D, выполните команду:
dism /capture-image /imagefile:D:\install.wim /capturedir:E:\ /ScratchDir:D:\ /name:"MyWinImage" /compress:maximum /checkintegrity /verify /bootable
В моем случае захват образа длился около 30 минут.
Замена оригинального образа Windows (Install.wim) на USB флешке
После того, как вы захватили ваш настроенный образ Windows, вы можете заменить файл с оригинальным установочным образов install.wim или install.esd (ESD это формат с максимальным сжатием образа WIM) на установочной USB флешке (каталог
\sources
).
В моем случае, я переименовал старый образ в install.esd_bak и скопировал на флешку новый образ install.wim.
Обратите внимание, что размер WIM образа с предустановленными программами существенно увеличился (с 4 до 10 Гб).
Если у вас USB флешка с FAT32 для установки Windows на UEFI компьютерах, вы не сможете разместить файл больше 4 Гб на этой файловой системе. В этом случае большой WIM файл нужно разбить на несколько мелких SWM:
Dism /Split-Image /ImageFile:D:\sources\install.wim /SWMFile:c:\tmp\install.swm /FileSize:3500
В данном случае DISM создаст четыре файла install.swm, install2.swm, install3.swm, install4.swm, которые нужно скопировать в папку
\sources
. Установщик Windows сам соберет SWM файлы при развертывании операционной системы.
Теперь вы можете с USB флешки развернуть на любой компьютере созданный вами образ Windows. После завершения установки Windows убедитесь, что все предустановленные программы доступны:
Get-Package
Недостаток такого подхода с развёртыванием преднастроенного образа Windows в том, что для обновления любого приложения в образе вам придется пересобрать его заново.
В статье не хватает щепотки автоматизации. Я сам не пробовал, но в теории с помощью packer можно развернуть образ например в hyper-v или virtual-box, преднастроить его и получить заветный wim. Получится полноценный IaC для windows
Тут на отдельную статью будет повествование 🙂
За идею спасибо, подумаю, в сторону packer или vagrant. А может и обоих по отдельности )
я настраиваю без режима аудита, сразу создаю учетку админа под ней ставлю все что нужно, настраиваю систему, а потом снимаю образ dism++
он кстати очень спасает когда проблема с загрузчиком, есть восстановить загрузчик без танцев с бубном)
Можно по подробнее
Можно так создать образ, наоборот, с удаленными компонентами? Например, удалить Edge, Xbox итп.
можно dism++ тебе поможет удалить и компоненты и драйвера старые, и приложения встроенные
++
либо тоже но руками )
https://winitpro.ru/index.php/2019/12/25/ochistka-ustanovochnogo-obraza-windows-10/
Но Edge так удалить нельзя, а через winget можно. Я хочу взять последний ISO с оф.сайта, обновить AppInstaller в образе, иначе winget не запустится. Затем удалить Edge, WebView, встроенные приложения и собрать такой образ. Добавлять ничего туда я больше не буду, иначе его пересобирать придется раз в неделю из-за обновлений софта.
Могу я собрать такой образ с помощью этой инструкции?
Да, вам подойдет этот способ
Не указано, что при использовании файла .SWM его надо указать в файле ответов autounattend.xml:
install.swm
Restart
Иначе будет ошибка установки. Указывать надо только первый .SWM и остальные будут подхвачены автоматом.
Сорри, теги не прошли:
install.swm
Restart
И опять не прошли… Ну, тогда не знаю, гуглите как и куда сами.
Да вроде не было такого. Раньше просто закидывали installX.swm в sources и установщик подхватывал их прозрачно.
ЗЫ. За теги, прошу прощения. Их движок вырезает в комментах, не пофиксил пока.
а зачем мучаться с этим расширением, я делал обычный win на 8 гб получался и нормально его пользовался. только я давно не пользуюсь стандартным установщиком. использую загрузочную флэшку — СТРЕЛЕЦ. там dism++ тоже есть. вот этой утилитой просто распаковываю образ на нужный диск и он же прописывает загрузчик. и никакие ограничения на размер образа больше не страшны)). а для нового железа, в распакованную систему быстренько интегрируешь драйвера и перегружаешься уже в рабочую систему
ошибся расширением)) WIM!!
Я достаточно давно создавал себе подробный файл ответов и на этом этапе получал ошибку. Потому пришлось добавить
settings pass="windowsPE"
component name="Microsoft-Windows-Setup" processorArchitecture="wow64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ImageInstall
OSImage
InstallFrom
Path>install.swmRestart</Restart
/component
/settings
(снова попробовал вставить текст без тегов, будет понятно, если пройдёт)))
Здоров! Сорян за тупой вопрос, но: если нету файла autounattend.xml, надо ли его создавать, если да, то в какую папку его сувать? Или можно забить и не париться?
сверните окно утилиты sysprep (не закрывая его)
А если необходима перезагрузка для установки софта и актуальных обновлений винды ?
Окно sysprep не закрывать, компьютер перезагрузить. при следующей загрузке опять должен войти в режим аудита.
Есть у меня собственный образ, в нем установил программу для просмотра картинок (Irfan), сделал чтобы в ассоциации файлов для всех новых пользователей была эта программа для просмотра картинок, но когда открываешь любую картинку в первый раз, то предлагает выбрать программу для запуска. Irfan стоит первый, а потом стандартное приложение windows для просмотра фотографий как новое приложение. Как сделать так, что бы новые пользователи сразу открывали картинки в Irfan, без окна выбора?
Как вариант, нужно в образе преднастроить ассоциации файлов через GPO или логон скрипт SetupComplete.cmd
https://winitpro.ru/index.php/2017/01/23/upravlenie-fajlovymi-associaciyami-v-windows-10/
Добрый день есть такая опция как sources\$OEM$ не могу нагнулись статью по ней.
Но у меня один вопрос.
$OEM$\$progs копирует в Program Files
а какая переменная для Program Files (x86)
К сожалению не встречал список служебны папок для $OEM.
Вот Microsoft пишет, что можно использовать формат:
$OEM$\$1\subfolder
_https://learn.microsoft.com/en-us/windows-hardware/customize/desktop/wsim/distribution-shares-and-configuration-sets-overview
Попробуйте так:
$OEM$\$1\’Program Files (x86)’
Если не пойдет, возможно пробелы нужно как то экранировать/заменить
Думал про этот вариант. попробую — но $OEM$\$progs переменная взята мной с MS сайта. А теперь не смогла найти там вроде был список всех переменных.
>Windows 10/11
У меня ноутбук старенький.
Windows 10/11 не потянет.
Вопрос, подобным способом можно установить Windows 7
Да. Эти способы именно начиная с 7-ки и работают.
Ошибка: 32
Процесс не может получить доступ у файлу, так как этот файл занят другим процессом.
Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log
что делать с этой ошибкой? как выключить этот процесс?
на каком этапе хотя-бы какая ось
Добрый день
Образ собрал, получаю ошибку при загрузке с флехи
windows не удалось собрать данные для osimage так как указанный файл образа install.wim
Привет! Собрал образ утилитой Creation Tool, запихнул ISO в VirtualBox с UEFI (разделы в ISO для GPT). В инструкции в моменте, где указано нажать CTRL+SHIFT+F3 у меня ничего не происходит.
В режим аудита получится перейти только после первичной установки windows, на втором этапе где появится выбор регионов и надо нажимать ctrl+shift+f3, тогда сразу зайдет под учеткой админа и появится режим аудита
добрый день. sysprep завершается с ошибкой если установлен касперский. кто-нибудь сталкивался? какие минусы если не делать sysprep?
Начните с того, что изучите лог sysprep на ошибки (
%Windows%\System32\Sysprep\Panther\setupact.log
). Они точно связаны с касперским?И насколько я помню, можно создать образ с агентом администрирования. Сам антивирус будет накатываться политикой с сервера администрирования уже после развертывания ОС.
Без проблем делал себе образы Windows 7, 8, 10, 11 (по версию 23H2).
Сейчас вот обрадовался, что вышла Windows 11 Enterprise LTSC 2024. Сделал образ. Тестирую и ошибка при установке:
«Ошибка при установке Windows 11»
И куда копать? Информации в ошибке, вообще, нет.
PS: кстати, это уже вторая бесполезная ошибка в Window 11. Минус им.
Аналогично.
Включаю комп после sysprep и:
«Не удалось завершить процесс установки …»
Windows 11 Pro 24H2
У меня проблема была в папке «Windows.Old». Но у вас другая ошибка.
Да, другая.
Пробовал даже в режиме аудита просто обновы последние поставить, не накатывая софт и ничего не вырезая — та же ошибка.
Windows пишет довольно подробные лог файлы, путь к которым зависит от этапа установки Windows.
Посмотрите, на каком этапе установки произошел сбой и посмотрите на что ругается уставщик в логе.
_https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-setup-log-files-and-event-logs?view=windows-11
Почему-то подозреваю, что будет проблема с Microsoft Store приложениями или bitlocker….
Видимо что-то с AMD 🙂
Та же процедура на ноуте с intel прошла успешно.
OOBE только не получается скипнуть на 24H2, ни руфусом, ни файлом ответов.
ru-RU
ru-RU
ru-RU
ru-RU; en-US
true
3
true
UABhAHMAcwB3AG8AcgBkAA==
false
user
Administrators
Central Asia Standard Time
ru-RU
ru-RU
ru-RU
ru-RU; en-US
true
3
true
UABhAHMAcwB3AG8AcgBkAA==
false
user
Administrators
Central Asia Standard Time
Не получается сюда код скинуть, но через файл ответов всё получается.
Кажется выяснил, в чем дело.
Не получается руфусом, если создавать локальную УЗ с именем Administrator (а это нужно).
Пробовал через unattend-generator включать дефолтную УЗ и логиниться под ней — тоже ничего.
Если УЗ обозвать по другому (Admin например), то все ок.
После создания образа подобным способом при установке получаю пустое окно выбора редакций и ошибку — «Windows не удалось отобразить образы, доступные для установки». Две попытки — один результат. При проверке индексов штатного .wim на оригинальном образе — показывает 5 индексов и 5 редакций соответственно. При опросе DISMом созданного мной install.wim — Индекс 1, ImageName:Win10, ImageDescription: ПУСТО, ImageSizeL 32 960 097 617 Bytes. Дальнейшая установка невозможна. В чём может быть причина?
Добрый день! Подскажите, пожалуйста, есть желание сделать дистрибутив по данной инструкции с установкой различного ПО, например, Autodesk Revit/AutoCAD, которые по факту установки сразу пихают некоторые свои файлы в папки AppData/Roaming, AppData/Local и так далее. То есть папки конкретного пользователя. Что можно сделать в данном случае?
На самом деле это плохая практика. Если нельзя отучить эти программ писать свои данные в профиль пользователя (было бы оптимально), можно попробовать другие варианты:
1) Разливать программы уже после установки Windows (скриптами или через mdt/sccm/аналоги например)
2) Можно использовать параметр CopyProfile в sysprep (файл unattend.xml), который скопирует настройки из текущего пользователя в Default профиль. В статье это описано. Это конечно существенно увеличит его размер.
Понял, спасибо за ответ! Еще возник такой вопрос: я же верно понял суть статьи, это будет универсальный образ винды, который можно будет установить на любом компьютере? То есть, если я захочу, то могу его скинуть всем своим коллегам и друзьям?
Весь то софт, который пихает папки в профиль, сохраняет там настройки пользователя и создаёт их при первом запуске. Можно спокойно предустановить в режиме аудита и не париться.
При создании нового пользователя их же там нет и быть не может, а как новый запустит, так они и появятся.
Добрый день. Решил попробовать сделать образ 11 корп. по данной статье. Как итог не работает утилита сиспреп после использования вингет в принципе и так же не работает если устанавливать нотпад++(хоть вингетом хоть обычным ехе-шником). Ругается что установлено только для одного пользователя а не для всех. поэтому не будет с ней работать. При создании образа 10 про 22н2 примерно год назад таких ошибок не выдавало и все работало