Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.
Но существует альтернативный способ установить Windows — более быстрый, не требующий подключения к интернету и не навязывающий никаких сервисов — ручная установка с использованием CMD.
Если описать кратко, процесс состоит из следующих частей:
Загрузка с установочного носителя
Ручная разметка диска
Применение WIM-образа (WIM — формат файлов, используемый Microsoft для хранения упакованных системных файлов Windows)
Установка загрузчика
Шаманство с реестром
Первая перезагрузка, запуск с жёсткого диска
Запуск процесса «развёртывания» (deploy) системы
Создание пользователя
Ещё немного возни с реестром и две перезагрузки
PROFIT!
Этап 1. Установка системы
Итак, предположим, что вы уже знаете, как запустить установщик Windows. Теперь было бы неплохо открыть командную строку — для этого, конечно, можно долго и нудно ковыряться в средствах восстановления, но есть и метод проще — нажать сочетание клавиш Shift+F10
.
Выглядит это вот так:

Разметка диска
Теперь, пожалуй, стоит разметить диск, ведь нужно же куда-то устанавливать систему. Для этого прекрасно подойдёт встроенная утилита diskpart
, предоставляющая консольный интерфейс для работы с дисками.
Для установки системы вам понадобится два раздела — тот, на котором она будет установлена, и загрузочный раздел EFI. Эти разделы нужно создать, отформатировать (EFI-раздел нужно форматировать в FAT32, а основной — в NTFS) и назначить им буквы, чтобы позже использовать их в процессе установки. Я предпочитаю назначать для основного раздела букву C
, а для EFI — W
. Если вы захотите использовать другие буквы, не забудьте поменять их во всех командах, которые я буду приводить ниже.
Если ваш диск абсолютно пустой (например, если вы ставите систему на ВМ), то вы можете воспользоваться подготовленными мной командами:
select disk 0
convert gpt
create partition efi size=512
format quick fs=fat32
assign letter W
create partition primary
format quick
assign letter C
Здесь сначала выбирается диск с индексом 0 (то есть первый). Далее он конвертируется в формат GPT, а затем на нём создаются, форматируются и получают буквы два раздела — EFI размером 512 мб и основной, занимающий всё оставшееся место.
Применение WIM-образа
Теперь пришло время скопировать на свежесозданный раздел системные файлы Windows. Для этого существует утилита Dism
. Она способна выполнять самые разнообразные операции с образами, однако нам понадобятся лишь две из них — /Get-WinInfo
и /Apply-Image
.
Для начала стоит определиться, какие редакции Windows доступны для установки. Чтобы узнать это, используйте следующую команду:
dism /get-wininfo /wimfile:D:\sources\install.wim
D:\sources\install.wim
— файл, содержащий все файлы всех доступных редакций системы. Также этот файл может называться install.esd
, поэтому, если команда выдала ошибку о том, что файл не найден, попробуйте заменить расширение .wim
на .esd
.
UPD: диск D:
— установочная флешка. Если у вас возникают ошибки при вводе команды, возможно, система назначила установочной флешке другую букву. Используйте команду diskpart list volume
, чтобы просмотреть список томов.
Результат будет примерно таким:

Каждая редакция внутри WIM-файла имеет уникальный индекс, который в дальнейшем нужно будет передать команде установки. Я буду устанавливать Windows 10 Pro, её индекс - 4
.
Теперь пришло время самого важного и долгого процесса — применения WIM-образа. В терминологии DISM, применение — это копирование содержащихся в образе файлов в указанную папку (обычно в корень диска) с последующей их подготовкой к работе.
Применение WIM-образа осуществляется такой командой:
dism /apply-image /imagefile:D:\sources\install.wim /index:4 /applydir:C:\
Параметр /imagefile
указывает утилите путь к файлу образа, параметр /index
— необходимую редакцию системы, а /applydir
— место, куда должны быть помещены файлы. В нашем случае это корень диска C
.
Окно CMD после ввода этой команды будет выглядеть так:

Необходимо подождать, когда утилита закончит свою работу. После этого можно переходить к установке загрузчика.
Установка загрузчика
Загрузчик устанавливается довольно простой командой:
bcdboot C:\Windows /s W:
Первый параметр задаёт папку, в которой находится система, а параметр /s
— раздел, на который необходимо установить загрузчик. Установка загрузчика — быстрая операция, занимающая всего несколько секунд.
Когда загрузчик установлен, система фактически готова к загрузке с жёсткого диска, но есть ещё один момент...
Немного твиков реестра
Я не думаю, что вы хотели бы после ручного выполнения первого этапа установки увидеть стандартный OOBE, который сразу же предложит вам подключиться к интернету, чтобы окунуть вас в цифровой концлагерь экосистему Microsoft. Если уж ставить руками — то ставить до конца, не так ли?)
Чтобы при загрузке системы с жёсткого диска вместо неповоротливого OOBE вас встретила элегантная консоль, выполните эти две команды:
reg load HKLM\mount_SYSTEM C:\Windows\System32\config\SYSTEM
reg add HKLM\mount_SYSTEM\Setup /v CmdLine /d "cmd.exe" /t REG_SZ /f
Первая загрузит куст реестра SYSTEM
только что распакованной вами с помощью DISM системы, поместив его в локальном реестре по пути HKEY_LOCAL_MACHINE\mount_SYSTEM
(если вы не знали, HKLM
— это сокращение от HKEY_LOCAL_MACHINE
, а весь реестр на самом деле лежит в папке C:\Windows\System32\config
в виде файлов особого формата).
Вторая команда задаст в качестве установщика программу cmd.exe
, то есть командную строку. Если хотите подробнее узнать о том, что происходит, то вот небольшое объяснение:
Первый аргумент —
HKLM\mount_SYSTEM\Setup
указывает команде раздел реестра, с которым ей предстоит работать;/v
(сокр. отvalue
) указывает название значения, которое необходимо добавить или изменить;/d
(сокр. отdata
) указывает данные, которые необходимо поместить в указанное значение реестра;/t
(сокр. отtype
) указывает используемых тип данных (например,REG_SZ
— это строка, аREG_DWORD
— целое число);/f
(сокр. отforce
) подавляет запрос на изменение существующего значения.
После всех проделанных операций необходимо перезагрузиться, для чего можно использовать команду wpeutil reboot
.
Этап 2. Первая перезагрузка
После перезагрузки вы попадёте в особый режим работы Windows — режим установки. В данном режиме запускается лишь одно приложение, указанное в значении CmdLine
раздела реестра HKEY_LOCAL_MACHINE\SYSTEM\Setup
. В нашем случае этим приложением является командная строка.

Развёртывание системы
Для полноценного функционирования систему нужно «развернуть» (deploy). Этим занимается программа C:\Windows\System32\oobe\windeploy.exe
. Поскольку CMD запускается в папке C:\Windows\System32
, для начала развёртывания системы необходимо ввести команду oobe\windeploy
.

После выполнения этой команды под вращающимся кругом появятся надписи, информирующие о текущей операции, проводимой программой.
Создание пользователя
В системе до сих пор нет ни одного пользовательского аккаунта — обычно эту задачу берёт на себя OOBE, но мы ставим систему без него, поэтому и пользователя придётся создать вручную:
net user /add uzver $tr0ng_p@$$
net localgroup Пользователи /add uzver
net localgroup Администраторы /add uzver
Первая команда создаёт пользователя с именем uzver
и назначает ему пароль $tr0ng_p@$$
, вторая и третья добавляют свежесозданного юзера в группы Пользователи и Администраторы. Добавление в группу пользователей необходимо, потому что команда net
по какой-то причине не может сделать этого самостоятельно, а добавление в группу администраторов нужно, чтобы в дальнейшем иметь полный доступ к установленной системе.
Выдирание хоста с мясом
Чтобы окончательно и бесповоротно покончить с любыми проявлениями OOBE, нужно удалить (или переименовать) файл C:\Windows\System32\WWAHost.exe
, являющийся хост-процессом для OOBE и прочих неприятных штук, которые Microsoft так любит пихать пользователям под нос.
Лучше всего переименовать файл, на случай, если когда-нибудь понадобится:
move wwahost.exe wwahost.exe.bak
Уборка за windeploy
Чтобы продолжать дальше, необходимо дождаться, пока windeploy
закончит со своими грязными делишками. Понять, что процесс завершился, поможет исчезновение надписи снизу от кружка загрузки:

Удостовериться, точно ли windeploy завершил свою работу, можно с помощью команды:
tasklist | find "windeploy"
Если эта команда не вывела ни одного процесса — можно продолжать.
Windeploy во время своей работы устанавливает значения реестра, при которых система грузится во второй этап OOBE. Наша задача — изменить это, чтобы запускалась командная строка. Таким образом, система «засчитает» прохождение второго этапа OOBE, но сам OOBE запущен не будет.
Все создаваемые Windeploy значения реестра лежат в HKLM\SYSTEM\Setup
, поэтому можно использовать команду reg query HKLM\SYSTEM\Setup /t REG_DWORD
, чтобы вывести их названия и значения. (/t REG_DWORD
— указатель на тип значений).
Всем значениям, кроме SetupType
, значения которых отличаются от 0, необходимо установить значение 0 следующей командой:
reg add HKLM\System\Setup /v <значение> /d 0 /t REG_DWORD /f
После этого необходимо вновь настроить систему на запуск командной строки:
reg add HKLM\System\Setup /v CmdLine /d "cmd.exe"
Выполнение этих действий показано на скриншоте.

После внесения изменений в реестр систему необходимо перезагрузить командой shutdown -r -t 0
.
Этап 3. Вторая перезагрузка
Вы вновь попадёте в командную строку, в которой нужно ввести команду shutdown -r -t 0
. Произойдёт перезагрузка, и система загрузится уже полноценно, с графическим интерфейсом входа в аккаунт.


Скриншоты установленной системы



P.S.
Этот способ может показаться сложным, но, на самом деле, если сравнить его с установкой через графический интерфейс, окажется, что он требует выполнения даже меньшего количества действий и времени, чем «нормальная» установка. Также этот способ можно легко автоматизировать при помощи, например, bat-файлов, не прибегая к изучению сложного синтаксиса файла unattend.xml
.
Комментарии (13)
hitlocker
27.06.2025 15:13С одной стороны - очень интересно. Спасибо.
С другой... Ох уже эти гайды для "знающих людей". "Так вот диск, режем его на EFI и C". Через два абзаца "D:\sources.....". Что за диск D? Это третий раздел? Это другой диск? Флешка? А как узнать букву если я болтаюсь в CMD с пустым размеченным диском.... Ех
Но еще раз, все равно любопытно. Спаибо)!
Busla
27.06.2025 15:13А как узнать букву если я болтаюсь в CMD с пустым размеченным диском
в diskpart набрать
list volume
там будут все флэшки, CD/DVD
ryzhpolsos Автор
27.06.2025 15:13Спасибо, учту, что нужно делать гайды подробнее.
А как узнать букву если я болтаюсь в CMD с пустым размеченным диском
Если не ошибаюсь, то установщик всегда флешку в D: монтирует, но если вдруг нет, можно воспользоваться командой, чтобы букву диска, на котором лежит нужный файл:
for %i in (D E F G H I J K L M N O P Q R S T U V) do @(if exist "%i:\sources\install.wim" echo.%i)
hurtavy
27.06.2025 15:13Зачем вам раздел EFI аж на 512, если сама Микрософт рекомендует 100?
ryzhpolsos Автор
27.06.2025 15:13Здесь написано, что
The minimum size of this partition is 200 MB, and must be formatted using the FAT32 file format.
alegz81
27.06.2025 15:13При разбивке диска под uefi нужен раздел типа msr на 16 мб. Так же нужно создать раздел для recovery (WinRE), и соответственно установить и настроить его.
LexD1
27.06.2025 15:13Интересно. Но. Ставил в GUI (GPT), автоматически создалось три раздела метров по 100...200 каждый, помимо C:\.
Насчёт присвоения буквы EFI. Это для удобства прописывания пути загрузчика? Потом буква (W:\) удаляется?
V1tol
Вот это круто, как будто ArchWiki прочитал. Такими темпами можно портировать Calamares и будет графический установщик нормального человека xD
ryzhpolsos Автор
Планирую когда-нибудь заняться графическим установщиком на основе описанного в статье подхода
asuzena
так всегда был файл-конфиг установки: дополни и запусти инсталл чтобы всё само произошло