Introduction
In a previous post I showed you how you can deploy Windows 8.1 x64 to the Microsoft Surface Pro 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 Nikolaj 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)
- Adds the Windows 8.1 x64 operating system into MDT
- Adds the Microsoft Surface Pro 3 drivers into MDT (see screenshot below)
- Creates Selection Profiles for Microsoft Surface Pro 3 and WinPE x64 (see screenshot below)
- 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)
in addition, it sets the WMI query for the Surface Pro 3 on that step (see screenshot below)
- 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)
- Installs the Windows Deployment Service role
- Configures the WDS role and adds the previously created LiteTouchPE_x64.wim (see screenshot below)
- 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 5.79KB 41 downloads
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.
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
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
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.
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
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
After the script is complete, you are ready to test deploying a Microsoft Surface Pro 3 installation.
and below you can see the E:\Source folder after the script has run, it has downloaded a bunch of stuff !
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
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,
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)
and after a wee while, it’s done.
Troubleshooting
If the script has issues starting WDS (and you see the error below)
Quote
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 also review the SMSTS.log file found in C:\Users\Administrator\Appdata\Local\temp\SMSTSLog or the other logs in C:\Windows\Temp\DeploymentLogs
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
- Using PowerShell to modify settings in MDT 2013 – http://www.scconfigm…gs-in-mdt-2013/
- Where do I find the MAC address of my Surface Pro 3 Ethernet Adapter in order to use UEFI network boot ? – http://www.niallbrad…i-network-boot/
- Why is my Surface Pro 3 not BitLockered after OSD via System Center 2012 R2 Configuration Manager ? – http://www.niallbrad…ration-manager/
- Why does my Surface Pro 3 take a very long time to UEFI Network Boot using System Center 2012 R2 Configuration Manager ? http://www.niallbrad…anager-2012-r2/
- Surface Pro 3, Surface Pro 2, and Surface Pro firmware and driver packs http://www.microsoft…s.aspx?id=38826
- Updating the UEFI firmware offline – http://blogs.technet…-usb-drive.aspx
- Deploy Windows to Surface Pro 3 using Microsoft Deployment Toolkit