В этом гайде мы разберемся как создать собственный установочный образ с 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