Jump to content


  • 0
anyweb

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

Question

Introduction

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.

Surface-Pro-3.jpg

 

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

SkipApplications=YES

to

SkipApplications=NO

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.

 

LiteTouchPE_X64.png

 

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

 

Troubleshooting

 

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:\MININT\SMSOSD\OSDLOGS
  • C:\Users\Administrator\Appdata\Local\temp\SMSTSLog

 

Summary

 

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

glad you got it working but i'll stand by my original comment, you should be capturing the image on virtual machines and deploying that reference image to your Surface Pro 3's (and other devices)

Share this post


Link to post
Share on other sites

  • 0

I havnt tried it but you could script it to create the required recovery partitions (two, one for recovery boot files and one for the recovery image) in GPT mode, and then script it to copy the backup image to that special partition, recovery partitions are special, they are hidden and marked with certain GPT GUID's as described in another post by me on UEFI Refresh scenarios.

Share this post


Link to post
Share on other sites

  • 0

Hello i'm Deploying a Surface PRo 3 with MDT 2013. Using the Microsoft Driver pack Surfacepro3_150519.zip. The Surface is in the microsoft dock.

I Get a error after very reboot that sayes can't connect to the deployment share. with the option retry or cancel. If i retry the deployment goes on.

I included a part of the BDD.log of the Machine.

can someone please help me i have to deploy 50 Surface pro 3 tablet.


Event 41017 sent: LTI initiating task sequence-requested reboot. LiteTouch 5-6-2015 13:22:46 0 (0x0000)
Creating RunOnce registry key to run LiteTouch.wsf for the next reboot. LiteTouch 5-6-2015 13:22:46 0 (0x0000)
Property BootPE is now = LiteTouch 5-6-2015 13:22:46 0 (0x0000)
Microsoft Deployment Toolkit version: 6.2.5019.0 LiteTouch 5-6-2015 13:23:07 0 (0x0000)
ZTIUtility!GetAllFixedDrives (Onwaar) LiteTouch 5-6-2015 13:23:07 0 (0x0000)
New ZTIDisk : \\MOSMD1003\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE0" LiteTouch 5-6-2015 13:23:07 0 (0x0000)
New ZTIDisk : \\MOSMD1003\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE0" LiteTouch 5-6-2015 13:23:07 0 (0x0000)
New ZTIDiskPartition : \\MOSMD1003\root\cimv2:Win32_DiskPartition.DeviceID="Disk #0, Partition #2" \\MOSMD1003\root\cimv2:Win32_LogicalDisk.DeviceID="C:" LiteTouch 5-6-2015 13:23:07 0 (0x0000)
New ZTIDisk : \\MOSMD1003\root\cimv2:Win32_DiskDrive.DeviceID="\\\\.\\PHYSICALDRIVE0" LiteTouch 5-6-2015 13:23:07 0 (0x0000)
ZTIUtility!GetAllFixedDrives = C: LiteTouch 5-6-2015 13:23:07 0 (0x0000)
Found existing task sequence state information in C:\_SMSTaskSequence, will continue LiteTouch 5-6-2015 13:23:07 0 (0x0000)
Not running within WinPE. LiteTouch 5-6-2015 13:23:07 0 (0x0000)
DeploymentMethod = UNC LiteTouch 5-6-2015 13:23:07 0 (0x0000)
Validating connection to \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:23:07 0 (0x0000)
No physical adapters present, cannot deploy over wireless LiteTouch 5-6-2015 13:23:07 0 (0x0000)
Unable to connect to the deployment share \\WDS-01\DeploymentShare$.
DHCP Lease was not obtained for any Networking device! Possible Cause: Check physical connection. LiteTouch 5-6-2015 13:23:08 0 (0x0000)
ValidateDeployRootWithRecovery: Retry LiteTouch 5-6-2015 13:25:30 0 (0x0000)
Validating connection to \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:25:30 0 (0x0000)
Mapping server share: \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:25:30 0 (0x0000)
Mapped Network UNC Path Z: = \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:25:32 0 (0x0000)
Found Existing UNC Path Z: = \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:25:32 0 (0x0000)
Successfully established connection using supplied credentials. LiteTouch 5-6-2015 13:25:32 0 (0x0000)
DeployRoot = \\WDS-01\DeploymentShare$ LiteTouch 5-6-2015 13:25:32 0 (0x0000)
Property DeployDrive is now = Z: LiteTouch 5-6-2015 13:25:32 0 (0x0000)
DeployDrive = Z: LiteTouch 5-6-2015 13:25:32 0 (0x0000)
Phase = STATERESTORE LiteTouch 5-6-2015 13:25:32 0 (0x0000)

Share this post


Link to post
Share on other sites

  • 0

sounds like you havn't got the gigabit network driver in your boot wim, which you would have if you used my PowerShell script, so... are you using my script or not ?

Share this post


Link to post
Share on other sites

  • 0

No i'm not using your script. Boot wim is build throug the MDT. First boot to PXE is ok. After the initial install i got the error. but with a retry the deployment continues. Looks like some kind of timeout loading the driver.

Share this post


Link to post
Share on other sites

  • 0

This is realy Strange. for me to press F8 i had to modify the customsettings.ini and remove the line hideshell=yes.

 

Now the deployment gives no errors more on the screen during the deployment. Also o errors more in the Logfiles.

 

if i set the line hideshell back errors are back.

 

This is very strange.

Share this post


Link to post
Share on other sites

  • 0

PS: Made sense to create new thread.. You site and forum is amazing and I wonder why it did not show up on my Google searches regarding issues for Surface Pro 3.

 

I will link to that thread here. I figured the MDT might be easier than SCCM for me.. But maybe you have a simpler way for this simple task.

 

Create/ Image/ Sysprep Win 8.1 & Win 10 VHDs WIMs for Native Boot on Surface Pro 3 for isolated activities without huge server setup?

Share this post


Link to post
Share on other sites

  • 0

When I try to PXE boot to my surface pro I get a really quick flash of an error (Which I had to capture with my slo-mo feature on my iPhone!!!)

Message:

Server IP Address is 192.168.23.246 (Which is correct)

NBP filename is boot\x64xwdsmgfw.efi

NBP filesize is 0 Bytes

Then returns and boots up into windows.

Any ideas?

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.

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

Loading...


×
×
  • 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.