Sei sulla pagina 1di 27

Building a Windows 10 v1809 reference image using Microsoft

Deployment Toolkit (MDT)

By Johan Arwidmark / October 3, 2018

Share
Tweet
Share

Here is a step-by-step quick guide on building the perfect Windows 10 v1809 reference image using MDT 8450, Windows

ADK 10 v1809, and WinPE Addon for Windows ADK 10 v1809. If you are looking for a Windows 7 version of this guide,

check this post: https://deploymentresearch.com/521/Back-to-Basics-Building-a-Windows-7-SP1-Reference-Image-using-

MDT-2013-Update-2

Note: Since back in the Windows Vista timeframe, there is no technical requirement to create reference images in order

to deploy Windows. The main reason for doing it is just deployment speed, and to some extent network efficiency (WIM

images are highly compressed). However, in a world with better and better peer to peer solutions, you can make

deployments go quite fast even without a reference image.


Software Requirements
MDT 8450 can be installed either on a file server, or on your own laptop, but in this scenario I use a file server named

MDT01. MDT 8450 requires Windows ADK 10 v1709 or later, but for Windows 10 v1809 you should use Windows ADK

10 v1809, and the WinPE Addon for Windows ADK 10 v1809. I also recommend to download the various Visual C++

runtimes to include them in your reference image.

In this guide I also assume that you have a local WSUS server in your network, to which you have approved Windows 10

updates, Feature Packs (to get Microsoft .NET Framework updates) and Developer Tools, Runtimes and Redistributables

/ Visual Studio* (to get updates to Visual C++ runtimes).

Note: If you want to build a Windows 10 reference image for a virtual environment, like SCVMM, simply follow this guide

to get the WIM file, and then use the Convert-WindowsImage.ps1 script on TechNet Script Center / Gallery to convert it to

a VHD or VHDX file.

For this guide you need the following software.


 Windows 10 Enterprise v1809 (make sure to use media released in Nov 13, 2018 or later).
 Windows ADK 10 v1809: Windows ADK 10 page on MSDN:
 WinPE Addon for Windows ADK 10 v1809: Windows ADK 10 page on MSDN:
 Microsoft Deployment Toolkit (MDT) 8450: http://www.microsoft.com/en-us/download/details.aspx?id=54259
 Visual C++ runtimes (2010,2012,2013 and 2017) available on Microsoft Download Center.
 Visual C++ runtimes install wrapper: http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Install-
MicrosoftVisualC%2B%2Bx86x64.wsf
 Script to disable Windows Store updates during build and
capture: http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Config-DisableWindowsStoreUpdates.wsf
 Script to enable Windows Store updates
again: http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Config-EnableWindowsStoreUpdates.wsf
 Script to clear WSUS references from the image: http://gallery.technet.microsoft.com/Remove-WSUS-configuration-
86d3f21c
 Script to relax default deployment share
permissions: http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Set-MDTBuildLabPermissions.ps1

Note: Visual C++ runtimes 2005 and 2008 are not included since they are no longer supported, and doesn't get any

security updates.

Step-by-Step Guide
The entire process for creating a Windows 10 image using MDT takes about 40 – 60 minutes, fully automated. The initial

setup of the solution takes about 30 – 45 minutes if done manually, and about 10 minutes if scripted. This guide covers

the following seven steps:

 Step 1 – Install Windows 10 ADK v1809, WinPE Addon for Windows ADK 10 v1809, and MDT 8450
 Step 2 – Create the MDT Build Lab Deployment Share
 Step 3 – Import the Windows 10 v1809 operating system
 Step 4 – Add applications
 Step 5 – Create the MDT Task Sequence
 Step 6 – Configure the deployment share
 Step 7 – Create Windows Reference Images

Step 1 – Install Windows 10 ADK v1809,


WinPE Addon for Windows ADK 10
v1809, and MDT 8450
In this example I have a file server named MDT01, running Windows Server 2019 (Windows Server 2016 is is fine too ).

1. On MDT01, install Windows 10 ADK v1809, and select the following components:
 Deployment Tools
 Imaging and Configuration Designer (ICD)
 Configuration Designer
 User State Migration Tool (USMT
Windows ADK 10 v1809 Setup when installed on Windows Server 2019.

2. Install WinPE Addon for Windows 10 ADK v1809, and select the following component:
Windows Preinstallation Environment (Windows PE)

Installing WinPE Addon for Windows ADK 10 v1809.


3. Install MDT 8450 using the defa

ult settings.

Installing MDT 8450.

Step 2 – Create the MDT Build Lab


Deployment Share
1.
1. On MDT01, using the Deployment Workbench (available on the start screen), right-click Deployment Shares and
select New Deployment Share. Use the following settings for the New Deployment Share Wizard (my data volume on
MDT01 is E:)

a. Deployment share path: E:\MDTBuildLab

b. Share name: MDTBuildLab$

c. Deployment share description: MDT Build Lab

d. Options:

2. Once the deployment share is created you also want to relax the security a bit. MDT locks it down to hard by default.

Use the following PowerShell script to set some better permissions (modify script to fit your

environment): http://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Set-MDTBuildLabPermissions.ps1

3. Copy the following scripts to the E:\MDTBuildLabScripts folder:


 Config-DisableWindowsStoreUpdates.wsf
 Config-EnableWindowsStoreUpdates.wsf

Step 3 – Import the Windows 10 operating


system
On MDT01, mount the Windows 10 Enterprise x64 v1809.iso media (or whatever you named it). On my server it was
mounted to the D: drive.
1. Using the Deployment Workbench, expand the Deployment Shares node, expand MDT Build Lab, select
the Operating Systems node and create a folder
named Windows 10.
2. Right-click the Windows 10 node, and select Import Operating System. Use the following settings for the Import
Operating System Wizard.
1. Full set of source files
2. Source directory: D:\
3. Destination directory name: W10X64v1809
4. After adding the operating system, in the Windows 10 node, change the operating system name to Windows 10
Enterprise x64 v1809.

Note: The Windows 10 v1809 media comes with many Windows version, in the below example I simply removed all but

the Enterprise version.


The Windows 10 Enterprise x64 v1809 operating system imported to deployment workbench.

Step 4 – Add applications


Not a hard requirement, but it make sense to add at least the various Visual C++ runtimes to your reference because

quite frankly, you are installing Windows 10 to run apps, and many apps are depending on one or more of these runtimes.

As you probably know, there are x86 and x64 versions of the runtimes, and for Windows 10 x64, you need both.

Note: Visual C++ 2015 is included in Visual C++ 2017, so you only need to install Visual C++ 2017.

For the Visual C++ runtimes, you make the install a bit easier by using a VBScript wrapper that installs all of them.

1. On MDT01, extract the Visual C++ runtimes install wrapper to C:Setup.


2. Download each runtime from Microsoft Download Center, and copy to the corresponding folder in C:\Setup\Install –
Microsoft Visual C++ – x86-x64\source.
Each runtime folder.

3. Using the Deployment Workbench, expand Deployment Shares / MDT Build Lab / Applications and create a folder

named Microsoft.

4. Right-click the Microsoft folder, and select New Application. Use the following settings for the New Application

Wizard:
 Application with source files
 Publisher:
 Application name: Install – Microsoft Visual C++ – x86-x64
 Version:
 Source Directory: C:\Setup\Install – Microsoft Visual C++ – x86-x64
 Specify the name of the directory that should be created: Install – Microsoft Visual C++ – x86-x64
 Command Line: cscript Install-MicrosoftVisualC++x86x64.wsf
 Working directory:

5. Download the WSUS reference cleanup script (Script to clear WSUS references from the

image: http://gallery.technet.microsoft.com/Remove-WSUS-configuration-86d3f21c ), and extract to C:\Setup\Action-

CleanWSUSConfig.

6. Using the Deployment Workbench, expand Deployment Shares / MDT Build Lab / Applications and create a folder

named ViaMonstra.

7. Right-click the ViaMonstra folder, and select New Application. Use the following settings for the New Application

Wizard:
 Application with source files
 Publisher:
 Application name: Action – Clean WSUS Config
 Version:
 Source Directory: C:\Setup\Action-CleanWSUSConfig
 Specify the name of the directory that should be created: Action – Clean WSUS Config
 Command Line: cscript Action-CleanWSUSConfig.wsf
 Working directory:
Action – Clean WSUS Config application added to MDT.

Step 5 – Create and


Configure the MDT Task Sequence
1. On MDT01, using the Deployment Workbench, in the MDT Build Lab deployment share, select the Task
Sequences node, and create a folder named Windows 10.
2. Expand the Task Sequences node, right-click on the Windows 10 node, and select New Task Sequence. Use the
following settings for the New Task Sequence Wizard:
1. Task sequence ID: REFW10-X64-001
2. Task sequence name: Windows 10 Enterprise x64 v1809
3. Task sequence comments: Reference Build
4. Template: Standard Client Task Sequence
5. Select OS: Windows 10 Enterprise x64 v1809
6. Specify Product Key: Do not specify a product key at this time
7. Full Name: ViaMonstra
8. Organization: ViaMonstra
9. Internet Explorer home page: about:blank
10. Do not specify an Administrator password at this time
3. Edit the task sequence by navigating to the Task Sequences / Windows 10 folder, right-click the Windows 10
Enterprise x64 v1809 task sequence, and select Properties.
4. On the Task Sequence tab, configure the Windows 10 Enterprise x64 v1809 task sequence with the following settings:
1. Postinstall. After the Configure action, add a Run Command Line action with the following settings:Name: Disable
Windows Store Updates
Command Line: cscript.exe "%SCRIPTROOT%\Config-DisableWindowsStoreUpdates.wsf"
2. State Restore. After the Tattoo action, add a new Group action with the following setting:Name: Custom Tasks (Pre-
Windows Update)
3. State Restore. Enable the Windows Update (Pre-Application Installation) action.
4. State Restore. Enable the Windows Update (Post-Application Installation) action.
5. State Restore. After the Windows Update (Post-Application Installation) action, rename the existing Custom
Tasks group to Custom Tasks (Post-Windows Update).
6. State Restore / Custom Tasks (Pre-Windows Update). Add a new Install Roles and Features action with the following
settings:Name: Install – Microsoft NET Framework 3.5.1
Select the operating system for which roles are to be installed: Windows 10
Select the roles and features that should be installed: .NET Framework 3.5 (includes .NET 2.0 and 3.0)
7. State Restore – Custom Tasks (Pre-Windows Update). After the Install – Microsoft NET Framework 3.5.1 action, add a
new Install Application action with the following settings:
? Name: Install – Microsoft Visual C++ – x86-x64
? Install a Single Application: Install – Microsoft Visual C++ – x86-x64
8. After the Install – Microsoft Visual C++ – x86-x64 action, add a Computer Restart action.
9. State Restore. After the Apply Local GPO Package action, add a new Group action with the following
setting:Name: Custom Tasks (Cleanup)
10. State Restore – Custom Tasks (Cleanup). Add a new Install Application action with the following settings:
1. Name: Action – Clean WSUS Config
2. Install a Single Application: Action – Clean WSUS Config
11. State Restore / Imaging / Capture Image. After the Gather local only action, add a Run Command Line action with the
following settings:Name: Enable Windows Store Updates
Command Line: cscript.exe "%SCRIPTROOT%\Config-EnableWindowsStoreUpdates.wsf"
12. Click OK.
Task Sequence configured for the reference image build and capture.

Step 6 – Configure the deployment share


To configure the deployment settings, you modify the two rules files (Bootstrap.ini and CustomSettings.ini). You can do

the either via the MDT Build Lab deployment share properties, or directly in the file system, in the E:\MDTBuildLab\Control

folder. Below you find the configurations I used in this guide.

Note: In my environment, my WSUS server is named WSUS01, and I'm using the default WSUS port in Windows Server

2012 R2 which is 8530.

Bootstrap.ini

[Settings] Priority=Default

[Default] DeployRoot=\\MDT01\MDTBuildLab$
UserDomain=VIAMONSTRA
UserID=MDT_BA
UserPassword=P@ssw0rd
SkipBDDWelcome=YES

CustomSettings.ini
[Settings] Priority=Default
[Default] _SMSTSORGNAME=ViaMonstra
UserDataLocation=NONE
ComputerBackupLocation=NETWORK
DoCapture=YES
OSInstall=Y
AdminPassword=P@ssw0rd
TimeZoneName=Pacific Standard Time
JoinWorkgroup=WORKGROUP
HideShell=NO
FinishAction=SHUTDOWN
WSUSServer=http://wsus01.corp.viamonstra.com:8530
ApplyGPOPack=NO

BackupShare=MDT01MDTBuildLab$

BackupDir=Captures

BackupFile=%TaskSequenceID%_#month(date) & "-" & day(date) & "-" & year(date)#.wim

SkipAdminPassword=YES

SkipProductKey=YES

SkipComputerName=YES

SkipDomainMembership=YES

SkipUserData=YES

SkipLocaleSelection=YES

SkipTaskSequence=NO
SkipTimeZone=YES
SkipApplications=YES

SkipBitLocker=YES

SkipSummary=YES

SkipRoles=YES

SkipCapture=NO

SkipFinalSummary=YES

1. On MDT01 in the E:\Labfiles\LTI Support Files\MDT Build Lab\Control folder, modify


the Bootstrap.ini and CustomSettings.ini per the above examples.
2. Using the Deployment Workbench, right-click the MDT Build Lab deployment share and select Properties.
1. In the Windows PE tab, in the Platform dropdown list, make sure x86 is selected. Then in the Lite Touch Boot Image
Settings area, configure the following settings:
1. Image description: MDT Build Lab x86
2. ISO file name: MDT Build Lab x86.iso
2. Still in the Windows PE tab, select the Drivers and Patches tab, and configure the following:
1. Selection profile: Nothing
2. Select the Include all drivers from selection profile option
Configuring the deployment share not to add the Windows 10 CU into the boot image.
3. In the Windows PE tab, in the Platform dropdown list, make sure x64 is selected. Then in the Lite Touch Boot Image
Settings area, configure the following settings:
1. Image description: MDT Build Lab x64
2. ISO file name: MDT Build Lab x64.iso
4. Still in the Windows PE tab, select the Drivers and Patches tab, and configure the following:
1.
1. Selection profile: Nothing
2. Select the Include all drivers from selection profile option
5. Click OK.
6. Update the deployment share, by right-clicking the MDT Build Lab deployment share and select Update Deployment
Share. Use the default Options for the Update Deployment Share wizard.
The contents of the E:\MDTBuildLab\Boot folder after updating the deployment share.

Step 7 – Create Windows Reference


Images
Create a Windows 10 Reference WIM Image, fully automated.
1. On MDT01, copy the E:\MDTBuildLab\Boot\MDT Build Lab x64.iso file to your VMware or Hyper-V machine.
2. Create a virtual machine named REF001, assign it two vCPUs and 4 GB RAM. Then mount MDT Build Lab x64.iso on
the virtual machine.
3. Start the REF001 virtual machine, and allow it to boot. Then complete the Deployment Wizard using the below settings:
1. Select a task sequence to execute on this computer: Windows 10 Enterprise x64 v1809
2. Specify whether to capture an image: Capture an image of this reference computer.
1. Location:
2. File name:

The task sequence will now do the following:

 Install the Windows 10 Enterprise operating system.


 Install the added applications, roles, and features.
 Stage WinPE on the local disk.
 Run Sysprep and reboot into WinPE.
 Capture the Windows 10 installation to a WIM file.
MDT capturing a Windows 10 Image.

Resources
Note: Please also check these posts:

Fixing why Sysprep fails in Windows 10 due to Windows Store updates

https://deploymentresearch.com/615/Fixing-why-Sysprep-fails-in-Windows-10-due-to-Windows-Store-updates

Remove WSUS configuration before capturing a Reference Image with MDT (by @NickolajA )

http://www.scconfigmgr.com/2014/12/29/remove-wsus-configuration-before-capturing-a-reference-image-with-mdt/

Image Factory

Automate this process even further (you still need to do the step in this guide first), check out the Image Factory for

Hyper-V solution by Mikael Nystrom (@mikael_nystrom).

http://github.com/DeploymentBunny/ImageFactoryV3ForHyper-V

Potrebbero piacerti anche