Silent Running Option

A common request over the past while was to create an option to run the Driver Automation Tool in the background as a scheduled task. So in this release I have added in the functionality, allowing you to schedule the job directly within the tool.

When you run the Driver Automation Tool in full GUI mode you will notice that there is a new tab labelled “Scheduling Options”. In this tab you select the time for the job to run, the location where you wish to run the script from and credentials for the service account.

The credentials will be tested against active directory to ensure that they are correct, you should however ensure that the account has sufficient rights to your ConfigMgr environment and Run As A Service rights.

How Does It Work?

Contained within the directory specified for the scheduled task, the GUI will automatically copy across the newly created Run-DriverAutomationToolSvc.ps1 script. This script is a scaled down version of the GUI script containing all of the core features and designed for silent running in conjunction with the exported XML settings from running the GUI to perform the initial selections.

Upon initial launch of the GUI to make the required selections, an XML settings file will be generated and maintained both for the GUI and silent running option. Upon each subsequent GUI launch, the file will be replaced however it will read in the previous settings to ensure that you do not have to start from scratch.

If you wish to run the GUI tool for a once off download without updating the XML file you can call the PS1 directly and use the “-NoXMLOutput True” switch

XML Example

Script In Action

Upon the first run of the scheduled task, sub-folders will be created for the temporary files and the log file. The logging provides the same output as running the full GUI tool, example:

Other Improvements

Microsoft Surface Drivers

It was reported to me that in some instances the UNC path for the extracted drivers was going beyond the 255 character limit due to the folder names generated by the MSI. To get around this the drivers are now extracted locally and only the Drivers and Firmware folders (and their sub-folders) are moved to the UNC path specified, thus greatly reducing the path length and should resolve any import or packing issues.

Improved Validation

Validation has been included to help ensure you pick all the required options before starting the download process and to ensure that the XML generated does not contain null entries.

MDT WMI Manufacturer Naming

For those of you using the total control method with MDT, I have included a switch in the code which will automatically replace the friendly manufacturer name with the full WMI name.

User Guide

A user guide is now included to cover the basic operations to get the script up and running.

Download The Script

You can download the script from the Microsoft Technet Script Repository –

Maurice Daly
Maurice has been working in the IT industry since 1999 and was awarded his first MVP Enterprise Mobility award in 2017. Technology focus includes Active Directory, Group Policy, Hyper-V, Windows Deployment (SCCM & MDT) and Office 365.


  • Morten
    Posted at 14:05 August 9, 2017

    So its more a “heads-up” for others.

    I just used the new driver tool to fill out some missing models.
    It searched my sccm and found all my models (a very nice feature!) and i figured i might as well check all if newer drivers was avail.

    What i did see was that some packages was being re-created even though they were same version number.
    All my driver packages was recently created with version 0.9 of your driver script – with the new Lenovo goodies.
    See snip of my log.

    It did it because i had removed a driver from the package – Nvidia driver – but not the source.
    My T460s does not have Nvidia card and the package comes with Nvidia and Intel drivers – causing my DISM to fail.

    Make sure you remove the driver both places then it will just see it as “already exists”.

  • Joe
    Posted at 14:52 August 10, 2017

    Error: Errors Occurred While Creating Package 1/1/1601 12:00:00 AM 0 (0x0000)

    Is there any way to get more information as to what happened here?

  • Leave a Reply