This article is directed towards enthusiasts, IT professional’s for small businesses, or anyone who wants to create custom images and doesn’t have volume licensing, an Active Directory domain, or a lot of server infrastructure. I have also recently published a video walkthrough covering this to my YouTube channel.
In this walkthrough we’re going to cover:
- Installing Microsoft Deployment Toolkit and its dependencies on Windows 10 Home/Pro Edition.
- Creating a Task Sequence to create a custom Windows 10 Home/Pro Edition image.
- Creating a bootable USB drive containing the custom Windows 10 image.
What you’ll need:
- A PC running at least Windows 10 Home Edition.
- A Virtual Machine to create the custom image.
Here are the links to the software we’ll be using:
- Windows 10 1903 Assessment and Deployment Kit (ADK)
- Windows System Image Manager (WSIM) 1903 update
- Windows PE add-on for the ADK
- Microsoft Deployment Toolkit (Build 8456)
- Windows 10 1909 x64 ISO from the Media Creation Tool
- Some of my customised MDT files to help you get started.
Installing Microsoft Deployment Toolkit and Dependencies
- First, we’ll install the Windows 10 1903 ADK. During setup additional files will need to be downloaded, so it may take some time depending on your internet connection.
- On the Select the features you want to install screen select:
- Deployment Tools
- Imaging and Configuration Designer (ICD)
- Configuration Designer
- User State Migration Tool (USMT)
- Install WinPE by running the adkwinpesetup.exe. There is no specific configuration during the install wizard.
- Install MDT by running the MicrosoftDeploymentToolkit_x64.msi. There is no specific configuration during the install wizard.
Install the Windows System Image Manager Update
- Unzip the archive containing the WSIM 1903 fix.
- Copy the two files: ImageCat.exe and ImgMgr.exe to the location the ADK is installed to. The default location is: C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\WSIM.
Creating the Deployment Share
- Open the Deployment Workbench from the Start Menu.
- Right click on Deployment Shares.
- Select New Deployment Share.
- Under Deployment share path enter the path: C:\DeploymentShare
- Under Share name, you can leave it as DeploymentShare, just remove the ‘$’ on the end so the share is not hidden.
- Enter a description in the Deployment share description text field.
- On the Options screen, accept the defaults as we’ll change them later.
- Complete the wizard to create the share.
- Browse to C:\DeploymentShare and right-click on the folder and go to Properties > Sharing > Advanced Sharing > Permissions.
- Add the Administrators and Users groups and check Allow Full Control permissions.
Obtaining the Windows 10 ISO
- Run the Media Creation Tool that we downloaded earlier.
- After accepting the EULA, choose the Create installation media for another PC option.
- Choose the language, edition and architecture of Windows to download.
- On the Choose with media to use screen, choose ISO.
- Browse to the location where you wish to save the ISO. Give it a descriptive name.
- The ISO will download.
Converting the ESD to a WIM
- Mount the Windows 10 ISO in File Explorer.
- Create a folder on the root of the C:\ drive called w10-src and copy all the files from the ISO to it.
- Open up an elevated command prompt.
- Change directory to the sources directory of the Windows 10 files: cd C:\w10-src\sources
- Now we’re going to convert the install.esd file to a WIM file as ESD files are not compatible with MDT.
- But first we need to know which index to export. To do this run the following command in the elevated command prompt: dism /Get-WimInfo /WimFile:install.esd
- A list of Windows 10 editions will be displayed, each with their own index number. Choose which one you want and make a note of the index number.
- Now we’re going to convert the ESD to a WIM. Run the following command, but substitute the index number for the edition you wish to install: dism /export-image /SourceImageFile:install.esd /SourceIndex:[x] /DestinationImageFile:install.wim /Compress:max /CheckIntegrity
- We now have a WIM file for MDT to work with.
Adding an Operating System to MDT
- Go to Deployment Workbench > Operating Systems.
- Right click and select Import Operating System.
- In the wizard, select Full set of source files and then enter the folder that we copied the Windows 10 files to from the ISO – in this case it was: C:\w10-src\ as the Source directory.
- For the destination directory name enter Windows 10 and complete the wizard.
If you want to add some applications to be a part of your custom image, here I’ll cover how to add them into MDT.
- Download or copy the files needed for installation. For an example, let’s use VLC.
- Using File Explorer browse to C:\DeploymentShare\Applications.
- Create a folder called VLC and copy the installation file to it.
- Go to Deployment Workbench > Deployment Share > Applications.
- Right click on Applications and select New Application.
- In the New Application Wizard, choose Application without source files.
- Give the application the name: VLC.
- For the Command line enter the exact name including the extension of the VLC installation file, and then add a /S for a silent install. Make sure it is a capital S. For example: vlc-3.0.8-win64.exe /S
- In the Working directory text box, enter: .\Applications\VLC
- On the summary page, click Next and after the files are copied click Finish to complete the wizard.
This will create an application entry for VLC, which will silently install VLC using the command line that we entered. You will need to do this for each application you want to install. Different applications have different ‘silent’ or ‘quiet’ install methods. They can be found online, and I go over some in the video walkthrough that this article is based on.
Here’s are some command lines for other software:
msiexec /I googlechromestandaloneenterprise64.msi /qn
Creating a Task Sequence
- In Deployment Workbench, go to Task Sequences.
- Right click and select New Task Sequence.
- For the ID enter an ID such as: W10-1909-H.
- Name it Build Windows 10 1909 x64 <Edition>.
- Select Standard Client Task Sequence.
- Select the Operating System Windows 10 1909 x64 <Edition>.
- Select Do not specify a product key at this time.
- Enter a Name and Organization.
- Select Do not specify an Administrator password at this time.
- Complete the wizard.
Now we’ll configure the task sequence and add applications.
Configuring the Task Sequence
- Right click on the Task Sequence just created and select Properties.
- Go to the Task Sequence tab on the Properties window of the Task Sequence.
- Go to the State Restore folder and select Windows Update (Pre-Application Installation).
- On the right side of the Properties window, go to the Options tab.
- Uncheck the Disable this step tick box and do the same with Windows Update (Post-Application Installation).
- Go to the Install Applications item.
- In the right side of the Properties box, select the Install a single application option and click the Browse… button.
- Select an application from the list and change the name Install Applications to something more descriptive.
- To install other Applications, copy and paste the Install Applications item and repeat the previous steps.
- Click Apply and close the task sequence.
Next, we need to configure the Bootstrap.ini and the CustomSettings.ini files to control certain aspects of the deployment environment. You can get my example files I made for the YouTube video from my GitHub.
This configuration will setup the WinPE deployment environment to automatically login. For the UserID and UserPassword you should use a user on the PC that is hosting the deployment share. You’ll also need to change the DeployRoot and UserDomain based on your PC name.
- In Deployment Workbench, right click the Deployment Share and select Properties.
- Select the Rules tab and click the Edit Bootstrap.ini button.
- Add the settings below to the Bootstrap.ini.
- Close and Save the Bootstrap.ini
[Settings] Priority=Default [Default] DeployRoot=\\PC-NAME\DeploymentShare UserDomain=PC-NAME UserID=user1 UserPassword=pass1 SkipBDDWelcome=YES
The settings below automate MDT to build an image for capture. This enables you to use the resulting image as a custom install.
On the Rules tab of the Deployment Share properties window, add the settings below. You’ll need to change some settings based on your PC name.
[Settings] Priority=Default Properties=MyCustomProperty [Default] OSInstall=Y SkipCapture=YES SkipAdminPassword=YES SkipProductKey=YES SkipComputerBackup=YES SkipBitLocker=YES SkipLocaleSelection=YES SkipTimeZone=YES SkipDomainMembership=YES SkipSummary=YES SkipFinalSummary=YES SkipComputerName=YES SkipUserData=YES _SMSTSORGNAME=Build Image _SMSTSPackageName=%TaskSequenceName% DoCapture=YES ComputerBackupLocation=\\PC-NAME\DeploymentShare\Captures BackupFile=Captured-Image.wim FinishAction=SHUTDOWN SLShare=\\PC-NAME\DeploymentShare\Logs
We now need to create the boot media in order to boot the Virtual Machine into WinPE for deployment.
Creating the Boot Media
- In Deployment Workbench, right click on the Deployment Share.
- Select Update Deployment Share.
- Select Completely regenerate the boot images.
- Complete the wizard. It will take some time to create the boot images.
Testing the Task Sequence
To test everything, we need to copy the ISO file that we just generated. It is located in the Boot folder in the Deployment Share. Copy the LiteTouchPE_x64.iso file to a location where the virtual machine will be able to access it.
Create a new virtual machine with the following configuration:
- For Hyper-V Only: Generation 1, not 2. I’ve had issues reported with Gen2 VMs.
- 2x vCPUs
- 4GB of RAM
- Network Adapter with access the local network.
- Virtual Hard Drive of at least 40GB, preferably on an SSD.
- Boot from CD using the LiteTouchPE_x64.iso from MDT.
- Start the VM and it will boot from the LiteTouchPE_x64.iso into WinPE.
- You will be presented with a screen with the name of the task sequence we created earlier. Select the Task Sequence and click Next.
- Click Next and the task sequence will begin.
The task sequence will install Windows 10, run Windows Update and install the applications we put in the task sequence. When this process completes the image will be captured and the VM will shut down.
Once we have a final WIM file, we need to create an ISO from it.
Creating an ISO From A Captured WIM
- Create a new copy of the win10-src files that we created at the beginning of this walkthrough. For example, I’ll create a new copy in a folder called win10-src-new.
- Navigate to C:\DeploymentShare\Captures and copy the WIM file to the root of the C:\ drive.
- Rename the WIM file to install.wim and move it to C:\win10-src-new\sources. Overwrite any old install.wim files.
- You can safely delete the old install.esd if it is still in the source folder.
- To create the ISO, we must first run a BAT file. In an elevated command line, run the following command, including the quotes: “C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat”
- Now run the following command, please be aware that you must change some of the paths to reflect your own file system: oscdimg.exe -m -o -u2 -udfver102 -bootdata:2#p0,e,bC:\Win10-src-new\boot\etfsboot.com#pEF,e,bC:\Win10-src-new\efi\microsoft\boot\efisys.bin C:\Win10-src-new\ C:\win10-custom.iso
When this command completes, you should have a new ISO file in the root of your C:\ drive called win10-custom.iso. You can now use a tool such as the Windows USB/DVD tool to make a bootable USB drive from the ISO and install your own custom Windows 10 image.