Go to ...

RSS Feed

February 24, 2020

Windows Deployment with MDT – Part 3: Customize Deployment

Edit Answer File

To customize a deployment task and the related image, we can edit its answer file Unattend.xml. Right-click the deployment task sequence, select Properties, select the OS Info tab, and then click Edit Unattend.xml to open it in the Windows System Image Manager (WSIM), part of Windows ADK you installed in Part 1:

When an answer file is edited for the first time, MDT creates a catalog file. Be patient, this can take a while. For example, on this mid-level i7 laptop of mine, it takes up to 15 minutes. If you, like me, do not want to wait, you can stop the catalog creation process:

Wait for this process to stop. Then, you can click Edit Unattend.xml again. Shortly thereafter, the answer file will open in WSIM  more or less immediately:

For what you can do with an answer file and a more complete reference on this key deployment element, see the Components | Microsoft Docs support article on Microsoft Docs.

Note that the MDT generated answer file Unattend.xml is, as is so often the case with Microsoft products and services, is made specifically for American users in the USA. Thus, all language and region settings are US English. For users in rest of the world, this default might cause deployment to fail when used as-is. When editing such an answer file, be sure to change the International-Core settings in Pass 1 WindowsPE, Pass 4 Specialize and Pass 7 OobeSystem:

In my case, I changed the InputLocale (keyboard layout) to 040b:0000040b (Finnish), and the OS language and the rest of the locales to EN-GB (UK English).

Change the SetupUILanguage setting in Pass 1 WindowsPE under International-Core, too, to match the language of your install / deployment media:

For a complete list of languages and region values please consult: Default Input Profiles (Input Locales) in Windows | Microsoft Docs

The only changes I made to the default answer file werre to change locale and user interface language settings from MDT default US English to UK English, default keyboard layout to Finnish (040b:0000040b), add myself as the owner and Win10.guru as the organization on the target device, and finally, make it join a workgroup named W10GURU. That’s it!

Edit INI files

To automate the Deployment Wizard, we need to edit the CustomSettings.ini file located in the %DeploymentShare%\Control folder. Right-click your Deployment Share in the left-hand pane and select Properties, then select the Rules tab to open CustomSettings.ini:

The above screenshot shows the default MDT CustomSettings.ini file. It can be edited using Notepad or any other plaintext editor, or directly in the Properties window. Here’s the one I will use in this sample deployment:


I strongly recommend you backup the default CustomSettings.ini file to a safe location. For a complete Properties reference, please consult: Toolkit reference – Microsoft Deployment Toolkit | Microsoft Docs

The preceding example of CustomSettings.ini tells the system to install the OS, to skip all possible Deployment Wizard prompts without user interaction, select the Task Sequence to be run, and identifies which applications should be silently installed on the target machine. The five lines Applications001 to Applications005 instruct the system which applications I chose to install silently in the background on the target machine (respectively, these are: Chrome, Firefox, Opera, VLC Player and Office 365). How to add applications to be installed will be explained later in this post.

You can use this sample CustomSettings.ini, editing it to match your needs (organization, Task Sequence name, apps to install etc.):

The CustomSettings.ini file completely bypasses all steps in the Deployment Wizard, requires no user interaction, and adds chosen applications for silent installation. However, you must still select the keyboard layout and run the Deployment Wizard manually on the target machine, and enter network credentials to access a Deployment share on your MDT Workbench machine. To automate those two steps, in the Properties window and its Rules tab for your deployment share, select Edit Bootstrap.ini. This opens the file in Notepad, whereupon you should edit it to contain the following information:


  Deployment Share on MDT Workbench machine, given as \\PC_Name\ShareName
  MDT Workbench PC name, in domain environment domain
  Admin account to access share on MDT Workbench from target device.
  Account must have permission to access the share.
  The password for above admin account




Important: Every time Bootstrap.ini is modified, you must regenerate the LTI boot files you created in Part 2:

All three configuration files (Unattend.xml, CustomSettings.ini, Bootstrap.ini) can be edited using Notepad or any other plaintext editor. Unattend.xml resides in your %DeploymentShare%\Control\TaskSequnceID folder. Both INI files reside in %DeploymentShare%\Control. Unattended.xml can in addition be edited using the Windows System Image Manager, outside MDT.

Add applications

You can add any application installer you choose to the MDT deployment task. Download the installer as an EXE file, and save it in a separate folder. For instance, for this example I downloaded the Chrome installer and instead of running it, I saved it in a folder %userprofile%\Downloads\Chrome. Each such installer must be in its own folder: one application installer in one folder! Here’s how to add an application, as in this example (Chrome), to deployment. In the MDT Deployment Workbench select your deployment share, select Applications, select New application, and select Application with source files:

Add Publisher (optional), Application name (required), Version (optional) and Language (optional):

In the Source page of the New Application Wizard, browse to and select the folder where you saved the application installer and click Next. Accept all defaults on the Destination page. On the Command Details page, enter the command for silent install. If you’re not using silent install, the deployment would stop to ask for user interaction. In this example, as I add Chrome, the command for silent install looks like this:

ChromeSetup.exe /silent /install

Chrome is now added to deployment. For this example, I also added Firefox, Opera and VLC Player. Silent install command lines for these items are as follows:

- Firefox:
Firefox Setup 66.0.2.exe -ms
(Firefox installer name contains its version number. Change it according to version you downloaded.)
- Opera:
OperaSetup.exe /SILENT /allusers=yes /launchopera=no /setdefaultbrowser=no
- VLC Player:
vlc-3.0.6-win64.exe /L=1033 /S /NCRC
(Like Firefox, installer name contains version number, change it according to version you downloaded. L switch is language, 1033 is English.)

Unfortunately, it is impossible for me to list silent installation commands for every available application. Thus, I provide only a few samples above. Bing is your friend in this task: just search for APPNAME Silent Install.

I also added Microsoft Office to the deployment image. I downloaded the Office Deployment Tool (ODT) and created an XML script using the Office Customization Tool (OCT) to download Office from the Microsoft cloud (CDN, Content Delivery Network) as explained in this tutorial on TenForums.com: Custom install or change Microsoft Office with Office Deployment Tool | Tutorials

I saved both the ODT setup file Setup.exe and the OCT configuration file Configuration.xml to a folder named Office on my MDT Workbench machine, and imported it as with the other apps. The install command to add an on Command Details page is as follows:

setup.exe /configure Configuration.xml

Whereas Chrome, Firefox, Opera and VLC Player were added as silent installers in this example deployment, Office will be first downloaded from Microsoft CDN on target device using the configuration file provided. This adds a few minutes to deployment because the target device must download almost 4 GB of data, but it is a very easy and convenient way to install Office. If you have an Office ISO, you can use it as a source when adding this new application instead. Mount the ISO and use it as source. In that case, the install command would be simply setup.exe

All applications added:

When deployment task is now run on target device, you can choose which applications will be installed:

If you want to do an automated unattended deployment, you can modify the CustomSettings.ini (step 6.6). Add the following lines to the INI file:


SkipApplication=YES means that Deployment Wizard when run on target device does not ask which applications to install. In the following lines we will then add applications using their GUIDs, first application being Applications001=GUID, next one Applications002=GUID and so on. The application GUID can be found in its properties. Select Applications in your deployment share, right click an application on the middle pane, select Properties. The GUID appears on the General tab:

In my example case, adding Chrome, Firefox, Opera, VLC and Office to be installed automatically, that section of CustomSettings.ini looks like this:

Add drivers

To add hardware drivers, select your deployment share, select Out-of-Box Drivers, select Import Drivers, then browse to and select the folder containing whatever drivers you’d like to add:

Because I want to wipe the hard disk on an HP laptop and deploy a new custom image, I first exported its current, working drivers as explained in Part Two of this tutorial on TenForums: DISM – Add or Remove Drivers on an Offline Image | Tutorials

I then imported them to my deployment share:

When deploying to that laptop with MDT, it will be somewhat faster because instead of Windows Setup searching and downloading drivers, they already exist. In my opinion, however, adding drivers to a deployment image is mostly unnecessary. Windows 10 is extremely good iat finding and installing the correct drivers on its own, and it really does not take too much time. I recommend adding drivers to MDT only if you have a very specific device which needs an otherwise unobtainable driver.

That’s it this time! In  the next and final part of this series, we will talk about capturing a custom WIM image, and creating a Task Sequence for an in-place feature upgrade and repair install.

All posts in this series:
Windows Deployment with MDT – Part 1: Setup
Windows Deployment with MDT – Part 2: Deploying Windows
Windows Deployment with MDT – Part 3: Customize Deployment
Windows Deployment with MDT – Part 4: Capturing WIM, In-place Upgrade
Windows Deployment with MDT – Part 5: Add Disks and Partitions


Author: Kari Finn

A former Windows Insider MVP, Kari started in computing in the mid 80’s writing code for VAX / VMS systems. Since then, he’s worked in a variety of IT positions. He specializes in Windows image capture, customization, repair and deployment as well as Hyper-V virtualization. Kari is a proud Team Member at number #1 Windows site TenForums.com.

Tags: , ,

Leave a Reply

More Stories From Admin Tools