You are here:   Research
  |  Login

Welcome to my blog, quickest way to find articles is usually to search for them.

Minimize
Search in All Title Contents
 
     

Building a Windows 10 v1809 reference image using Microsoft Deployment Toolkit (MDT)

Oct 03 2018

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: http://deploymentresearch.com/Research/Post/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.

WARNING: While this post is accurate, please don’t deploy Windows 10 v1809 just yet. It has been pulled back because of quality issues. More info here: https://support.microsoft.com/en-us/help/4464619/windows-10-update-history   

                  

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.

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    

     

    image 
    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)

    image
    Installing WinPE Addon for Windows ADK 10 v1809.

     

    3.  Install MDT 8450 using the default settings.

     

      image   
      Installing MDT 8450.

          

      Step 2 – Create the MDT Build Lab Deployment Share

      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:)
         
        1. a.    Deployment share path: E:\MDTBuildLab
          b.    Share name: MDTBuildLab$
          c.    Deployment share description: MDT Build Lab
          d.    Options: <default settings>

      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): https://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Set-MDTBuildLabPermissions.ps1

      3. Copy the following scripts to the E:\MDTBuildLab\Scripts 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.

                   

            image 
            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.
                 

                

              image    
              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: <blank>
                • Application name: Install - Microsoft Visual C++ - x86-x64
                • Version: <blank>
                • 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: <default>

                5. Download the WSUS reference cleanup script (Script to clear WSUS references from the image: https://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: <blank>
                • Application name: Action – Clean WSUS Config
                • Version: <blank>
                • 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: <default>

                image
                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.

                  image 
                  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=\\MDT01\MDTBuildLab$
                  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


                        image
                        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
                         
                      3. Still in the Windows PE tab, select the Drivers and Patches tab, and configure the following:

                            1. Selection profile: Nothing
                              1. Select the Include all drivers from selection profile option
                                 
                            1. Click OK.     
                               
                            2. 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.

                          image     
                          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: <default>
                              2. File name: <default>

                           

                          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_thumb1_thumb
                            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/Research/Post/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 )
                            https://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)
                            https://github.com/DeploymentBunny/ImageFactoryV3ForHyper-V









                              Find this article helpful? Sign-up to get our monthly newsletter with more helpful tips.


                              Happy deployment, and thanks for reading!


                              What our lawyers makes us say:

                              This information is provided "AS IS" with no warranties, confers no rights and is not supported by the authors or Deployment Artist.

                              Copyright © 2017 by Deployment Artist (the company behind deployment research). All rights reserved. No part of the information on this web site may be reproduced or posted in any form or by any means without the prior written permission of the publisher.

                              Shorthand: Don't pass off our work as yours, it's not nice.

                              Blog Archive

                              Minimize

                              Meet the experts!

                              Live Stream Recordings
                              ConfigMgr 1806 and W10 OSD

                              Windows 10 OSD Classes (US)
                              Nov 5, 2018, Phoenix, US
                              Dec 10, 2018, Chicago, US

                              Windows 10 OSD Classes (Europe)

                              Sep 4, 2018, Culemborg, The Netherlands

                              ConfigMgr CB Classes (US)
                              Aug 27, 2018, New York, US
                              Nov 12, 2018, San Diego, US

                              Video-based trainings
                              https://online.truesec.com
                              https://deploymentartist.com/Training/Videos

                              MDT, Windows 10 and ConfigMgr Books
                              http://deploymentartist.com/Books

                              Contact Info
                              http://deploymentresearch.com/theteam