Windows 10 Image Build–A Walkthrough

I thought it was about time I sorted my deploymentshare ready for Windows 10 so today I ran through some upgrades. 

I suggest you fire up your WSUS installation before you start any of this, select Windows 10 from Products and Classifications and get the Windows 10 content synchronising so that when we do build an image it can refer to WSUS to bring it up to date.   So if you haven’t done this already, stop now and go and do that before continuing.

I currently have a MDT server set up with a Build Share and Production Share which uses MDT2013 (build 6.2.5019.0) and Windows ADK 8.1.   In order to support Windows 10 I have to update both my ADK version and my MDT version. 

image

Here are two links to obtain the newer software:

ADK for Windows 10 - http://go.microsoft.com/fwlink/p/?LinkId=526740 
MDT 2013 Update 1 -  http://www.microsoft.com/en-us/download/details.aspx?id=48595

I’m going to start with ADK.  After clicking the link above you will download the setup which you will then run.  Chose to install and select all options to get the full experience.  Set off the install which is 4GB worth of downloads so now may be a good opportunity to go and make a coffee.

image

Once completed, lets upgrade MDT. Straight forward install.
image

Once installed of course we need to upgrade our current deploymentshares.  So lets load up the Deployment Workbench, we should notice that the there are yellow warning triangles next to our shares like so:

image

Right click and select to Upgrade Deployment Share

image

Then let it upgrade the share

imageimage

Rinse and repeat and we’re ready to rock!  You’ll notice the display names come back after the upgrade.

image

Now lets build the image!

First we obtain a Windows 10 ISO either from VLSC or MSDN etc and we will import it as an operating system.  I first download the Windows 10 Enterprise ISO for my environment.

image

Another perfect opportunity to go for a coffee as this too is a 4GB download.

image

Sweet!  Right, lets get it added in to MDT.  So I mount the ISO to a virtual drive by simply clicking on it, then I open up Deployment Workbench, I will drill into my  build share’s Operating Systems node and create a new folder of Windows 10. I than create a subfolder of Enterprise this is where I will import the OS from.  I do this so that if a customer asks me to install Pro instead of Enterprise at any point, I can simply create a Pro folder under Windows 10 and import to there.  So, right click and Install Operating System select CD and import the OS.

image

imageimage

imageimage

Rename the OS listed in MDT because it always gives it a long name.

Next, and this is rather important, now you need to completely regenerate your boot images.  So right click on your deploymentshare and opt to Update Deploymentshare and then to Completely regenerate the Boot Images

Next step, Task sequence, so right click and select New Task Sequence

imageimage

Fill in the Task Sequence ID and Task Sequence Name, then select a Standard Task Sequence type…

imageimage

Select your Windows 10 Enterprise x64 WIM and don’t specify a product key, fill in your company details and set an admin password then finish and your task sequence is created.

image

Now the fun starts, lets crack open the task sequence so we can edit the steps within it.   

Under State Restore you will see a folder called Custom Tasks. Here is where I suggest you place all the software you wish to install on your image you should already have your software added in as applications so here I normally create folders and prefix the with ‘INSTALL – ‘ or ‘SCRIPTS’  I created one folder for Microsoft Office, one for Visual C++ Runtimes, one for standard apps and a scripts folder where I place some custom scripts.  Like so,

image

Obviously its up to you what you put here.  Next I move the entire Custom Tasks folder up one level so it falls between the two Windows Update steps and I enable both update steps.  This way as the task sequence proceeds through the steps it will update, install applications and then run another update step which will pull in any updates to the applications installed.  Covering all bases.

image

Next we’ll add on a suspend step, so the build process will suspend, allowing us to make any further customisations or install software that perhaps cannot silently install.  To do this I create another folder after the Enable BitLocker step and call it SUSPEND.  Within that folder I create Run Command Line step and call it SCRIPT – Suspend Task Sequence.   The command to type into the Command Line box to call the script is:

   1: cscript.exe "%scriptroot%\LTISuspend.wsf"

image

Finally, as this will be a build and capture sequence I will need to set a few MDT properties and run a script to generate an image name.  If you expand Imaging and then create a folder in between Prepare Only  and Sysprep Only.

CONFIG - MDT Capture Variables

image

Almost there! Now we add in four task sequence variable steps to the CONFIG – MDT Capture Variables

1.  Task Sequence Variable = DoCapture | Value = Yes
2.  Task Sequence Variable = ComputerBackupLocation | Value = Network
3.  Task Sequence Variable = BackupShare | Value = \\Server\BUILDSHARE$
4.  Task Sequence Variable = BackupDir | Value = Captures

The value for BackupShare is the root folder for your own deploymentshare. 

And finally (a nice touch), I always name my images neatly, so as I’m going through the LTI steps I will chose to name my machine WIN10ENTx64, because of that when I call script I have which names the WIM files I can use a simple script I put together.  Its a PowerShell script so save the code into your own .PS1 file and then insert a step to call the script.  Here is the code:

   1: <#
   2:  
   3: Script to name the WIM files correctly in MDT
   4: Author: Jonathan of www.deploymentshare.com
   5: July 2015
   6:  
   7: #>
   8:  
   9: $strDate = Get-Date -format y
  10: $TSEnv:BackupFile = $TSEnv:OSDComputerName + " - " + $strDate + ".wim"

Name-WIM-v1.0.0.ps1

image

Now lets test the image, fire up a Gen2 HyperV VM and chose your Windows 10 task sequence.

image

Remember we set the script to take the computer name and use it as part of the captured image name, so I name my image WIN10ENTx64

image

Finish off the rest of the wizard and hit Begin of course you can make this ZTI if you wish.  ZTI is great if you’re onsite in one place permanently but it cant cover all bases if you roam around visiting lots of clients like I do so my MDT is LTI.

image

Ok here we go….

image

This is lies, go for a coffee…

image

Nice, Windows Update working!

image

And the suspend has taken place, notice the Resume Task Sequence icon on the desktop, when you’ve made your further adjustments or put on any additional software you can then resume the task sequence, this will then finish up, set the capture details and after running the Image clean up it will capture the slick image to the Captures folder of your deploymentshare.  You then have

image

Off it goes capturing up and if we check the folder we should see the nice neat name set by the script…

image

image

Upgrades complete, Operating System imported, task sequence generated and edited and image captured up nicely!  Only thing left to do is to deploy the captured image to your machines.

I hope this is helpful for you.

Jonathan.