To create a custom Windows ISO with pre-installed programs, install Windows in a virtual machine, add your desired software, run Sysprep to generalize the installation, capture it as a WIM image using DISM, then replace the install.wim in the original ISO using AnyBurn. The resulting ISO is bootable and deploys Windows with all your programs already installed. This method works for both Windows 10 and Windows 11.
Applies to: Windows 10 (22H2) and Windows 11 (23H2, 24H2, 25H2) | Last updated: April 6, 2026
Key Takeaways
- This method uses a virtual machine to install Windows, add programs, then capture the entire installation as a reusable ISO file — every time you install from this ISO, all your software is already there.
- You need virtualization software (VMware Workstation or VirtualBox), AnyBurn (free), and at least 50 GB of free disk space.
- Sysprep with the “Generalize” option removes hardware-specific drivers and resets the user profile, making the ISO work on any computer — not just the one it was created on.
- Keep your custom
install.wimfile after creating the ISO. If you need to update the programs later, you can swap it into a newer Windows ISO without repeating the entire process. - Easier alternative: Winhance includes WIMUtil, which generates a custom ISO with your settings, bloatware removal, and drivers baked in — no virtual machine or Sysprep required. If you do not need pre-installed third-party programs, WIMUtil is the faster option.
In This Guide
This guide covers two approaches to creating a custom Windows ISO:
- Winhance WIMUtil — Generate a debloated, optimized ISO with drivers baked in. No VM needed, but does not support pre-installed third-party programs. (Fastest option)
- VM-Based Method (Sysprep + DISM) — Install Windows in a virtual machine, add your programs, capture the installation, and build a reusable ISO. Works for any software.
Quick Steps
- Download a Windows 11 or Windows 10 ISO from Microsoft.
- Create a virtual machine in VMware with 8 GB RAM, 2+ CPU cores, 64 GB disk, and a second virtual hard disk for data.
- Install Windows in the VM and set up a local account.
- Install all the programs you want included in the custom ISO.
- Run Sysprep in audit mode, delete the user account, then run Sysprep again with OOBE + Generalize + Shutdown.
- Boot the VM from the Windows ISO, open Command Prompt, and capture the installation with
dism /Capture-Image. - Use AnyBurn to replace
install.wimin the original ISO with your custom one. - Create a bootable USB with Rufus using your custom ISO and install Windows.
Easier Alternative: Use Winhance WIMUtil
Before going through the full VM-based process below, consider whether Winhance can do what you need. Winhance includes two tools that simplify custom ISO creation:
- Autounattend XML Generator — generates an answer file based on your Winhance settings (bloatware removal, privacy, optimizations). Add this file to any Windows ISO and your settings are applied automatically during installation. See my guide on creating answer files for more details.
- WIMUtil — takes an official Windows ISO, injects your answer file and system drivers, and outputs a ready-to-use custom ISO. When you install from this ISO, Windows arrives at a fully configured desktop with no post-install work.
The WIMUtil approach does not support pre-installing third-party programs like Chrome, 7-Zip, or Office. If you need actual programs baked into the ISO, the VM-based method below is the way to go. But if you just want a debloated, optimized, driver-ready Windows ISO, Winhance handles it in minutes without any virtual machine setup.
What You Need Before Starting
- A Windows 11 ISO or Windows 10 ISO downloaded from Microsoft
- VMware Workstation (free) or VirtualBox (free)
- AnyBurn (free)
- At least 50 GB of free disk space
- A stable internet connection (for downloading programs inside the VM)
Tip: Create a folder called VMShare on your desktop and put the Windows ISO inside it. You will share this folder with the VM later to transfer files between your host PC and the virtual machine.
How to Set Up the Virtual Machine
Make sure virtualization is enabled in your BIOS first. Then open VMware Workstation and create a new virtual machine. Select “I will install the operating system later”, choose Windows 11 (or Windows 10) as the guest OS, and name the VM.
When configuring the hardware, make these adjustments:
- Memory: At least 8 GB (8192 MB)
- Processors: At least 2 cores
- CD/DVD: Point to your Windows ISO file
- Add a second hard disk: Click Add → Hard Disk → Next → select NVMe or your system’s recommended type → create a new virtual disk with default settings. This second disk is where you will save the captured Windows image later.

Click Finish to create the VM, then start it. Boot from the ISO, go through the Windows installation (select your language, choose Custom install, pick the first unallocated disk), and let Windows install. After setup completes, create a local account with no password — this is a temporary account that will be deleted later.
Note: If Windows 11 forces you to sign in with a Microsoft account during setup, use the Microsoft account bypass to create a local account instead.
How to Install Your Programs in the VM
Once you are on the Windows desktop inside the VM, install every program you want baked into the custom ISO. This is where you make the installation yours — whatever you install now will be included every time you use the custom ISO.
I recommend using Ninite to batch-install common programs. Select everything you want on the Ninite website, download the installer, and run it. Ninite handles all the installations silently with no toolbars or bloatware. Another option is UniGetUI — a package manager that pulls from WinGet, Scoop, and Chocolatey repositories, giving you access to a much larger library of software. For programs not available on either, download and install them manually.
Some programs I typically include: Google Chrome, 7-Zip, VLC, Malwarebytes, Adobe Reader (uncheck the McAfee option), and an office suite like OnlyOffice. You can include whatever you need — there is no limit beyond disk space.

How to Prepare the System With Sysprep
Sysprep (System Preparation Tool) generalizes a Windows installation so it can be deployed on any hardware. This step is optional if you only plan to use the ISO on your own computer — but if you want the ISO to work on different machines (or prompt for a new username during setup), you need to run Sysprep.
Enter audit mode and delete the temporary user
Open Command Prompt as administrator and run:
%windir%\system32\sysprep\sysprep.exe /audit /reboot
The VM will restart and boot into the built-in Administrator account in audit mode. Now delete the temporary user account you created earlier: open Control Panel → User Accounts → Manage another account → select the account → Delete the account → Delete Files.
Initialize the second disk
Press Windows key + X → Disk Management. When prompted to initialize the new disk, select GPT and click OK. Right-click the unallocated space on Disk 1, select New Simple Volume, and follow the wizard. Set the volume label to DATA. This is where you will save the captured Windows image.
Run Sysprep for final generalization
Press Windows key + R, type sysprep, and press Enter. In the System Preparation Tool window:
- Set System Cleanup Action to Enter System Out-of-Box Experience (OOBE)
- Check Generalize
- Set Shutdown Options to Shutdown
Click OK. Sysprep will strip hardware-specific drivers, reset the activation state, and shut down the VM. Do not start the VM again until the next step.

How to Capture the Custom Windows Image
After Sysprep shuts down the VM, you need to boot it from the Windows ISO again (not from the hard disk) and capture your customized installation as a WIM file.
Start the VM and press a key to boot from the DVD/ISO when prompted. On the Windows Setup screen, click Next, then click Repair your computer → Troubleshoot → Command Prompt.
First, identify your drive letters — they may differ from what you expect in the recovery environment. Type each drive letter followed by dir to check the contents:
C:
dir
D:
dir
Find which drive contains your Windows installation (look for the Windows folder) and which is your DATA partition. Then run the DISM capture command. In this example, C: is the Windows drive and D: is the DATA drive:
dism /Capture-Image /ImageFile:D:\install.wim /CaptureDir:C:\ /Name:windows11
This captures your entire Windows installation — including all installed programs — into a single install.wim file on the DATA drive. The capture process takes several minutes depending on the size of the installation. When it finishes, type exit and click Continue to boot back into Windows.

How to Build the Custom ISO With AnyBurn
Now you need to get your custom install.wim file out of the VM and replace the default one inside the original Windows ISO. The easiest way is to set up a shared folder between the VM and your host PC.
Set up shared folders
Install VMware Tools inside the VM: click Player → Manage → Install VMware Tools and follow the wizard. Then go to Player → Manage → Virtual Machine Settings → Options → Shared Folders. Select Always enabled, click Add, and point to the VMShare folder on your host desktop. Restart the VM.
After restarting, open File Explorer in the VM and navigate to Network → VMware-host → Shared Folders → VMShare. You should see your original Windows ISO file. Now copy your custom install.wim from the DATA drive into this shared folder — this transfers it to your host PC.
Replace install.wim in the ISO
On your host PC (not inside the VM), download and install AnyBurn. Open it and click Edit image file. Browse to the original Windows ISO in your VMShare folder and click Next.
In the file browser, navigate to the sources folder. Find install.wim (or install.esd), select it, and click Remove. Then click Add, navigate to your custom install.wim, and add it to the sources folder. Click Next, name your custom ISO (e.g., Windows11-Custom.iso), and click Create Now.

Your custom ISO is now ready. You can create a bootable USB drive with Rufus and install Windows from it — all your programs will be pre-installed.
Tip: Keep your custom
install.wimfile. If you want to update your programs in the future, you only need to redo the VM steps — then swap the new WIM into a fresh Windows ISO with AnyBurn. You do not need to start from scratch every time.
How to Test the Custom ISO (Optional)
Before deploying the ISO on real hardware, you can test it in a new virtual machine. Create a fresh VM in VMware, point the CD/DVD to your custom ISO, and run through the Windows installation. After setup completes, verify that all your pre-installed programs are present and working.

For unsupported hardware, use Rufus to create the bootable USB — it can bypass the Windows 11 TPM and CPU requirements during the USB creation process. You can also combine this custom ISO with an UnattendedWinstall answer file to automate the setup screens, bloatware removal, and privacy settings on top of having your programs pre-installed.
If you are interested in other approaches to custom ISOs, I also have a guide on creating a custom Windows 10 gaming ISO using a similar process.
Frequently Asked Questions
Does this method work for both Windows 10 and Windows 11?
Yes. The process is identical for both versions — install your preferred Windows version in the VM, add your programs, Sysprep, capture, and build the ISO. Just use the appropriate base ISO for your target version.
Do I need a separate Windows license for each computer I install the custom ISO on?
Yes. Creating a custom ISO does not change the licensing requirements. Each computer still needs its own valid Windows license. You can install without a product key and activate later.
Can I skip Sysprep if I only use the ISO on my own computer?
Yes. Sysprep generalizes the installation for deployment on different hardware and resets the user profile. If you are only using the ISO on your own machine and want to keep your existing user account and settings, you can skip the Sysprep steps entirely and go straight to the DISM capture.
How do I update the programs in my custom ISO later?
You have two options. You can start fresh with a new VM and repeat the full process, or you can boot from your existing custom ISO in a new VM, update the programs, Sysprep again, and capture a new install.wim. Either way, use AnyBurn to swap the updated WIM into a current Windows ISO.
What if I do not need pre-installed programs and just want a debloated ISO?
Use Winhance instead. Its built-in WIMUtil can generate a custom ISO with your optimization settings and drivers baked in — no virtual machine needed. You can also generate an unattended answer file to automate the entire installation process.

can this been done with a unattened.xml?
Hi Tank you for this tutorial
when the custom iso is done and install the first time with this custom iso the username must be called :user that is created by step 7 or is this irrelevant? thank you very much
because earlier i have tried my own method with unattend.xml file copy profile true etc and it is working but by some software i lost the registry key for activation (the reason is the software is acitvated on the Administrator account and not on the new created user account during the setup
hi,
thank you for details instructions 🙂
Is this possible also to do for computers which are on domain?
Like to have option to add computer on domain during OOBE?
Lazar
Yes it is, but then you should rather look at autounattend.xml answer files. I have guides on those too, but they are specifically made for that type of purpose.
I’m getting stuck on the command prompt step saying “not enough space” after it completes 1%, despite me even trying allocating 150GB to the Data drive, and my C: drive only taking 63GB
Hmmm weird one, I don’t really know why that would happen, might need to troubleshoot it with some AI chats 🙂