Jump to content

  • 0

How can I deploy Windows 8.1 x64 to the Microsoft Surface Pro 3 using MDT 2013 ?



In a previous post I showed you how you can deploy Windows 8.1 x64 to the Microsoft Surface Pro 3 using System Center 2012 R2 Configuration Manager.



In this post I'll show you how to do the same thing with Microsoft Deployment Toolkit (MDT) 2013, except this is fully automated, all you have to provide is a server, the operating system files and change a few variables in the script.


Note: As this is fully automated, and as this does install a WDS server role hosting a boot image, you should test it in a lab first and modify the script accordingly.


There are many PowerShell scripts out there to create fully automated labs (hydration kits) from MDT gurus like Johan Arwidmark or Mikael Nystrom or upcoming cool dudes like Nickolaj Andersen, but this script is tailored for one thing only, deploying Windows 8.1 x64 to the Microsoft Surface Pro 3 with all drivers loaded.


You may want to download it and customize it to suit your needs for other hardware because what it does is pretty cool.


This script performs the following actions:-

  • Downloads and then Installs Windows ADK 8.1 (if you have not done so already)
  • Downloads and then Installs MDT 2013 (if you have not done so already)
  • Downloads all required drivers for Microsoft Surface Pro 3 (see screenshot below)

Downloading Surface Pro 3 drivers.png

  • Adds the Windows 8.1 x64 operating system into MDT
  • Adds the Microsoft Surface Pro 3 drivers into MDT (see screenshot below)

Surface Pro 3 drivers in the Deployment Workbench.png

  • Creates Selection Profiles for Microsoft Surface Pro 3 and WinPE x64 (see screenshot below)

selection profiles.png

  • Creates a Deploy Windows 8.1 x64 - Surface Pro 3 task sequence
  • Edits the Deploy Windows 8.1 x64 - Surface Pro 3 task sequence and adds an inject drivers step for Microsoft Surface Pro 3 (see screenshot below)

Surface Pro 3 drivers step.png


in addition, it sets the WMI query for the Surface Pro 3 on that step (see screenshot below)


wmi query.png

  • Injects the Microsoft Surface Pro 3 network drivers into the LiteTouchPE_x64.wim
  • Creates new CustomSettings.ini and BootStrap.ini files
  • Disables the X86 boot wim (not needed for Surface Pro 3)
  • Changes the Selection Profile for the X64 boot wim to use the WinPE x64 selection profile (see screenshot below)

winPE x64 selection profile.png

  • Installs the Windows Deployment Service role
  • Configures the WDS role and adds the previously created LiteTouchPE_x64.wim (see screenshot below)

wds with lite touch windows pe boot wim.png

  • Starts the WDS service so that you can PXE boot (UEFI network boot).

All you have to do is download the script below, then place some files in the right place, PXE boot a Microsoft Surface Pro 3 and sit back and enjoy the show. So let's get on with what you need to do...


Step 1. Download the script


This PowerShell script will do all the hard work for you, download it and place it on your server that is designated to be the MDT 2013 server. I've tested it on Server 2012R2 only, if you run it on a different operating system and have issues then post your results below.


Setup MDT 2013 for Microsoft Surface Pro 3.zip


Update: I've updated the script above to include the March 2015 drivers and updates and it's available here.


Step 2. Configure the variables in the script


Once you have downloaded the script, you should configure the variables interspersed throughout the script, the most important of them is the $SourceFolder variable as this decides where to get the content from (if you've copied it already) and where to store it. This variable should point to a valid drive letter, the folder name will be created if it does not exist.


change the SourcePath variable.png


The $FolderPath variable will be the MDT Deployment share root folder eg: E:\DeploymentShare.


There are other variables to configure, scroll down through the script to find them, such as the ones below


configuring variables.png


You will also want to edit the CustomSettings.ini and BootStrap.ini settings within the script to suit your own environment.


Step 3. Copy the Windows 8.1 x64 operating system files


Mount a Microsoft Windows 8.1 x64 Enterprise ISO and copy the contents to $SourceFolder\Operating Systems\ as shown below


copy the Windows 81 iso contents.png


Step 4. Copy MDT 2013, ADK 8.1, Surface Pro 3 drivers (optional)


If you've already downloaded the above files then place them in the source folder, otherwise the script will download them for you. In the screenshot below you can see I'm manually copying the offline ADK 8.1 files, you do not have to do this as the script will download the content for you if it's not found.


copy the Windows ADK 81.png


Step 5. Copy your Applications to the respective folders (optional)


If you have apps like Office 2013, copy them to their respective folders as shown below


Office 2013 Pro Plus.png


If you do add apps, then you'll also need to change the following section of CustomSettings.ini




Step 6. Run the script


On the server that is to be your MDT server, start the script in PowerShell ISE or which method you prefer, below you can see the script in action, it has just created the selection profiles for the Surface Pro 3


the script in action.png


After the script is complete, you are ready to test deploying a Microsoft Surface Pro 3 installation.


script is all done.png


and below you can see the E:\Source folder after the script has run, it has downloaded a bunch of stuff !


source folder.png


Step 7. Sit back and watch the deployment


Take a properly shutdown Surface Pro 3, and power it on using the following sequence


Hold the down volume key and then press the power button while continuing to hold down the volume key, it should PXE boot


Press enter when prompted


PXE boot.png


and then it will load the MDT LitetouchPE_X64 boot wim.




before prompting you for a computername, note that it's currently set to SurfacePro3,


Windows Deployment Wizard shows the SurfacePro3 computername.png


you can change it in the UI itself or automate it via the many methods available such as those that Mikael describes here


click next and off it goes, inject the Surface Pro 3 drivers (oh and of course, you've got working network in WinPE as the network drivers were added to the boot wim already)


drivers injected.png


and after a wee while, it's done.


the finished product.png




If the script has issues starting WDS (and you see the error below)


An error occurred while trying to execute the command.
Error Code: 0x41D
Error Description: The service did not respond to the start or control request in a timely fashion.



then restart the server, as you were asked to do at the end of the script ;-).


For deployment issues, you can review the logs found in the following locations depending on what part of the OSD process you are in:-


In WinPE


  • X:\windows\temp\SMSTSLOG


In Windows


  • C:\Windows\Temp\DeploymentLogs
  • C:\Users\Administrator\Appdata\Local\temp\SMSTSLog




Automating the deployment of Windows 8.1 x64 Enterprise to the Microsoft Surface Pro 3 is not only possible but relatively easy with MDT 2013 and a custom powershell script like the one above. I must also say a big thanks to Nikolaj who helped me with some issues in the script, you are awesome !


Related Reading

Share this post

Link to post
Share on other sites

Recommended Posts

  • 0

As another user posted on March 10th, I get this with the script after booting PXE, it can't connect to the share due to the driver not being available. But I manually added the Giga adapter for the docking station. Seems like it just isn't picking up on something after updating WDS etc..


"The following network device did not have a driver installed. PCI\Ven_11...blah"


Retry or Cancel. Obviously missing something.


I'm running a SF3 with latest updates/firmware from March 26 on this device, as I said with a docking station for the NIC connection.


Really, I'm trying to just capture and image from a sysprepped SF3 for our company, then deploy it to the 30+ we have. Little lost here and any help appreciated on the NIC/driver issues.


Thanks, great work on this BTW.

Share this post

Link to post
Share on other sites

  • 0

verify if you have a connection to the deployment share in winpe, if not something went wrong with the driver injection into the boot wim, check the powershell logs in ISE, scroll back and look for any red errors


Thanks, great work on this BTW.



thanks !

Share this post

Link to post
Share on other sites

  • 0

Well, it loads into the gui, and has gets to the Surface3 name in the GUI, but when I then click next, like that last screen shot, it reboots, and around in circles. So, I can't even get to or see the logs or what is going on unfortunately.


On the PXE boot, it is connecting to the server, set it to Admin approval mode, and it of course is talking to it and seeing a list of images to start to download etc.


It is just once I get to the gui where is all falls down.


Will look at the driver injection, maybe once into the Gui, it isn't loading the drivers since they aren't there. But it will usually throw and error about the deployment share with other devices.


Really what I'd like to do is be able to boot this thing up and capture an image of the C parition. But the Windows PE doesn't have the capture wizard in the image. So. Stuck on that mode now trying to create a capture image from the lite touch x64 pe image..but fails.





Share this post

Link to post
Share on other sites

  • 0



Thank you for this guide, it was very helpful and I used it to deploy windos 8.1 to surface pro 3 (I did skip the automation script though).


I have one question, after deploying I created a "syspres and capture" task in MDT to image the surface pro... I keep running into this error


Failure: (5456): Unable to determine destination disk, Partition........



Failed to run the action: Apply Windows PE




what exactly is the task Apply Windows PE doing? it's trying to write something to one of the partitions and failing.


the disk has 4 partitions after the installation


Recovery 300mb

System 499mb

reserved 128mb

Primary 237GB



This is on a surface pro 3, I looked at the logs and online but still unable to get it to work


Thank you in advance for your help


Share this post

Link to post
Share on other sites

  • 0

you really should be creating reference images on virtual hardware and use apply driver package steps to customize a deploy task sequence to custom hardware,


can you attach your bdd.log and smts.log ?

Share this post

Link to post
Share on other sites

  • 0

Attached are the logs and a pic of how the system is partition, today I installed win8.1 from a usb media trying to simplify things but I still can't complete the capture task. No SysPrep involved also as I'm trying to keep it simple to get the task to work..


I tried this fix from MS with no luck too




Thank you






Share this post

Link to post
Share on other sites

  • 0

after looking at the LTIApply.log, the recovery partition on the drive didn't have a letter assigned when I was in Windows PE environment , I assigned it a letter and the capture worked after restarting..... not sure why this WIndows PE step is required and its restart....


All I want to do is boot with USB into windows PE , connect to deployment share and run the task to capture image... can I just disable the highlighted steps


Share this post

Link to post
Share on other sites

  • 0

I have an update, it finally worked but the sequence I need to do is this:


- boot the surface pro with USB, once at the deployment wizard remove the USB stick, run the task to capture, task finished and reboots but it reboots into surface desktop instead of creating the image


-I then plug the usb again and reboot, the surface boots from USB and continue its task of creating the image to the shared drive.



to summarize, the task Apply Windows PE was failing when the bootable USB was plugged in , removing the USB allows the task to complete but then I need to replug so on the next restart the image creation will complete.


I'm confused on what does the "Apply Windows PE" task does and to where it writes its files and why it needs to restart to create the image? if you can please explain that would be great..... I'll continue testing in the meantime





Share this post

Link to post
Share on other sites

  • 0

final update:


I was able to capture by removing the USB stick before running the capture task in Windows PE, so bascially I just booted with the USB stick into winPE, removed it and ran the task from the Deployment wizard, it ran with no issue.


I also skipped the winpe steps, they were causing alot of issue.


I then was able to resore that image to another Surface which had no partitions or OS via the usb stick with no issue.



Thank you

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.