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:
- Windows ADK 8.1
- MDT 2013
- Windows Server Update Services 4.0
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.
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.
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:
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.
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.
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=https://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=https://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.
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.
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.
16. Disable the BitLocker step.
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.
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.
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.
That’s it! You now have a reference image ready to be deployed with ConfigMgr 2012.
Question, I have never had this issue with Win 7 but now as I try to build a custom task sequence with Windows 81. Ent the entire task sequence stops after the os has been dropped. Windows settings, domain settings and confmgr are all installed but after that the OS launches and does not proceed to the next task sequence.
can I capture an image of the OS volume after I run sysprep witch has my unattend.xml file in place and the machine shuts down as directed after sysprep.
I have been doing this with command prompt using imageX boot cd. This works OK to create our master image .wim file but would like a more automated way to do it with either MDT or SCCM 2012.
Thanks for a great instructional site,
D
Hi Dac,
So you’d like to have the reference image virtual machine automatically shut down after it has successfully captured the WIM? You’d simply just add the FinishAction property to the CustomSettings.ini file, with the value of SHUTDOWN. Like this:
FinishAction=SHUTDOWN
Regards,
Nickolaj
Awesome walk through! There is one part I don’t understand. I loaded the ISO of litetouch and booted the image system off of it. It seems to go through its stages pretty quick and then the system reboots. After that, it just launches back into win8.
Its like I never ran the Litetouch. The whole process takes about 1 min. Not sure what to do at this point. Even tried running the litetouch.vbs. That runs for about 5 sec and then nothing. I am at a loss~!
Hi Jason,
Do you see the Deployment Wizard being launched at all? I’d go through all the steps and make sure everything is setup as required. You could also take a look at my automated tool for creating reference images with MDT. The tool installs and configures everything you need to get going:
https://msendpointmgr.com/2014/09/13/mdt-factory-tool-version-1-0-1-has-been-released/
Regards,
Nickolaj
Great easy to follow article,, thank you.
I hope you make MVP soon you do some really good stuff.
Hi Richard,
I’m glad that you think it’s a great article, since that’s one of my goals with this blog to share my knowledge and make it easy for others to follow the instructions. To become a MVP one would have to be nominated for each cycle they either renew and award new MVP’s. I’ve been nominated a few times around now, but never got further. Although, I’m not doing this to become a MVP, I’m doing it because I truly believe in the community, sharing information and helping out wherever I can.
Regards,
Nickolaj
Thanks for helping out and posting knowledgeable articles so others like myself can learn…
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?
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:
https://msendpointmgr.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:
https://www.deploymentresearch.com/Research/tabid/62/EntryId/69/The-Drivers-Saga-continues-How-to-Master-Drivers-in-ConfigMgr-2012.aspx
Regards,
Nickolaj
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?
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..
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….
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
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?
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
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:
https://msendpointmgr.com/2013/10/19/deploy-windows-8-1-with-configmgr-2012-r2/
Regards,
Nickolaj
Thanks !! works like a charm
Hi Mark,
Thank you! Let me know if you need any other help or guidance 🙂
Regards,
Nickolaj
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.
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
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.
Hi Steve,
This script was released a few weeks ago as the MDT Factory Tool, and it’s available here:
https://gallery.technet.microsoft.com/MDT-Factory-Tool-100-8e68123b
Regards,
Nickolaj
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?
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
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
Hi Austin,
I’ll put it on my todo list!
Regards,
Nickolaj
Very clean tutorial! Good job on this.
Hi Brian,
Thank you very much! My aim is to provide as detailed and thorough guides as possible 🙂
Regards,
Nickolaj
Do you know how to do this through SCCM 2012 R2 with MDT?
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
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
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
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
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
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.