Driver Automation Tool – Version 3.1 Released

Since the initial release of the Driver Automation Tool back in March, we have had numerous requests for additional features. While every request is difficult to cater for, there have been a number of repeated requests for additional manufacturers to be added. I’m glad to announce today that in version 3.1, the following new features and improvements have been made:

Whats New

  • Microsoft Surface Support
  • Acer Product Support
  • Distribution Point / Distribution Point Group Support
  • Dell x64 BIOS Flash Utility Support

Microsoft Technet Download Link –

Microsoft Surface Support

This has been a highly sought after feature due to the update in the use of Surface / Surfacebook models in enterprise environments. Thanks to assistance from Microsoft engineer Carl Luberti, an initial XML was delivered to us with direct links to the surface downloads. A re-worked version of the XML now provides this functionality, and is presently hosted on our own server, Carl is hoping to publish this XML feed directly soon though.

Models Supported:

  • Surface3
  • SurfaceBook
  • SurfacePro3
  • SurfacePro4
  • SurfaceProStudio
Acer Support

Acer currently provide an extensive list of driver packs for their client products on their SCCM site (

Their driver package format uses a self extracting exe to extract and import drivers into SCCM, unfortunately Acer don’t appear to offer silent extracts, so in order to extract the drivers 7-zip must be installed on the system which the automation tool is run.

The script calls the 7z.exe command to silently extract the Acer drivers, hence the requirement. Should anyone from Acer wish to contact us please, drop us an email as we would like ultimately to remove the requirement for third party software. 

Distribution Point / Distribution Point Group Support

To aid in the full end to end automation process that we call Modern Driver Management, we have now included options to distribute the driver packages to either individual/multiple distribution points, or distribution point groups during the driver package creation process.

Dell x64 BIOS Flash Utility Support

Earlier on this year, Dell announced they had released a new utility which allowed for updating the BIOS during the 64bit WinPE environment. In order to take advantage of this, we have updated the script to download and extract the utility, and include it in BIOS update packages. The automatically generated PowerShell script now detects whether it is running in WinPE or not and applies the required switches, a switch has also been added for a BIOS password.


Driver Package Storage Paths

To cater for those of you who want to maintain both driver packages and standard packages containing the drivers for the same model, we have updated the package path to include a sub-folder underneath the manufacturer folder, labelled “DriverPkg” and “StandardPkg”.

Launch Wrapper

If you are new to PowerShell this might be helpful for you, the update now includes a C# wrapper exe (courtesy of Nickolaj) which launches the script in a PowerShell window (execution policy is bypassed). Just launch the DriverDownloadTool.exe file from the same folder as the script.

Temp Location (XML, Log & HP Driver Extract)

Some of you had reported issues with the use of the user temp folder, due to restrictive GPO’s being enforced. In this build the folder used for downloading CAB’s and storing the log file has been relocated to a SCConfigMgr folder located within the folder which the script is stored / run.

Driver Automation Tool – In Action

Below is a video of the Driver Automation Tool running starting the process of downloading and packaging drivers for Acer, Dell, HP, Lenovo and Microsoft models. The driver packages are packaged as standard packages for use with our Modern Driver Management process;

After the entire process had completed, the SCCM console now has all the selected drivers available;

Driver Packages are also created;

MDT Import – Dell E5550 Example;

Dell BIOS Update PS Generated Script Example;

[CmdletBinding(SupportsShouldProcess = $true)]

[parameter(Mandatory = $false)]

[String]$Password ) $WinPECheck = Test-Path -Path HKLM:\SYSTEM\ControlSet001\Control\MiniNT $FlashUtility = “Flash64w.exe” $CurrentBiosFile = “Latitude_E5x70_Precision_3510_1.12.6.exe” if ($WinPECheck -eq $true) { $FlashSwitches = “/b=$CurrentBiosFile /s” if ($Password -gt $null) { $FlashSwitches = $FlashSwitches + ” /p=$Password” } Start-Process $FlashUtility -ArgumentList $FlashSwitches } else { $BIOSSwitches = ” -noreboot -nopause” if ($Password -gt $null) { $BIOSSwitches = $BIOSSwitches + ” /p=$Password” } Start-Process $CurrentBIOSFile -ArgumentList $BIOSSwitches }

Maurice Daly

Maurice has been working in the IT industry for the past 20 years and currently working in the role of Senior Cloud Architect with CloudWay. With a focus on OS deployment through SCCM/MDT, group policies, active directory, virtualisation and office 365, Maurice has been a Windows Server MCSE since 2008 and was awarded Enterprise Mobility MVP in March 2017. Most recently his focus has been on automation of deployment tasks, creating and sharing PowerShell scripts and other content to help others streamline their deployment processes.


  • Maurice,
    I was able to download all my models except one, our main one of course. I get the error: “SCCM: File Download Failed” when trying to download the Dell Precision 7710 Windows 10 64 bit drivers.

    • Hi Brian,

      I have just tried it with no issue. Try restarting the BITS service and try again.


  • I’m sure you get alot of requests but i was wondering if there was a plan or intrest in adding Lenovo Bios updates to the tool in future releases? Much thanks on what you guys are doing and have done so far for everyone.

    • Hi Keith

      My contact in Lenovo was in touch and BIOS download links are now in the XML. I’ll have this added in over the next few days.


    • Hi Fredrik,

      I have tried reaching out to Fujitsu so see if we can do something on this but they have yet to respond.


      • Hi,

        To bad, hopefully they will respond in the future.


  • How do you implement the BIOS update scripts into your task sequences?

    Thanks for your help.

    • Hi Spencer,

      You could use a legacy WMI query based method by simply adding a Run PowerShell Script step, select the BIOS package, then specify BIOSUpdate.ps1 as the filename, use the -Password switch for your BIOS password in the attributes section and then set the execution policy to Bypass. Apply a WMI filter to each of the BIOS packages to ensure that the correct package is selected and applied.

      However, I’ll post up a new PowerShell script later this week or early next week which will again work in conjunction with the web service to determine the correct BIOS package automatically and download / apply it.


  • I used this last week to download Dell drivers and it worked great. I started using it today to import my Lenovo drivers and I’m getting an “SCCM: Downloading badLink driver cab file” , “SCCM: Downloading from URL:badLink” and “SCCM:Driver Revision: badLink” in the Job Process Log. The script is creating the folder structure in the repository path but the script completes so quickly and the cab files are not being downloaded.

    • Hi Keith,

      Can you provide more details, i.e the model and OS used?. I have just selected the L450 Win 10 drivers for example and they have downloaded and packaged fine.


      • I tried several Lenovo models for OS Windows 8.1 and they all failed. I was specifically interested in Lenovo M700TWR. As a test I tried the Windows 10 Lenovo M93p and it appears to be working just fine.

      • Hi Keith,

        This issue has been resolved in version 3.4 which I am about to post.


  • I love this product and I’m using it for MDT, however, I’ve run into an issue regarding the driver naming structure for Dell drivers. It puts the drivers with Dell as the Make name, but modern Dells use “Dell Inc.” for the %Make% variable and not “Dell” in setting task sequences. I’ve had to manually rename it to get it to work. Is this something that can be addressed, or should I go about this differently? I’m somewhat new to MDT.

    • Hi Colby,

      The $Make variable uses a friendly version of the manufacturer name, such as Dell for Dell models, HP for Hewlett-Packard as opposed to the actual BIOS manufacturer. This is purely to provide a consistent list of available driver packages. If you are using the drivers with MDT you could simply add a WMI query on the driver package to check for the model, in that case the manufacturer is purely cosmetic.


  • Glad to see you incorporated the surface pro 3/4 element of this. Happy bunny,.

  • That did the trick, thanks! Is there a way run this tool in command line as a scheduled task?

    • This script actually evolved out of being command line only, but the GUI got a much larger reaction and those unfamiliar with PowerShell found it easier to use.

      I had considered adding in a command line switch for it just recently. Watch this space..

  • I apologize. I dont know what previous response you are referring too? I searched this page and your corresponding scriptcenter page for 9020 and dont see anything.

    • If you download the script again, a wildcard has been removed which should resolve the issue.

  • GREAT TOOL! I think i found a bug when trying to download the 9020 drivers. How can i send you a screenshot?


Categories use cookies to ensure that we give you the best experience on our website.