Driver Automation Tool 5.0.0 Released

Following a week long community feedback session that was Microsoft Ignite, the Driver Automation Tool has been redesigned and additional features added as per requests received. So let’s go through the new layout and features introduced below.

Layout Update

The layout of the tool has been updated to allow for better visibility and flow of features. The initial tab provides you with access to select the core options for the deployment type, the model listings selection has been made much larger per your request. The addition of “ConfigMgr – Standard Pkg (Pilot)” in the deployment platform type assists in the ability to test newer builds of Driver/BIOS packages as part of your testing process. For those of you using our MDM solution, all you need to do is change the “Filter” option to either “Drivers Pilot” or “BIOS Update Pilot” to match based on “Pilot” packages.

The next two tabs in the tool deal with options for ConfigMgr downloads. The first of which is the ConfigMgr Settings tab, here you will find input for the ConfigMgr Site Server name, along with options for distribution and clean up. New in this version is the ability to select the distribution priority of the packages created, which is something quite a few of you had asked for.

ConfigMgr Package Management

The next tab is completely new to this version and allows you to manage your Driver and BIOS package deployment states within the tool. Piloting of Driver and BIOS update packages is obviously something you should undertake as part of testing new builds of both the OS and Driver/BIOS package. In order to make it easier to migrate packages between production, pilot and retire stages I have added this into the tool for you.

Simply select the package(s) you wish to move and then use the actions drop down to move the packages as required. The packages storage paths are maintained therefore you do not need to maintain multiple copies on your storage or redistribute your packages as only the package name is changed.

Package state change in action:

MDT Settings


The MDT settings tab is another new addition in this release. Here you now have the ability to specify alternative paths for your MDT PowerShell module as well as the ability to select multiple MDT deployment shares and driver folder structure. At present I have included two options here;

Option 1 – OperatingSystemDir\Make\Model\DriverRevision
Option 2 – Make\Model\OperatingSystemDir\DriverRevision

Below is an example of the structure created by both options when used for a HP EliteBook 1030 G1:

Common Settings

Settings common to all deployment scenarios are now included in the “Common Settings” tab

Event Log

The event log now runs in its own full tab when the tool is running. Additional logging is also included in the log file itself for troubleshooting.

Microsoft Technet Download

The script can be downloaded along with instructions from the Microsoft Technet Gallery –

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.


  • I get a problem with Optiplex 3050 series, as i have 2 models, a 3050 and 3050 AIO.

    it finds a match for both in driverpackagedownload.log file,

    Match found for computer model, manufacturer and operating system: Drivers – Dell Optiplex 3050 AIO – Windows 10 x64 (UMV0018C)
    Match found for computer model, manufacturer and operating system: Drivers – Dell Optiplex 3050 – Windows 10 x64 (UMV0024C)

    and i get this error.

    An error occured while setting OSDDownloadDownloadPackages variable. Error message: Cannot index into a null array.

    • Hi Thomas,

      Can you send me the entire log so I can have a look at the full details.


  • Hello Maurice,

    While configuring our SCCM Client Default Settings, I tried following the instructions for enabling BaseBoardProduct under MS_Systeminformation but my options look different.

    Not sure if it is the version of SCCM or Windows I am using but when I go to Add, connect to a machine via ROOT\WMI, and filter by MS_Systeminformation, my screen looks different and I can select the Unit of the Property information I want to see (MB/KB/GB/Decimal String/Seconds/Hex String/Date String) I’m assuming I need to select Hex String?



    • Hi Mike,

      Perhaps you might take a few screenshots and mail them over to me. If you could include the version of SCCM you are using also.


  • Thank you for such an amazon tool. I’m currently leveraging it to download and import over 40GB of hardware drivers into my lab ConfigMgr server but I have one question. I noticed that it takes upwards to a minute to import each driver INF into ConfigMgr. As such its going to take what I’m estimating will be 24+ hours to import all my hardware drivers. Is this to be expected?

    For reference, I’m running your tool on the actual site server with both the package and source shares on the same box so everything is local.

    Any feedback and/or guidance would be greatly appreciate and if the feedback is that “the import takes time” then I’m fine with that too as this tool is a life saver.

    • Hi Daniel,

      Importing INF’s in the traditional driver package method can take significant time. If you try importing a single driver yourself you will see the time taken. This is why I recommend moving to drivers within standard packages, as the package creation speed is far quicker and it saves importing large volumes of driver information into the ConfigMgr DB.


      • Greetings Maurice,

        Thank you for the feedback and recommendation. I will definitely consider the switch to standard packages when I implement this in my production server. Have a great evening and thanks again for all your efforts in putting such an amazing tool together.

  • Hi. Great product! Thanks for all your hard work in putting this utility together. Once issue I’m having is with BIOS update downloads. When I try to use this tool for BIOS downloads I get an error “Unable to retrieve BIOS Download URL for Dell Client Model: Latitude 7280”. I’ve tried a few other Dell models and get the same error for BIOS. Drivers download and process with no issues. Thanks,

    • Hi Dennis,

      I have just run through a test download and package of that BIOS with no issues. Clear out the contents of the temp folder created by the tool and ensure that exe files are not being blocked on your perimeter firewall.


  • Hi M
    Thank you for this tool.

    If we will deploy 1709 on HP hardware and all models not exist there can we use 1703 for the missing models?

    Martin Skorvald

    • Hi Martin,

      Technically the drivers should work where 1709 does not flag them as incompatible. Depending on the life cycle of the HP model and their support for 1709 on it, an alternative would be to create a custom driver package based on the latest drivers from the individual vendors.


  • Great tool, but I’m having issues with this version. When I start it up, I’m able to use it normally. But when it tries to down an HP cab, it freezes up and never continues. I’m not able to click on or do anything else at this point. If I use Task Manager to close it out, it does so. But when I start it up again it’ll immediately try to grab that cab again and freeze. I have to delete the settings to reset it but haven’t figured out a way to get it to work correctly at this point. Any thoughts?

    • Hi Evan,

      If you select a manufacturer other than HP does it function?. Try clearing the contents of the temp folder created by the tool also.


  • How would one go about if there are models missing in the DriverCab file of Dell?

    This is an 2 year old model Latitude 3440, but the tool is unable to download the cab file, most likely because info is missing in the xml file.

    i tried to download the CAB file manually, and put it in the source folder hoping it would take this file, unpack it and make a driver package, but since the file already exist, it wont continue..

    i would ask if one could check for the cab file and if package missing, but that would again probably regenerate old deleted packages aswell if one fail to remove the cab file before one begin.. as it would check all source folders.

    maybe a button for manual override as one usually would select on the specific model in the tool.. ?:), or at least some way of bypassing if/when Dell has small issues with the xml file..

    • Hi Thomas,

      New in 5.0.1 is a feature that will allow you to perform such an action. If you download the cab from (I would also advise you to raise this with Dell as to why that system is not included in the XML), then extract the cab to a directory. Then obtain the System SKU from PS on one of the 3440s by running (Get-CIMInstance -ClassName MS_SystemInformation -NameSpace root\WMI).BaseBoardProduct and enter the make, model, sku (as the baseboard) and set the source to the directory where the files were extracted. It will import the driver package with the same formatting for modern driver management.


      • Hi Marice, where would i go to raise this with Dell, i fear my normal account manager might be at loss trying to fix this for me…

      • Perhaps you could reach out to Warren Byle on Twitter. He is the product manager for the Dell Command Configure suite.

  • Hiya,

    I’m trying to download a list of driver packages with import to Driver Pkg into our SCCM environment. As a test, I used a Dell Latitude E6400. It does download and extract the drivers to the repository path and it creates the driver package pointing towards the package path, but it does not copy the content from the repository path to the package path.

    The log also does not say anything. This is what is said about the logs. I hid the server and account name in this log part.

    • Hi Anthony,

      I have tried to replicate your issue without success. Are you using UNC or local paths?. Please send over your log file for further troubleshooting.


  • We’re primarily a Lenovo shop and have noticed in this version that the BIOS packages are missing the release date which causes Invoke-CMDownloadBIOSPackage to fail when calling the Compare-BIOSVersion function with a null value. The problem appears due to the following: -AvailableBIOSReleaseDate $(($PackageList[0].PackageDescription).Split(“:”)[2].Trimend(“)”))

  • awesome tool! does this tool include improvements to parallel processing? i.e. download package whilst creating another package on SCCM?

    • Multi threading is currently not a future of the tool, however this might change with a move to a different programming language.

  • I can’t find HP EliteBook 840 G1 and HP Elitebook 840 G2 in the model list for either Windows 10 1607 and 1703. Can you work with HP to get the list updated?

    Sorry I’m relatively new to this site, so if there is a more appropriate place for this type of request please let me know!

    • Hi Dave,

      I can request it from HP, however it might not fit their OS supported model listings internally.


  • Great tool . When I select Lenovo T440s BIOS it creates the folder but it is empty .

    • Hi Mike,

      What did it say in the logs. I have just tried this for the T440s with no issues.


  • Thanks for the update! Looks good! Question or rather issue, maybe not anything you can control. The SurfacePro driver fails to download for me. Other MS products works fine. Now is the SurfacePro listed the NEW SurfacePro or the original? I am assuming new? MS no longer offers a CAB or ZIP for the new SP, only an MSI so I don’t know if that is the issue.

    Again thanks, your tool is very helpful!

  • New Model and this doesnt like my TS at all.

    Got a new XPS 15 9560 model, and the bios update script part kills my TS.

    There are no bios available, so the process completed with ecit code 1, which should be normal.

    but it fails with:Failed to run the action: Dynamic Bios Package Detection.
    Incorrect function. (Error: 00000001; Source: Windows) and ends the TS

    if i copy my TS and remove the 3 BIOS update lines, it goes on as normal, so something isnt correct here.

    • Hi Thomas,

      What do the logs say on this?. Are you having issues with other models?.


      • Just this new model, never had any XPS before. there is nothing more in the logs basically then what shows there..

        It downloads the powershell script, and ends with process completed with exit code 1.
        then i get on the line below:
        Failed to run the action: Dynamic Bios Package Detection.
        Incorrect function. (Error: 00000001; Source: Windows)
        Let the parent group (Bios Upgrades) decides whether to continue execution

        Let the parent group (Install) decide whether to continue execution
        Let the parent group (Execute Task Sequence) decide whether to continue execution
        The group (Execute Task Sequence) ignored action failure and continue execution on the next step following the group.
        Start executing an instruction. Instruction name: Gather Logs and StateStore on Failure. Instruction pointer: 118

        and the TS is finished as it just gather logs.

        But its also the first model that doesnt have any BIOS updates available. Im not sure if the Model info might be a contributor to the whole thing, as in The Automation Tool, the model is listed as “XPS Notebook 9560”, but the WMI specifies “XPS 15 9560”. But that shouldnt affect BIOS, as i have renamed the driver package to adjust for this, and it finishes the TS if i remove teh BIOS update part of the TS

      • Hi Thomas,

        Exit code 1 indicates that the script is having issues connecting to the web service. I have sent you a separate email on this.



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