Всем привет. В виду огромного количества появившихся "кастомных" сборок виндей, решил собрать свои скрипты для этого процесса. Зачем? Да ради уверенности в отсутствии непотребного П.О. - хотя бы.
Считайте это дополнением к статье - Windows 11 - делаем сборку для себя.
В конце статьи - ссылка на обновлённый скрипт от -- 22.07.2024 --.
Насобирал скрипты для обрезки лишнего, внесения настроек и изменений в wim-файл дистрибутива windows_11, а точнее IoT 23h2-22631.2506. На этой версии проходило тестирование. В общем по порядку.
Для начала работы - в основных скриптах ( rexport.cmd, apps_cmpns.cmd, wim_esd.cmd, work.cmd ) меняем пути на свои. Это переменные dismm , wimpath, mntdir.
wim_esd.cmd - конвертирует wim в esd и обратно, нужное раскомментировать, не нужное закомментировать.
rexport.cmd - просмотр редакций входящих в образ и экспорт нужной из него. Меняем параметр /SourceIndex на нужный.
Скриптом apps_cmpns.cmd - можно получить список приложений и компонентов в wim-образе, сохраняет в виде текстовых файлов в папке logs. Посмотрев список - можно выбрать и добавить нужное в скрипт work.cmd.
work.cmd - основной скрипт, выполняющий подавляющее количество настроек и изменений в wim-образе. Монтирует образ.wim в папку - %mntdir%, удаляет выбранные приложения и компоненты, монтирует реестр и вносит изменения (твики, настройки, коррективы), добавляет скрипт firstlogon.cmd в RunOnce - реестра, который выполнится один раз при первом входе пользователя, ну и отмонтирует реестр.
Далее копирует файлы: SetupComplete.cmd, firstlogon.cmd, start2.bin, SetACL.exe (и программы для установки) в
%папку монтирования%\Windows\Setup\Scripts
Создаёт в папке рядом с wim-файлом древо папок $oem$\$$\Setup\Scripts и копирует туда SetupComplete.cmd
Это древо с содержимым - $oem$\$$\Setup\Scripts\SetupComplete.cmd нужно будет скопировать вместе с wim-файлом в папку SOURCES ISO-образа
Сохраняет и размонтирует образ.wim
SetupComplete.cmd - запускается после установки - при первом запуске системы. Производит настройки и изменения в реестре - которые нельзя было выполнить раньше. SetACL.exe - используется для смены прав на некоторые ветви реестра. От сюда же производится установка программ ( в данном случае только 7zip ).
firstlogon.cmd - запускается один раз, при первом входе пользователя. Из него происходит установка Edge, донастройка некоторых параметров и копирование start2.bin - (это шаблон кнопки "Пуск" без пустых закреплений после удаления рекомендуемых приложений). Чтоб не устанавливать Edge, нужно в work.cmd раскомментировать строку reg delete "HKU\wim_software\Microsoft\Active Setup\Installed Components\{9459C573-B17A-45AE-9F64-1857B5D58CEE}" / , а в файле firstlogon.cmd - закомментировать блок кода под строкой rem установки Edge
После обработки wim-образа скриптом work.cmd, wim-файл можно сжать в esd.
Далее добавить wim-файл или esd-файл в папку sources ISO-образа, туда же копируем всю папку $oem$ - с содержимым. Сохраняем iso.
И так, ещё раз, примерный алгоритм работы:
- Настраиваем свои пути в переменных dismm, wimpath, mntdir
- Копируем из ISO-файла install.esd или install.wim. Если это install.esd - распаковываем его в install.wim с помощью wim_esd.cmd, раскомментировав соответствующую строку, другие не забываем закомментить.
- rexport.cmd - смотрим редакции в образе и экспортируем нужную с именем install_2.wim. Не забываем указать верный индекс /SourceIndex редакции для экспорта. Удаляем или переименовываем мульти-редакционный install.wim, а install_2.wim переименовываем в install.wim. В rexport.cmd две строки экспорта для примера.
- apps_cmpns.cmd - монтирует образ в %mntdir% и выводит список приложений и предустановленных компонентов в текстовые файлы logs\apps.txt и logs\comps.txt И размонтирует образ.
- ну и work.cmd - его работа описана выше. Тот, кому кажется излишним такое количество монтирований/размонтирований - может вынести их в отдельный скрипт.
После обработки wim-файла, копируем install.wim (.esd) и папку $oem$ - вместе с содержимым в папку SOURCES ISO-образа, сохраняем.
И тестируем настроенную винду.
Обработки ошибок в скриптах нет, кому надо - делайте.
С некоторых пор, Windows-IoT перестала активироваться через нэт, а активаторы пока её не осиливают, по этому лучше выбирать Pro или Enterprise. Можно использовать этот - w10x64_shablon.iso в нём удалён install.wim, откл. проверка на "несоответствие оборудования требованиям" и проверка наличия модуля TPM (Trusted Platform Module). Так же в корень w10x64_shablon.iso добавлен файл AutoUnattend.xml , вносящий изменения в настройки установщика. При установке будут запрошены: раздел для установки и имя/пароль пользователя.
Почти все команды в скриптах прокомментированы. Кратко о том - что выключается: отключены - разнообразные журналы, резервные копии журналов, логирование входов, отчёты об ошибках, служба диагностики, удалённые вмешательства. Обновления - только проверка, не включает средство удаления вредоносов, без обновления драйверов. Фильтр SmartScreen отключён. Контроль учётных записей - уведомлять не затеняя. Defender выключен. Удалённый помощник отключен. Из планировщика убраны лишние задачи, телеметрия, Xbox, ... Ну и немного настроено меню пуск- больше закреплений, отключен мусор от микрософта и скрыта строка поиска в панели задач. Подробнее смотреть в скриптах.
Редактировать iso-образ можно программой - anyBurn. Тестировал в VirtualBox 7.0
Доработки и дальнейшее наполнение скриптов функционалом - дело опыта и творчества ;-)
Файлы: архив со скриптами, w10x64_shablon.iso
==========================================
В firstlogon.cmd небольшие доработки.
Пробовал тут скрипты для обрезки W10_1809 , понятно что многих пакетов там нет и скрипт work выводит ошибки удаления отсутствующих пакетов, но в целом отрабатывает, ходя лучше под конкретную ОС дорабатывать, но лень. Так вот изменения - чтоб работал и для w10:
IF %CNT% GEQ 500 goto met2 ( GEQ 500 сменить на GEQ 10) - чтоб уменьшить число попыток.
В xcopy /Y добавить /i и полное имя в конце:
xcopy /Y /i %windir%\Setup\Scripts\start2.bin "%USERPROFILE%\AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\LocalState\"
del /s /q %windir%\Setup\Scripts\start2.bin
А также удаление процессов MsEdge и SmartScreen из бэкграунда:
rem disable Edge background
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" /v Disabled /t REG_DWORD /d 00000001 /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications\Microsoft.MicrosoftEdge_8wekyb3d8bbwe" /v DisabledByUser /t REG_DWORD /d 00000001 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MicrosoftEdge\Main" /v AllowPrelaunch /t REG_DWORD /d 00000000 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader" /v PreventTabPreloading /t REG_DWORD /d 00000001 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\MicrosoftEdge\TabPreloader" /v AllowTabPreloading /t REG_DWORD /d 00000000 /f
rem del task SmartScreen
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows" /v SmartScreenEnabled /t REG_SZ /d "0" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" /v SmartScreenEnabled /t REG_SZ /d "Off" /f
reg add "HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\PhishingFilter" /v EnabledV9 /t REG_DWORD /d 00000000 /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\AppHost" /v EnableWebContentEvaluation /t REG_DWORD /d 00000000 /f
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System" /v EnableSmartScreen /t REG_DWORD /d 00000000 /f
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows" /v SmartScreenEnabled /t REG_DWORD /d 00000000 /f
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SmartScreen" /v "ConfigureAppInstallControl" /t REG_SZ /d "Anywhere" /f
reg add "HKLM\Software\Policies\Microsoft\Windows Defender\SmartScreen" /v "ConfigureAppInstallControlEnabled" /t "REG_DWORD" /d "0" /f
rem переименуем smartscreen.exe
takeown /s %computername% /u %username% /f "%WinDir%\System32\smartscreen.exe"
icacls "%WinDir%\System32\smartscreen.exe" /grant:r %username%:F
taskkill /im smartscreen.exe /f
rem del "%WinDir%\System32\smartscreen.exe" /s /f /q
rename "%WinDir%\System32\smartscreen.exe" smartscreen.ex_
smartscreen - ну ни как не хотел покидать процессы ;-)
==========================================
В общем, активировать IoT , да и любую редакцию можно так:
запускаем консоль powershell от администратора, интернет должен работать и вводим команду irm https://massgrave.dev/get | iex
Подробнее о MASSGRAVE можете узнать на гитхаб.
==================================================
Если в процессе работы, скрипт пишет - не удаётся найти файл, скорее всего в wim-файле его уже нет, так как скрипт обрезки писался для полного дистрибутива, а скачанные например с uup.rg-adguard.net - уже с удалёнными компонентами и т.п.
И не стесняемся редактировать под свои нужды.
==================================================
-- 22.07.2024 --
Не большое обновление рабочего скрипта ( configs_final_22.07.2024.zip )
Добавлен скрипт winsxs_ntfs_compress2.cmd на рабочий стол, он очищает и сжимает папку WinSxS. Запускать от "Администратора" после установки Win, работает не быстро но результативно - нужно подождать. Потом его можно удалить.
Применение скрипта winsxs_ntfs_compress2.cmd к дистрибутиву до установки ( wim-файлу ) - оказалось не эффективным.
Тестировал на "W11 26100.1150.240702-1833 RU". После установки система занимает ≈ 12,5 Гб.
После работы скрипта winsxs_ntfs_compress2.cmd, ос занимает ≈ 7,4 Гб . Без файла подкачки ≈ 5,6 Гб.
Не забываем поправить пути на свои, у меня скрипты в f:\Windows Kits\10\configs_final\ , wim-файл в f:\tmpF\wims\ , папка монтирования f:\mountF\
DISM можно использовать встроенный в систему.
--------------------------------------------------
"микрософт" в w11 24H2 - внедрили новые ограничения поддержки оборудования, блокирующие установку на не поддерживаемое оборудование. По некоторым данным - они обходятся с помощью rufus 4.6 или утилитой Flyby11. Не проверял, как только проверю - так дополню инфу.
---------------------------------------------------
Всем удачи, пока.