This is one of the most frequently asked questions, so this deserves its own page.
This guide will assume that you're using the linuxserver.io Docker container.
Step 1. Download WindowsPE/generate the image and download Windows 10 ISO.
Step 2. Setup an SMB share with Windows 10 ISO extracted to a directory there.
Step 3. Upload Windows PE to Linuxserver.io's netboot.xyz container's /assets/WinPE/x64/ folder.
Step 4. Boot the menu, go to Windows.
Step 5. Set the base URL to point to the container's IP address and right directory (eg. http://192.168.2.46:8000/WinPE).
Step 6. Load the installer.
Step 7. You should be prompted with a terminal.
Step 8. Mount the Windows ISO share, with
net use F: //<server-ip-address>/<share-name> /user:<username-if-needed>
NOTE: The terminal uses US keyboard layout by default.
Step 9. Change into the mounted share (
F:), and execute setup.exe.
Step 10. You should be greeted with the normal setup and be able to install it.
Step 1. Go to the container's configurator (Netboot.xyz Configuration), the place where you can manage local assets and menus.
Step 2. Go to Menus -> boot.cfg.
Step 3. Set win_base_url to your root WinPe directory, so for example:
set win_base_url http://192.168.2.46:8000/WinPE
Step 4. You shouldn't need to input the URL anymore when booting Windows so enjoy.