Jump to content


anyweb

How can I deploy Windows 8.1 x64 to the Microsoft Surface Pro 3 using System Center 2012 R2 Configuration Manager ?

Recommended Posts

 

it won't boot to a USB drive because of a few factors such as

 

is the USB drive formatted with NTFS, if so, it won't work, UEFI boot must be FAT32

is the USB drive using an x86 boot image ? if so it won't work, UEFI deployments to the Surface Pro 3 must use an x64 boot image

thirdly, to boot to USB, shutdown the surface pro 3 correctly (start, shutdown) then power it on by pressing and holding VOLUME down, then briefly press the power button, it should then boot from the USB device

 

  • The USB drive is FAT32
  • The boot image is x64
  • The hard drive had already been cleaned with diskpart so the only way to shut the device down was with the power button

The USB drive and boot image are configured the same as the ones I use on my deployments. It initially boots to the drive, but once the task sequence calls for a reboot, I won't boot back to the USB drive. I resolved the issue this morning, just not how I would have liked to. I had the tech manually install OEM Windows 8.1 from a USB drive and run the SP3 update MSI. From there he was able to use the same process as before, including cleaning the hard drive with diskpart and the build started with no issue. Unless I'm missing something, the only change is the updated firmware that would survive diskpart, so the older firmware was to blame.

Share this post


Link to post
Share on other sites

The hard drive had already been cleaned with diskpart so the only way to shut the device down was with the power button

 

 

that's a problem !

you must have a CLEAN shutdown otherwise it will always 'resume from standby' and cannot PXE boot or USB boot in that mode,

 

chicken/egg...

 

so... Power it on and hold the powerbutton down to force it off for 13 seconds, count them, slowly.

 

then try again, you'll get it right after about 4 attempts...

Share this post


Link to post
Share on other sites

 

that's a problem !

you must have a CLEAN shutdown otherwise it will always 'resume from standby' and cannot PXE boot or USB boot in that mode,

 

chicken/egg...

 

so... Power it on and hold the powerbutton down to force it off for 13 seconds, count them, slowly.

 

then try again, you'll get it right after about 4 attempts...

 

That's the thing though, the problem isn't booting to USB. The Surface will boot to USB, I'll diskpart the hard drive, and run the task sequence. I come to a step where I remove the USB drive and select reboot, and it should boot to the WinPE environment that's been copied to the hard drive. That is where the process fails, because it only boots to the BIOS. It I re-insert the USB drive it'll boot to that just fine. Besides, after updating the firmware it started behaving exactly as the others had.

Share this post


Link to post
Share on other sites

here's the amended version of the script, works with both cu's, just comment out as necessary..

# This script creates a driver package and then distributes it
# Niall Brady 2015/3/29, derived from a script from http://tinyurl.com/qzwwffc
#
# set variables for the driver import 
#
clear
CD C: # get-childitem will fail otherwise if you re-run
#
# set the distribution point name
$DistributionPointName = "CM01.VIAMONSTRA.COM"
#
#== Example: "Dell Optiplex 7010" or "Dell Latitude E6540"
$Make = "Microsoft"
$Model = "Surface Pro 3"

#== Example: "Win7" or "Win8"
$DriverOS = "Windows 8.1"

#== Options are "x86" or "x64"
$DriverArchitecture = "x64"

#== Driver root source dir
$DriverRootSource = "\\cm01\Sources\OSD\Drivers"
$DriverPkgRootSource = "\\cm01\Sources\OSD\DriverPackages"

#==============================================================
# Begin
#==============================================================

#Put together variables based on os, make, model and architecture
$DriverPackageName = $DriverOS + " " + $DriverArchitecture + " - " + $Make + " " + $Model
Write-Host "DriverPackageName = " $DriverPackageName
$DriverSource = $DriverRootSource + "\" + $DriverOS + " "+ $DriverArchitecture + "\" + $Make + "\" + $Model
Write-Host "DriverSource = " $DriverSource
$DriverPkgSource = $DriverPkgRootSource + "\" + $DriverOS + " " + $DriverArchitecture + "\" + $Make + "\" + $Model
Write-Host "DriverPkgSource = " $DriverPkgSource

$choice = ""
while ($choice -notmatch "[y|n]"){
    $choice = read-host "Do you want to continue? (Y/N)"
    }

if ($choice -eq "y"){
#unblock the files
gci $DriverSource -recurse | unblock-file

# Verify Driver Source exists.
If (Get-Item "$DriverSource" -ErrorAction SilentlyContinue)
{
# Get driver files
#Write-host "Importing the following drivers.." $Drivers

$Drivers = Get-childitem -path $DriverSource -Recurse -Filter "*.inf"
}
else
{
Write-Warning "Driver Source not found. Cannot continue"
Break
}

# Create Driver package source if not exists
If (Get-Item $DriverPkgSource -ErrorAction SilentlyContinue)
{
Write-Host "$DriverPkgSource already exists… "
}
else
{
Write-Host "Creating Driver package source directory $DriverPkgSource"
New-Item -ItemType directory $DriverPkgSource
}

# Connect to ConfigMgr
#
$CMDrive="E:"
$SiteCode="PS1:\"
Import-Module $CMDrive'\Program Files\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1'
#Set-Location $SiteCode
cd $SiteCode

#

If (Get-CMDriverPackage -Name $DriverPackageName -ErrorAction SilentlyContinue)
{
Write-Warning "$DriverPackageName Already exists. Exiting"
Break
}
else
{
Write-Host "Creating new Driver Package: " $DriverPackageName
# works up to CU3 
# New-CMDriverPackage -Name "$DriverPackageName" -Path "$DriverPkgSource" -PackageSourceType StorageDirect
# use below for CU4 onwards
#
New-CMDriverPackage -Name "$DriverPackageName" -Path "$DriverPkgSource"
$DriverPackage = Get-CMDriverPackage -Name $DriverPackageName
New-CMCategory -CategoryType DriverCategories -Name $DriverPackageName -ErrorAction SilentlyContinue
$DriverCategory = Get-CMCategory -Name $DriverPackageName

foreach($item in $Drivers)
{
$DriverPackage = Get-CMDriverPackage -Name $DriverPackageName
Write-Host "Importing the following driver: " $item.FullName
Import-CMDriver -UncFileLocation $item.FullName -ImportDuplicateDriverOption AppendCategory -EnableAndAllowInstall $True -DriverPackage $DriverPackage -AdministrativeCategory $DriverCategory -UpdateDistributionPointsforDriverPackage $False -verbose

}

}

# distribute it !

Start-CMContentDistribution –DriverPackageName $DriverPackageName –DistributionPointName $DistributionPointName
Start-Sleep -s 60
Update-CMDistributionPoint -DriverPackageName $DriverPackageName
Write-Host "Operations are complete !, exiting."

CD C:
    }
   
else {write-host "No drivers were imported, exiting!"}
  • Like 1

Share this post


Link to post
Share on other sites

 

That's the thing though, the problem isn't booting to USB. The Surface will boot to USB, I'll diskpart the hard drive, and run the task sequence. I come to a step where I remove the USB drive and select reboot, and it should boot to the WinPE environment that's been copied to the hard drive. That is where the process fails, because it only boots to the BIOS. It I re-insert the USB drive it'll boot to that just fine. Besides, after updating the firmware it started behaving exactly as the others had.

Try formatting the surface drive with a partition. Then boot to USB again. We have seen issues exactly as you explain them and this worked for us.

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
Reply to this topic...

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