Microsoft Surface Pro Firmware failure – how to fix

I was having an issue with a clients Surface Pro II and Pro III not installing the firmware update. Within Windows updates from the control panel it would fail and always say the firmware was available and needed. 

1. Download the DriverPack from microsoft
2. Extract the file and it will contain a whole bunch of files and folder… Make sure you pick the file for your machine.. they are label with the word “PRO” in them.. 
3. In the directory, create a new file named Drivers.txt.

4. Edit the Drivers.txt with Notepad  Copy the following text into the file.

$ScriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition

$files = get-childitem -path $Scriptpath -recurse -filter *.inf

foreach ($file in $files)


    Write-host “Injecting driver $file”

    pnputil -i -a $file.FullName



5. Save the Drivers.txt file.
6. Rename the file to Drivers.ps1
7. Open PowerShell as an Administrator.
8. Navigate to the directory containing your Drivers.ps1 file.
9. Type the following command into PowerShell:

PowerShell.exe -ExecutionPolicy ByPass -File Drivers.ps1

10. Make sure you reboot your Surface Pro afterwards.

You will then see a prompt trying to load all the latest drivers and firmware files needed for your device. Some will fail because they do not exist on your PC and some will be successful.  Again, reboot your machine and the firmware will install. 

Now your windows updates will start to work again and the new firmware will be installed.