Create a Windows 8.1 Enterprise Reference Image with MDT 2013

On the 18th of October, Microsoft released Windows 8.1 to the market. You can now grab the bits from VLSC (Volume Licensing Service Center) and start to create a reference image. In this post we’ll be creating the reference image with MDT 2013.

Overview

  • Environment information
  • Environment setup
  • Configure WSUS automatic approval and synchronization schedule
  • Create a folder structure for the reference image
  • Create a lab Deployment Share
  • Configure the Deployment Share
  • Modify the Rules
  • Modify the Bootstrap.ini
  • Download the Windows 8.1 Enterprise installation media
  • Add an Operating System
  • Create a Standard Client Task Sequence
  • Update the MDT Deployment Share – Lab Environment
  • Create a new virtual machine and start the reference image creation

Environment information

I recommend to install a new Windows Server 2012 (or R2) virtual machine and call it MDT01 (you can call it anything you like, but that’s the machine I’ll reference to through out this post). The server should have the following software installed:

MDT 2012 Update 1 is not supported with Windows 8.1, neither is the Windows ADK 8. That’s why we need to have the latest releases of both MDT and Windows ADK.

The MDT01 server should be joined to a domain. Ideally to a lab environment domain. You’d also need to create an Active Directory user account, MDT_BA and give it a password like Pa$$w0rd. The MDT_BA account and the password is entered in the Rules section described further down and also used to connect to the Deployment Share.

Environment setup

1. Begin to install Windows ADK 8.1. During the setup, you’ll have the option to install several features. The following features are required:

  • Deployment Tools
  • Windows Preinstallation Environment (Windows PE)
  • User State Migration Tool (USMT)

2. Continue with the MDT 2013 installation. This should be fairly easy and does not require any explanation.
3. Install WSUS 4.0 by running the following command in an elevated PowerShell console:

Add-WindowsFeature "UpdateServices","UpdateServices-WidDB","UpdateServices-RSAT","UpdateServices-API","UpdateServices-UI"

4. Paste the following into the same PowerShell console and press Enter:

$WSUSContentFolder = "C:\WSUS"
$WSUSUtil = "$Env:ProgramFiles\Update Services\Tools\WsusUtil.exe"
$WSUSUtilArgs = "POSTINSTALL CONTENT_DIR=$WSUSContentFolder"
Start-Process -FilePath $WSUSUtil -ArgumentList $WSUSUtilArgs -NoNewWindow -Wait

5. Launch Windows Server Update Services console.
6. The Windows Server Update Services Wizard now appears.

50_2

7. Click Next on the Before You Begin page.
8. Click Next on the Microsoft Update Improvement Program page.
9. Click Next on the Choose Upstream Server page.
10. Click Start Connecting on the Specify Proxy Server page. This might take a few minutes. Click Next when finished.
11. On the Choose Languages page, select the languages you wish to download updates for. In this post we’ll only be downloading updates in English. Click Next.
12.  On the Choose Products page, deselect everything except for Windows 8.1. Be aware though that if you’re gonna create a reference image with applications embedded (e.g. Office), remember to add those applicable applications in WSUS later on, otherwise when the step for installing updates begins your reference image will not have any updates for that application. For the purpose of this post, we’re only creating a thin reference image with no applications. Click Next.
13. Click Next on the Choose Classifications page.
14. Select Synchronize automatically on the Configure Sync Schedule page and specify a time schedule that suits your environment. Click Next.
15. On the Finished page, select Begin initial synchronization and click Finish.

Configure WSUS automatic approval and synchronization schedule

1. Launch the Windows Server Update Services console on MDT01, expand Update Services -> MDT01 and click on Options. Configure the Automatic Approvals according to the picture below:

50_3

2. Click on Run Rule.

Create a folder structure for the reference image

1. On the MDT01 server, create the following folder structure:

C:\OSD\ReferenceImages (You could of course choose another structure that suits you better, but remember to edit the Rules section described further down in this post)

2. Right-click on the OSD folder and select Properties. On the Sharing tab, click on Advanced Sharing and then Permissions. Everyone should have Full Control. Click OK until you get back to the OSD Properties window.
3. Click on the Security tab and then Edit. Add the MDT_BA account and ammend its permissions with Modify.

Create a lab Deployment Share

1. Open Deployment Workbench on MDT01.
2. Right click on Deployment Shares and choose New Deployment Share.
3. Enter C:\DeploymentShare as the path for this deployment share and click Next.
4. Choose the default share name suggested (DeploymentShare$) and click Next.
5. Name the deployment share description MDT Deployment Share – Lab Environment and click Next.
6. Click Next on the Options page.
7. On the Summary page, click Next.
8. Click Finish on the Confirmation page.

Configure the Deployment Share

1. Right-click and choose Properties on the MDT Deployment Share – Lab Environment deployment share and click on the Windows PE tab.
2. Select platform x64 and make sure that Generate a Lite Touch bootable ISO image is checked. Change Scratch space size to 128.

50_5

3. Under the Features tab of the Windows PE tab, check .NET Framework and Windows PowerShell 3.0. This step is optional, but necessary if you’d like to add some PowerShell scripts to your task sequence at a later stage.

50_4

4. Click Apply and then OK.

Modify the Rules

1. Right-click and choose Properties on the MDT Deployment Share – Lab Environment deployment share and click on the Rules tab.
2. Replace the existing rules with the following:

[Settings]
Priority=Default
Properties=MyCustomProperty

[Default]
OSInstall=Y
DeploymentType=NEWCOMPUTER
UserID=MDT_BA
UserDomain=contoso.com
UserPassword=Pa$$w0rd

SkipBDDWelcome=YES
SkipDeploymentType=YES
SkipDomainMembership=YES
SkipApplications=YES
SkipSummary=YES
SkipUserData=YES
SkipComputerName=YES
SkipTaskSequence=YES
SkipLocaleSelection=YES
SkipTimeZone=YES
SkipAppsOnUpgrade=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
SkipCapture=YES
SkipFinalSummary=YES

ComputerName=WIN81REF
UILanguage=en-US
UserLocale=en-US
KeyboardLocale=0409:00000409
TimeZoneName=W. Europe Standard Time
TaskSequenceID=WIN81REF
WSUSServer=http://mdt01.contoso.com:8530
DoCapture=YES
ComputerBackupLocation=NETWORK
BackupShare=\\mdt01.contoso.com\OSD
BackupDir=ReferenceImages
BackupFile=Win81EntRefImage.wim
FinishAction=SHUTDOWN

3. Make sure that you edit the rules so that they suit your environment. For example, my domain is contoso.com. Edit the following rows:

UserDomain=contoso.com
WSUSServer=http://mdt01.contoso.com:8530
BackupShare=\\mdt01.contoso.com\OSD

4. If you’ve choosen to give the MDT_BA user another password, remember to change that row aswell:

UserPassword=Pa$$w0rd

5. Click on Apply and then OK.

Modify the Bootstrap.ini

1. Right-click and choose Properties on the MDT Deployment Share – Lab Environment deployment share and click on the Rules tab.
2. Click on Edit Bootstrap.ini.
3. Replace the existing settings with the following:

[Settings]
Priority=Default

[Default]
DeployRoot=\\MDT01\DeploymentShare$

SkipBDDWelcome=Yes
UserID=MDT_BA
UserDomain=contoso.com
UserPassword=Pa$$w0rd

4. Change the UserDomain=contoso.com row so that it contains your domain instead.
5. If you’ve given the MDT_BA account another password than Pa$$w0rd, change it here aswell.
6. Close Bootstrap – Notepad, click Apply and then OK.

Download the Windows 8.1 Enterprise installation media

1. Log on to either MSDN or TechNet and download the Windows 8.1 Enterprise ISO.
2. Mount the ISO on MDT01.
3. Browse the mounted ISO and go to <drive-letter>:\sources.
4. Copy the install.wim to C:\Install (create the folder if necessary).

Add an Operating System

1. Go back to the Deployment WorkBench, right-click on Operating Systems and choose New Folder.
2. In the New Folder window, name the folder Windows 8.1 Enterprise x64 and click Next.
3. Click Finish when the task has completed.
4. Right-click on the newly created folder and choose Import Operating System.
5. On the OS Type page, select Custom image file and click Next.
6. Browse to the install.wim file copied earlier and click Next.
7. On the Setup page, select Setup files are not needed and click Next.
8. Specify the Destination directory name Windows 8.1 Enterprise x64 on the Destination page and click Next.
9. Click Next on the Summary page.
10. Click Finish when the process has completed successfully.
11. Optional: Right-click on the newly added operating system and select Rename. Rename it to Windows 8.1 Enterprise x64 – Install.

Create a Standard Client Task Sequence

1. Right-click on Task Sequences and choose New Folder.
2. In the New Folder window, name the folder Windows 8.1 Enterprise x64 and click Next.
3. Click Finish when the task has completed.
4. Right-click on the newly created folder and choose New Task Sequence.

50_6

5. Enter WIN81REF under Task sequence ID and Windows 8.1 Enterprise x64 – Reference under Task sequence name and click Next.
6. Select Standard Client Task Sequence as your template on the Select Template page and click Next.
7. Select the Operating System created earlier called Windows 8.1 Enteprise x64 – Install and click Next.

50_7

8. Select Do not specify a product key at this time on the Specify Product Key page and click Next.
9. On the OS Settings page, enter your organization information into the Organization field, but leave the Full Name and Internet Explorer Home Page values by default (you could change them if’d like) and click Next.
10. On the Admin Password page, select Do not specify an Administrator password at this time and click Next.
11. Click Next on the Summary page.
12. Click Finish when the process has completed successfully.
13. Right-click on the Windows 8.1 Enterprise x64 – Reference task sequence and select Properties.
14. Go to the Task Sequence tab.
15. Under the State Restore group, enable Windows Update (PreApplication Installation) and Windows Update (Post-Application Installation). You can enable a step by selecting it and clicking on the Options tab for that step, then uncheck the Disable this step. It’s a good idea to enable both Windows Update steps, if you plan to install application in your reference image.

50_8

16. Disable the BitLocker step.

50_9

17. Click Apply and then OK in the task sequence window.

Update the MDT Deployment Share – Lab Environment

1. Right-click on MDT Deployment Share – Lab Environment and select Update Deployment Share.
2. Select Optimize the boot image updating process and click Next.
3. On the Summary page, click Next.
4. Click Finish when the process has completed successfully.

Create a new virtual machine and start the reference image creation

1. Copy the LiteTouchPE_x64.ISO file from C:\DeploymentShare\Boot on MDT01 to either a network share or locally on your virtual machine host server.
2. Create a new virtual machine and mount the LiteTouchPE_x64.ISO to the CD/DVD drive of the virtual machine.
3. Boot the virtual machine and let the magic begin.

50_10

4. Once the image has been applied, you’ll get presented with the Start screen. Don’t be afraid and think that something is broken and the task sequence failed. If you click on the Desktop tile, you’ll see that the task sequence is still running.

50_11

5. When sysprep is done, it will start to create a WIM file. At the end the WIM file will be backed up to the path specified earlier in the Rules section.

50_1

That’s it! You now have a reference image ready to be deployed with ConfigMgr 2012.

29 Comments

  1. Jim

    My Setup :

    MDT 2013 / Win 8.1 – Reference Build and deploy

    Anyone try the LiteTouchx64.iso to USB media and attempt to start it on a box w/ 2GB of RAM? = There isn’t enough memory to create a ramdisk device Error Code: 0xc0000017

    I’m stumped. it works fine on a machine w/ 4GB RAM

    p.s. MDT 2012 windows 8.0 the above process worked like a champ

    Reply
    1. NickolajNickolaj (Post author)

      Hi Jim,

      If I’m not mistaken, with MDT 2013 the “scratch” space is raised from 32MB to 512MB. You could try to decrease it and generate new ISO files.

      Regards,
      Nickolaj

      Reply
      1. Jim

        Nickolaj,

        I did check my 2012:8.0 vs my 2013:8.1 and unfortunately they’re both set to 32…..

        my 2012 iso’s are 300mg and my 2013’s are 1.3gb (both were built exactly the same.) Now to find out why 2013 added an extra GB of content.

        So seems my goal is to get my 2013’s below a gb for it to succesfully write to my 2GB of RAM.

        Reply
  2. Jim

    I found the issue. It had to do w/ the drivers i’m choosing to add or not add on the PE disk itself.

    Thanks again

    Jim

    Reply
    1. NickolajNickolaj (Post author)

      Hi Jim,

      I wondered what you were injecting in the boot image that would make larger than 1GB. I was gonna ask if you had imported all your drivers instead of only the storage and network drivers. If you’re working with Dell systems, you can download the WinPE driver CAB, which has all the necessary drivers. I’m not sure about other providers, but I encourage you to check it out. That way you can keep the boot image size as low as possible.

      I’m glad it all worked out!

      Regards,
      Nickolaj

      Reply
  3. Lee

    Do you know how to do this through SCCM 2012 R2 with MDT?

    Reply
    1. NickolajNickolaj (Post author)

      Hi Lee,

      It’s recommended to use only LiteTouch to create the reference image for ConfigMgr. If you ask MVP’s from Microsoft that’s how they do it and urge others to do aswell. But ConfigMgr is perfectly capable of doing so. If you already have MDT installed and integrated with ConfigMgr, I suggest that you create a new Deployment Share in MDT for reference image creation and configure it accordingly to this post. The reason for creating a reference image with LiteTouch (MDT) is that you get a clean image. With that I mean that there’s no ConfigMgr client installed.

      If you still want to do this with ConfigMgr 2012 R2 and MDT 2013, you can easily just create a “Client Task Sequence” and start there. I’ve not done this myself since I always do it with LiteTouch.

      Regards,
      Nickolaj

      Reply
  4. Brian Gonzalez

    Very clean tutorial! Good job on this.

    Reply
    1. NickolajNickolaj (Post author)

      Hi Brian,

      Thank you very much! My aim is to provide as detailed and thorough guides as possible :)

      Regards,
      Nickolaj

      Reply
  5. austin

    hi.
    can you please give me a guide on how to add ms office 2010 to the wim file and when i boot the winPE image the sysprop will capture a wim with ms office 2010 preinstalled

    Reply
    1. NickolajNickolaj (Post author)

      Hi Austin,

      I’ll put it on my todo list!

      Regards,
      Nickolaj

      Reply
  6. Daniel

    I am at the part in your directory were I mount the 8.1 ISO and pull off the install.wim, but I can not locate it. I found the boot.wim, but are you sure on the standard 8.1 pro media there is an install.wim anymore?

    Reply
    1. NickolajNickolaj (Post author)

      Hi Daniel,

      I’ve not deployed any Windows 8.1 Professional before, but I’d be surprised why there would not be a install.wim on that media. To me it would sound very strange why they would have a different installation method for the Professional version compared to the Enterprise version. I just mounted an Windows 8.1 Professional ISO from MSDN, and that contained the install.wim file. Do you have an install.esd?

      Regards,
      Nickolaj

      Reply
  7. Manoj

    I would like to setup a Standalone (WORKGROUP) MDT deployment server in my lab environment.

    How should the customsettings.ini be configured in order to be able to deploy new machines and make them join another domain(s) on the network?

    Please advice.

    Reply
    1. NickolajNickolaj (Post author)

      Hi Manoj,

      I’ve created a PowerShell script that you run on a workgroup server to do the following:

      – Install MDT 2013
      – Install Windows ADK 8.1
      – Let you import Operating Systems
      – Let you import Applications
      – Configure WSUS
      – Begin initial WSUS synchronization
      … and much more.

      Basically it will setup the whole MDT deployment solution for you. All you need to do is just to boot a VM from the ISO MDT generates, select a task sequence and then let the reference image creation begin. If you want I can give you the script now, it’s complete and tested, but I’ve not yet found any time to write a blog post about it (I just switched jobs). Send me an email, you’ll find it on the About page.

      Regards,
      Nickolaj

      Reply
      1. Steve Rackham

        Hi, I would be most appreciative of obtaining a copy of the lab creation script. Is it possible to forward a copy or provide a link?
        Thanks for your help and the great article.

        Regards
        Steve.

        Reply
        1. NickolajNickolaj (Post author)

          Hi Steve,

          This script was released a few weeks ago as the MDT Factory Tool, and it’s available here:

          http://gallery.technet.microsoft.com/MDT-Factory-Tool-100-8e68123b

          Regards,
          Nickolaj

          Reply
  8. Mark

    Thanks !! works like a charm

    Reply
    1. NickolajNickolaj (Post author)

      Hi Mark,

      Thank you! Let me know if you need any other help or guidance :)

      Regards,
      Nickolaj

      Reply
  9. Dominic

    Hi Nickolaj

    Thank you for this post, it’s very helpful!

    Do you also have a post about how deploying the reference wim-file to a target computer?

    Best Regards,
    Dominic

    Reply
    1. NickolajNickolaj (Post author)

      Hi Dominic,

      Thank you!

      As of right now I’ve only made a post about deploying Windows 8.1 with a native ConfigMgr task sequence, not a MDT task sequence. You’ll find that post here:

      http://www.scconfigmgr.com/2013/10/19/deploy-windows-8-1-with-configmgr-2012-r2/

      Regards,
      Nickolaj

      Reply
  10. sccmghost

    I want to know few things. please help me bit briefly

    a) it can be used for windows 7 as well?
    b) what is difference between Config manager native mode (task sequence without MDT & reference image with MDT 2013
    c) please provide me steps to inject language pack at least one language like Spanish or French
    d) it is necessary to edit using System image editor like copy admin profile , regional settings & keyboard settings?
    e) light touch boot ISO can be used as SCCM 2012 R2 x64 boot image? i mean just import same boot ISO into SCCM it will work?

    Reply
  11. Gus

    Hey Nick,

    You have an error in your Modify Rules answer file:

    SkipeCapture=Yes it should say NO..other wise sysprep won’t capture your base image….

    Reply
    1. NickolajNickolaj (Post author)

      Hi Gus,

      SkipCapture is only to skip the wizard page where you can configure the capture settings. Further down you can see that I’ve specified DoCapture=Yes.

      Here’s some more information:

      SkipCapture (from Deployment WorkBench help files):
      Indicates whether the Specify whether to capture an image wizard page is skipped.
      For other properties that must be configured when this property is set to YES, see Providing Properties for Skipped Deployment Wizard Pages.

      Regards,
      Nickolaj

      Reply
  12. Gus

    One more comment: if you are installing applications in your task sequence you nee to change the skipApplcations=YES to NO, other wise the task sequence won’t install them..

    Reply
  13. Janne

    I have followed this Guide but when I try to “Create a new virtual machine and start the reference image creation” it just hangs?
    The virtual machine goes on high CPU but nothing seems to happen. How can I monitor this process?

    Reply
  14. Richard Zubulake

    How would I make a universal image on a virtual machine? The image is a windows 8.1, It has various software installs and updates. Also, If I putting this on a physical machine, i need the drivers to be installed. I have all the drivers and i put them in out of box drivers. But how do i tell the install to use which driver pack?

    Reply
    1. NickolajNickolaj (Post author)

      Hi Richard,

      This post is only for creating the reference image (that you could call a universal image, golden image etc). Once you have that reference image created with the stuff that you want to be installed on every machine, like Visual C++ and .NET Framework for instance, you can use that image in either MDT or ConfigMgr. I’ve written a simple guide on how to deploy Windows 8.1 with ConfigMgr, and you’ll find it here:

      http://www.scconfigmgr.com/2013/10/19/deploy-windows-8-1-with-configmgr-2012-r2/

      When it comes to drivers, I suggest that you look into the “Total Control” way of doing things. The way you do that is to import your drivers for each model into separate Driver Packages, and use a WMI query condition in the Task Sequence to dynamically control what Driver Package gets loaded onto the machine depending on the model. You can read more about that here:

      http://www.deploymentresearch.com/Research/tabid/62/EntryId/69/The-Drivers-Saga-continues-How-to-Master-Drivers-in-ConfigMgr-2012.aspx

      Regards,
      Nickolaj

      Reply
  15. Leif Alire

    Thanks for helping out and posting knowledgeable articles so others like myself can learn…

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>