Быстрая установка Windows
В этой статье рассмотрим автоматическую установку Windows с использованием batch-скриптов, а также изучим возможности их модификации.
Создание WinPE окружения
- Зайдите на сайт docs.microsoft.com и скачайте необходимые инструменты:
- Windows ADK для Windows 10, версия 2004;
- Надстройку Windows PE для ADK, версия 2004.
- Установите их в указанной последовательности.
После установки откройте в меню «Пуск» папку Windows Kits и выберите «Среда средств развертывания и работы с образами». В открывшейся командной строке выполните следующие команды:
cd C:\
copype amd64 C:\winpe
Результатом выполнения будет структура папок и файлов для настройки Windows PE.
Получение файла install.wim
Файл install.wim
— это архив с релизами операционных систем Windows, содержащий все файлы для их развертывания. Подробнее см. Windows Imaging Format.
Вы можете получить этот файл:
- С официального сайта Microsoft (раздел «Скачать образ диска Windows 10 (ISO-файл)»);
- С альтернативных источников (например, торрентов).
Смонтируйте ISO-образ и скопируйте файл install.wim
или install.esd
(сжатая версия) из папки sources
в каталог C:\winpe\media\sources
.
Редактирование файла boot.wim
Чтобы отредактировать boot.wim
, выполните следующие действия:
- Смонтируйте образ:
Dism /mount-wim /wimfile:C:\winpe\media\sources\boot.wim /index:1 /mountdir:C:\winpe\mount
- Измените файл
startnet.cmd
:- Откройте свойства файла (
C:\winpe\mount\Windows\System32\startnet.cmd
), перейдите на вкладку «Безопасность», нажмите «Изменить…», выберите группу «Пользователи» и установите разрешение «Изменение». - Откройте файл в текстовом редакторе и добавьте/отредактируйте следующий код:
@echo off @echo wpeinit wpeinit @echo call wpeutil UpdateBootInfo wpeutil UpdateBootInfo set WinPEREG="HKLM\System\CurrentControlSet\Control" set WinPEKey=PEBootRamdiskSourceDrive set WinPESource= for /f "skip=2 tokens=3" %%A in ('call Reg query %WinPEREG% /v %WinPEKEY%') do set WinPESource=%%A @echo WinPESource is drive letter "%WinPESource%" if "%WinPESource%"=="" echo Drive letter NOT found.&& call :FindDrive echo WinPESource is "%WinPESource%" @echo call %WinPESource%sources\install.cmd call %WinPESource%sources\install.cmd goto :END :FindDrive echo Trying to find drive letter using diskpart echo Lis Vol>x:\FindVol.txt diskpart /s x:\FindVol.txt>x:\VolumeList.txt for /f "skip=8 tokens=3-4" %%A in (x:\VolumeList.txt) do ( echo Checking drive letter %%A has volume label of %%B if /i "%%B"=="WINPE" set WinPESource=%%A ) set WinPESource=%WinPESource%:\ goto :EOF :END
- Откройте свойства файла (
- Замените фон рабочего стола:
- Скопируйте изображение в файл
C:\winpe\mount\Windows\System32\winpe.jpg
. - Измените владельца файла и права доступа аналогично предыдущему шагу.
- Скопируйте изображение в файл
- Отключите образ и сохраните изменения:
Dism /unmount-wim /mountdir:C:\winpe\mount /commit
Создание файла install.cmd
Создайте файл C:\winpe\media\sources\install.cmd
со следующим содержимым:
@echo off
cls
echo _ ___ __
echo ^| ^| / (_)___ ____/ /___ _ _______ ^<`)
echo ^| ^| /^| / / / __ \/ __ / __ \ ^| /^| / / ___/ (//
echo ^| ^|/ ^|/ / / / / / /_/ / /_/ / ^|/ ^|/ (__ ) 1
echo ^|__/_______/ /_/\__,_______/____^|__/____/ __ ____
echo / ____/___ ______/ /_ / _/___ _____/ /_____ _/ / /
echo / /_ / __ `/ ___/ __/ / // __ \/ ___/ __/ __ `/ / /
echo / __/ / /_/ (__ ) /_ _/ // / / (__ ) /_/ /_/ / / /
echo /_/ \__,_/____/\__/ /___/_/ /_/____/\__/\__,_/_/_/
echo Made by birdiecode
echo.
echo Check disks...
echo.
@echo.>x:\listdisk.txt
@echo list disk>>x:\listdisk.txt
@echo exit>>x:\listdisk.txt
call diskpart /s x:\listdisk.txt>x:\Disks.txt
for /f "skip=6 delims=" %%A in (x:\Disks.txt) do (
if "%%A"=="Leaving DiskPart..." goto :brfor1
echo %%A
)
:brfor1
echo.
set /p DiskInst="Select the disk to install Windows: "
echo Legacy installation
@echo.>x:\winpart.txt
@echo select disk "%DiskInst%">>x:\winpart.txt
@echo clean>>x:\winpart.txt
@echo create partition primary size=100>>x:\winpart.txt
@echo active>>x:\winpart.txt
@echo format quick fs=ntfs label="System">>x:\winpart.txt
@echo assign letter="S">>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Windows">>x:\winpart.txt
@echo assign letter="W">>x:\winpart.txt
@echo exit>>x:\winpart.txt
diskpart /s x:\winpart.txt
echo Check Wim image...
dism /apply-image /imagefile:%WinPESource%sources\install.wim /index:1 /applydir:W:\
bootsect /nt60 S: /mbr
W:
cd W:\Windows\System32
bcdboot W:\Windows /s S: /f BIOS
exit
Убедитесь, что путь к образу install.wim
и его индекс указаны корректно. Чтобы узнать доступные индексы, выполните:
Dism /Get-WimInfo /WimFile:C:\winpe\media\sources\install.wim
Отредактировать строку 46, а именно аргумент /index:
если индекс отличаеться от необходимого.
Создание загрузочного носителя
Для записи Windows PE на флешку выполните:
MakeWinPEMedia /UFD C:\winpe F:
Для создания ISO-образа:
MakeWinPEMedia /ISO C:\winpe C:\winpe\WinPE_amd64.iso
При необходимости измените имя образа, воспользовавшись утилитой UltraISO.
Использованные ресурсы
- http://scriptcoding.ru/2013/08/19/cmd-for/
- https://celitel.info/klad/nhelp/helpbat.php?dcmd=usf_ecran
- https://www.bootdev.ru/2018/08/Installing-Windows-from-WIM-or-ESD-image.html#ManualInstall
- https://www.bootdev.ru/2019/05/Repair-Windows-Bootloader.html
- https://computer76.ru/2019/07/18/legacy-%D0%B8%D0%BB%D0%B8-uefi/
- https://winkomp.ru/fajly-cmd-rabota-s-fajlami-iz-konsoli-chast-2
- https://docs.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/winpe-mount-and-customize#addwallpaper
- http://pyatilistnik.org/kak-v-cmd-posmotret-vse-diski-windows/
- https://habr.com/ru/post/301534/
- https://linux-tips.com/t/booting-from-an-iso-image-using-qemu/136/2
- https://docs.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/wpeinit-and-startnetcmd-using-winpe-startup-scripts
- https://windowsnotes.ru/other/izvlekaem-fajly-iz-ustanovochnogo-obraza-windows/
- http://pyatilistnik.org/sozdaem-svoyu-sborku-windows-10-3-chast/
- https://windowstips.ru/kak-sozdat-svoyu-sborku-windows-10
- https://habr.com/ru/post/181261/
- https://ru.wikipedia.org/wiki/Windows_Imaging_Format
- https://remontcompa.ru/windows/sborki-i-distributivy-windows/1521-kak-sozdat-svoyu-sborku-windows-s-pomoschyu-programmy-ntlite.html
- https://habr.com/ru/post/395629/
- https://www.white-windows.ru/kak-otredaktirovat-reestr-windows-v-obraze-sistemy/
- https://misterit.ru/kak-otkryt-reestr-windows.html
- https://docs.microsoft.com/ru-ru/windows-hardware/get-started/adk-offline-install
- http://pyatilistnik.org/kak-v-cmd-posmotret-vse-diski-windows/
- https://github.com/hightemp/docWindows/blob/master/articles/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B8%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%20OOBE%20%D0%BF%D1%80%D0%B8%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B9%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B5%20Windows%2010%20%D0%B8%20%D0%BA%D0%B0%D0%BA%20%D0%B8%D1%85%20%D1%83%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C.md
- https://990x.top/oobe-chto-eto-za-programma-windeploy-exe-otvet.html
- https://meshok-sovetov.ru/oobesettings-windows-10-chto-delat/
- https://sysadmins.ru/topic183540.html
- https://windowstips.ru/kak-sozdat-svoyu-sborku-windows-10
- https://meshok-sovetov.ru/redaktirovanie-reestra-drugoy-windows/
- https://ab57.ru/cmdlist/reg.html
- https://docs.microsoft.com/ru-ru/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive