How do I install Windows 10 manually?

In this guide, we'll show you how!

Foreword

All commands demonstrated are from this video. I just created this guide because I dislike video tutorials.

This has been confirmed to work on the latest Windows 10 version (20H2).

This tutorial assumes your Windows install is UEFI/EFI.


Method

1. Boot into the Windows PE, and on the first screen, open a Command Prompt with Shift + F10.

TODO: put an image here

2. Enter DiskPart:

diskpart

3. In DiskPart:

Select disk 0.
sel disk 0
Convert it to GPT.
convert gpt
Create the EFI partition, with size 500mb.
create part efi size=500
Format it, changing the filesystem to FAT32.
format fs=fat32 quick
Assign it the drive letter W.
assign letter w
Create the primary partition. We don't specify a size because we want it to be the rest of the drive's free space.
create part primary
Format it, changing the filesystem to NTFS.
format fs=ntfs quick
Assign it the drive letter C.
assign letter c
Finally, exit DiskPart.
exit

4. Applying the Windows image

Change the active directory to D:\sources.
cd /d D:\sources
OPTIONAL: Clear the terminal. This just makes things look a little nicer, clearing away all the DiskPart commands.
cls
Apply the Windows image with DISM. This may take a while.
dism /apply-image /imagefile:install.wim /index:1 /applydir:C:\

5. Creating boot files

Using bcdboot, we create boot files on the EFI partition we made earlier, allowing the system to boot.
bcdboot C:\Windows /s W:

6. Loading Registry Hives

Now, the fun begins! We need to load two hives into the Registry. Start by opening Registry Editor.
regedit
Select HKEY_LOCAL_MACHINE with a click, then click File in the topbar. In the dropdown, select Load Hive.
TODO: put an image here
Load the hives SOFTWARE and SYSTEM, located at C:\System32\config. Give them the names SOFT and SYS respectively.
TODO: put an image here

7. Modifying the Registry

I would recommend following the video tutorial here. It shows what you need to do a little easier.

In the SOFT hive we just loaded, go to Microsoft\Windows\CurrentVersion\Policies\System and add a new DWORD. Name it VerboseStatus and give it a value of 1.

Set the value of the alreadt existing DWORD named EnableCursorSuppression to 0.

Next, in to the SYS hive we made earlier, go to Setup and change the CmdLine DWORD's value to cmd.exe. Then, reboot with:

wpeutil reboot

8. Setting up drivers and services

As soon as you get into the Command Prompt, set up drivers and services with windeploy:
oobe\windeploy
Once the status message changes to "Getting ready", add a user. Replace (username) with your preferred username.
net user add (username)
Next, add it to important localgroups, because Windows is unable to do this for us. Once again, replace (username) with the username you set.
net localgroup /add users (username)
net localgroup /add administrators (username)

Modifying the Registry Part 2: Electric Boogaloo

Start Registry Editor once again. We're going to set 3 values to 0.
regedit
Navigate to HKEY_LOCAL_MACHINE\SYSTEM\Setup and set OobeInProgress, SetupType and SystemSetupInProgress to 0.

Once you're done, exit regedit and the Command Prompt.


9. That one vague step

There's no logical explanation, but for whatever reason, when you reach the "Please wait for the Windows Modules Installer" screen, wait around 5 minutes.

After this, the machine will reboot, showing that we must be up and running.


10. Finishing touches

Once the machine boots, you should see the login screen. Once you log in, set your privacy options. If you're smart, you'll set them all to Limited or Off.

And, just like that, you've manually installed Windows 10! We even skipped most of the OOBE!