Оглавление
Что хотим: хотим сделать свой образ Windows, с преднастроенным рабочим столом, меню Пуск, панелью задач для всех пользователей. С установленными уже в образ программами и обновлениями. И чтобы это все грузилось само на любой ПК без лишних вопросов.
Спойлер: надо будет самостоятельно сделать разметку дисков, но в остальном все автоматом
Что нам понадобится скачать:
- Чистый образ Windows. Мы будем работать с Windows 10 20H2.
- Windows ADK для версии 20H2. Из него достаточно установить только пакет “Средств развертывания”
- VirtualBox для установки и настройки системы. Или можете использовать для первоначальной настройки обычный компьютер.
Общий план действий
- Устанавливаем чистую ОС в VirtualBox. Сразу же ставим в нее обновления и необходимые программы. Программы не запускаем, так как папка AppData чистится при подготовке образа.
- Настраиваем меню Пуск и снимаем шаблон меню Пуск, файл LayoutModification.xml. Добавляем в этот файл настройки для ярлыков панели задач по умолчанию.
- Подготавливаем образ к использованию утилитой sysprep. Подключаем в VirtualBox дополнительный виртуальный жесткий диск и снимаем на него образ подготовленной ОС в формате .wim
- Редактируем снятый образ, удаляем из него программы по умолчанию, подсовываем файл шаблона меню Пуск пользователю по умолчанию, редактируем реестр пользователя по умолчанию, чтобы новый пользователь в чистой ОС получал сразу нужные нам параметры рабочего стола и пр.
- Формируем постустановочный файл SetupComplete.cmd, если нужно чтобы какие то параметры или команды применялись после установки ОС. Подсовываем его
- Утилитой Windows System Image Manager создаем файл ответов autounattended.xml, в который забиваем все параметры установки системы, чтобы не нажимать мышью при установке. Файл автоответов кладем в корень нашего образа.
- Формируем из полностью подготовленного образа .iso файл для записи на флешку.
- Записываем загрузочную флешку, чтобы она распознавалась и на старых Legacy и на новых UEFI системах.
Установка чистой ОС. Установка обновлений. Установка прикладных программ
Устанавливаем VirtualBox, создаем новую виртуальную машину и устанавливаем ОС Windows со стандартными параметрами в ней. При первой загрузке на первом же окне выбора языка нажимаем CTRL+SHIFT+F3, ОС перезагрузится в режим настройки:
Закрываем окно “Программы подготовки системы” и приступаем к установке. На этом этапе можно установить и настроить:
Обновления ОС
Прикладные программы
Если в процессе установки требуется перезагрузить ОС, открываем sysprep и запускаем с параметрами “Переход в режим аудита системы” и “Перезагрузить”:
Далее, нам понадобится виртуальный диск, на который мы сможем скопировать нужные нам настройки нашей виртуалки и впоследствии сохранить готовый образ. Диск можно создать и добавить прямо в VirtualBox, в нашем случае добавлен фиксированный .vhd диск “16Gb.vhd”:
Внутри виртуальной машины он отображается как диск E:, на него мы скопируем нужные нам впоследствии файлы.
Настройка меню пуск и панели задач
Теперь в чистом образе мы должны настроить меню Пуск и панель задач, чтобы они были однотипные во всех устанавливаемых с него ОС. Чистим как хотим меню Пуск, запускаем Powershell от имени администратора и вводим команду:
Export-StartLayout -Path E:\LayoutModification.xml
Таким образом, получим файл LayoutModification.xml с преднастроенным меню Пуск.
Если хотим в чистом образе изменить ярлыки на панели задач по умолчанию:
Нужно открыть полученный файл в текстовом редакторе и добавить после пункта <DefaultLayoutOverride> следующий текст:
То есть, если мы хотим, чтобы у всех новых пользователей вместо стандартных Edge, Проводника и др. отображались например Проводник, Outlook и Chrome, надо внести:
<CustomTaskbarLayoutCollection PinListPlacement="Replace" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout">
<defaultlayout:TaskbarLayout>
<taskbar:TaskbarPinList>
<taskbar:DesktopApp DesktopApplicationLinkPath="%WINDIR%\explorer.exe" />
<taskbar:DesktopApp DesktopApplicationLinkPath="%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Microsoft Office 2013\Outlook 2013.lnk" />
<taskbar:DesktopApp DesktopApplicationLinkPath="%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk" />
</taskbar:TaskbarPinList>
</defaultlayout:TaskbarLayout>
</CustomTaskbarLayoutCollection>
Дальнейшие действия будем производить уже с файлом образа, поэтому запускаем sysprep с параметрами “Переход в окно приветствия системы (OOBE)”, “Подготовка к использованию” и “Завершение работы”. Или, командой:
c:\windows\system32\sysprep\sysprep.exe /generalize /oobe /shutdown
Создаем WIM-образ
Снова грузимся в VirtualBox с оригинального образа. На этот раз ничего не устанавливаем, на первом же экране выбора языка установки нажимаем SHIFT+F10, у нас откроется консоль.
Набираем команду:
wmic volume list brief
Нас интересует диск C:\, это подготовленный нами образ и диск D:\ это все еще подключенный “16Gb.vhd”.
Или, если вам привычнее diskpart, можете определить буквы дисков через нее.
Снимаем подготовленный образ в формат .wim командой:
dism /capture-image /imagefile:D:\install.wim /capturedir:C:\ /compress:max /name:"Windows 10 x64 20H2"
Здесь мы говорим, что хотим снять образ системного диска C:\ в файл D:\install.wim (то есть на “16Gb.vhd”) со сжатием.
Пока больше VitrualBox нам не понадобится.
Отключаем наш виртуальный диск “16Gb.vhd” из VirtualBox и подключаем его уже в нашу рабочую ОС, где мы проделываем все операции в оснастке “Управление дисками” для дальнейшей работы.
Перед началом всех дальнейших действий создадим технологические папки, с которыми будем работать в дальнейшем. В моем случае они также на диске D:
“D:\iso” – в эту папку требуется развернуть чистый образ устанавливаемой системы. Если у вас файл .iso, можете просто разархивировать его содержимое в эту папку.
“D:\mnt” – в эту папку мы будем монтировать чистый образ из папки “D:\iso” для модификаций.
“D:\tmp” – в эту папку положим все дополнительные файлы
Берем чистый образ, с которого производили установку в VirtualBox и разархивируем его в d:\iso:
Копируем наш созданный файл install.wim с “16Gb.vhd” в папку D:\iso\sources с заменой.
AutoUnattend.xml
Теперь, имея готовый образ ОС Windows 10 с измененным по нашему желанию профилем пользователя по умолчанию, мы можем создать для него файл автоответов установки AutoUnattend.xml, который мы положим в корень загрузочной флешки и который будет проводить нам установку системы по заранее прописанным параметрам. То есть, он гарантирует нам полностью автоматическую установку без доп. вопросов, мы будем сразу попадать на рабочий стол администратора.
В этом нам поможет утилита Deployment Tools из пакета Windows Assessment and Deployment Kit (ADK)
Работа с данной утилитой крайне подробно описана в цикле статей: Автоматическая установка Windows Vista и новее
В самом простом случае, нам потребуются следующие ветки:
Справа будут параметры, которые надо заполнить по смыслу, но лучше открыть указанный цикл статей на OSZone, там все расписано более чем подробно.
Единственное что у меня не получилось с помощью этого файла это корректно разбить жесткий диск для устанавливаемой системы. Вся проблема в том, что у нас может попасться старый ПК, который будет грузиться только в Legacy режиме или новый ПК, который будет грузиться только в EFI. Разбивка диска соответственно должна быть либо MBR, либо GPT и как сделать автовыбор у меня не получилось. Приходится разбивать диск непосредственно при установке.
LayoutModification.xml
Для изменения шаблона меню Пуск пользователя по умолчанию нам нужно просто скопировать созданный выше файл LayoutModification.xml в нужное место подключенного образа:
copy D:\tmp\LayoutModification.xml D:\mnt\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml
Теперь все новые пользователя будут создаваться с преднастроенным нами меню Пуск и панелью задач.
Монтирование .wim файла для редактирования
Далее, мы монтируем созданный нами .wim файл в отдельную папку для дальнейшего редактирования.
Делается это через Powershell командами:
dism /mount-wim /wimfile:d:\iso\sources\install.wim /index:1 /mountdir:d:\mnt
подключает .wim файл в указанную папку для редактирования. Параметр /index:1 указывает номер редакции Windows для подключения. В нашем случае редакция одна. Если бы редакций было бы несколько, посмотреть их можно было бы командой:
dism /get-wiminfo /wimfile:d:\iso\sources\install.wim
Команда:
dism /unmount-wim /mountdir:d:\mnt /commit
“собирает” файлы из подключенной папки обратно в .wim файл с сохранением изменений.
Команда:
dism /unmount-wim /mountdir:d:\mnt /discard
принудительно отключает подключенный образ со сбросом изменений, применяется в случае возникновения ошибок
Итак, подключаем наш файл .wim в папку d:\mnt первой командой и сразу копируем в нее наш файл AutoUnattend.xml:
Убираем из образа предустановленное ПО
Для того, чтобы увидеть какое ПО предустановлено в нашем образе, нужно выполнить команду Powershell:
Get-AppxProvisionedPackage -Path "D:\mnt\" | Format-Table DisplayName, PackageName
Можно удалять приложения по одному:
Remove-AppxProvisionedPackage -Path "D:\mnt" -PackageName Microsoft.549981C3F5F10_1.1911.21713.0_neutral_~_8wekyb3d8bbwe
Или все разом, кроме некоторых исключений (в нашем случае мы оставляем магазин приложений, калькулятор, просмотрщик фотографий и Панель Nvidia), вы можете отредактировать по смыслу:
get-appxprovisionedpackage -Path "D:\mnt" | where-object {($_.packagename -notlike "*photo*") -and ($_.packagename -notlike "*store*") -and ($_.packagename -notlike "*nvidia*") -and ($_.packagename -notlike "*calc*")} | remove-appxprovisionedpackage -Path "D:\mnt"
Редактирование реестра пользователя по умолчанию
Все профили новых пользователей создаются из профиля пользователя Default. То есть, если мы хотим, чтобы при создании нового пользователя, у него был уже преднастроен рабочий стол, меню пуск, панель задач и пр, мы должны отредактировать только профиль пользователя по умолчанию.
Подключаем реестр пользователя по умолчанию к нашему основному профилю командой:
reg load HKEY_USERS\TMP D:\mnt\Users\Default\NTUSER.DAT
В папке d:\tmp которая у нас для временных файлов создадим файл d:\tmp\import.reg следующего содержания:
Windows Registry Editor Version 5.00
;Отключаем опцию "Иногда показывать предложения в меню "Пуск"
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
"SubscribedContent-338388Enabled"=dword:00000000
;Отключение всех функций “Windows: интересное
[HKEY_USERS\TMP\SOFTWARE\Policies\Microsoft\Windows\CloudContent]
"DisableWindowsSpotlightFeatures"=dword:00000001
;Убираем кнопку Кортаны из панели задач
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowCortanaButton"=dword:00000000
;Убираем кнопку Просмотра Задач из панели задач
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"ShowTaskViewButton"=dword:00000000
;Убираем кнопку Просмотра Задач из панели задач
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"TaskbarGlomLevel"=dword:00000002
;Включаем отображение Моего Компьютера вместо Быстрого Запуска в проводнике
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"LaunchTo"=dword:00000001
;Отключаем автоустановку принтеров в сети
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"NoNetCrawling"=dword:00000001
;Установить мелкие значки в панели управления
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel]
"AllItemsIconView"=dword:00000001
;Открывать панель управления сразу с мелкими значками
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel]
"StartupPage"=dword:00000001
;Отключаем виджет "Новости и интересы"
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds]
"ShellFeedsTaskbarViewMode"=dword:00000002
;Отключаем центр уведомлений Windows 10
[HKEY_USERS\TMP\Software\Policies\Microsoft\Windows\Explorer]
"DisableNotificationCenter"=dword:00000001
;Отключаем OneDrive
[HKEY_USERS\TMP\SOFTWARE\Policies\Microsoft\Windows\OneDrive]
"DisableFileSyncNGSC"=dword:00000001
;Вместо строки поиска в панели задач ставим значок
[HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Search]
"SearchboxTaskbarMode"=dword:00000002
;Отключаем значок "Провести собрание"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"HideSCAMeetNow"=dword:00000001
;Убираем добавление ярлыка Edge на рабочий стол
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EdgeUpdate]
"CreateDesktopShortcutDefault"=dword:00000000
Импортируем параметры из файла import.reg в подключенный реестр:
reg import D:\tmp\import.reg
Заодно удалим из реестра параметр, отвечающий за установку OneDrive для новых пользователей:
reg delete HKEY_USERS\TMP\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ /v OneDriveSetup /f
Отключаем ветвь подключенного реестра:
reg unload HKEY_USERS\TMP
SetupComplete.cmd
Все, что нельзя изменить через реестр, можно прописать в файл .cmd, который будет запускаться после установки нашей системы файлом. Создаем в папке D:\mnt\Windows\Setup папку Scripts
Внутри папки Scripts создаем файл SetupComplete.cmd в который пишем любые команды, которые будут выполнены после установки системы. Например, можно прописать команду, которая будет удалять ярлык Edge с рабочего стола каждого пользователя:
FOR /f "delims=" %%I IN ('dir /s /b /o:n "%SystemDrive%\Users" ^| findstr /i ".lnk" ^| findstr /i "edge"') DO (del /q /s "%%I")
Не забываем отключить примонтированный образ.
Создаем .iso образ из преднастроенного .wim
oscdimg -h -m -o -u2 -udfver102 -bootdata:2#p0,e,b"D:\iso\boot\etfsboot.com"#pEF,e,b"D:\iso\efi\microsoft\boot\efisys.bin" -lMyISO "D:\iso" "D:\Win10.iso"
Создание мультизагрузочной UEFI / LEGACY флешки
Остается сущий пустяк – записать наш созданный образ на флешку.
Проблема оказалась в том, что у меня никак не получалось создать такую флеш, которая нормально бы грузилась и в LEGACY и в UEFI. Ни UltraISO, ни Rufus не смогли сделать нормальный загрузочный диск.
Получилось только уже старой программой Windows 7 USB/DVD Download Tool. На GitHub есть ее портативная версия: https://github.com/stadub/wudt–Windows-USB-DVD-Download-Tool/releases
Ссылки
https://www.outsidethebox.ms/9951/#copyprofile
https://www.white-windows.ru/kak-udalit-klient-onedrive-iz-obraza-windows-10-ili-11/