MSEndpointMgr

Creating Custom Driver Packs with the Driver Automation Tool

A couple of weeks ago I pushed out an update for the Driver Automation Tool which allows you to create your own custom driver package. The reason behind this was to allow for unknown makes and models to be imported while including formatting that is compatible with our Modern Driver Management process. Since then I have since seen several blog post queries asked around how can I add drivers to a vendor package or how to I build my own package, so in case you missed it I am going to cover how do just that.

Custom Driver Packages

Introduced in 5.0.1, the custom packages tab allows you to create your own customized packages for both ConfigMgr and MDT. You can of course import drivers via either of the product consoles but the reason for this tab is to keep your driver packages consistent in their naming and description for use with the dynamic deployment process that we call Modern Driver Management.

So lets take the scenario that  you have a manufacturer who is not included in the built in manufacturer list within the DAT. All you need to do is follow these steps:

  1. Download the driver packages from the manufacturers website and extract them into a folder.
  2. Open the DAT and go to the Custom Packages tab
  3. Enter the Manufacturer name and Model into their respective fields
  4. On the model of machine you are building a driver package for, obtain the baseboard product value from WMI. This value is used in MDM to match the model to the driver package.
    (Get-CIMInstance -ClassName MS_SystemInformation -NameSpace root\WMI).BaseBoardProduct
  5. Enter the value in the BaseBoard field
  6. Select either ConfigMgr or MDT
  7. Select the OS and Architecture
  8. Give the driver package a version number in the Version field
  9. Enter the source directory where the extracted drivers are located into the Source Directory field
  10. Click on the Create Driver Packages button

Note: If you are running ConfigMgr you should use the ConfigMgr Settings tab to connect to your environment first, the same is said for MDT and also select the deployment shares.

Example

Below is an example where a package has been created for a Toshiba Portege Z10T-A;

Updating Vendor Packages

There are also cases where you might use this method to update vendor driver packages. For instance where a wireless NIC driver is a couple of years out of date and the vendor no longer provides the latest drivers in their ConfigMgr driver package, mainly due to the fact that the OS supported is Windows 7. Here you can either fully create a custom package using the individual downloads or replace the “wireless” folder with the newer drivers and then import the package as a custom version.

All of this can of course be achieved outside of the DAT itself, but for those who don’t want to dive into the world of PowerShell too deeply I hope this small addition helps you out.

Download

Microsoft Technet download link – https://gallery.technet.microsoft.com/scriptcenter/Driver-Tool-Automate-9ddcc010

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.

4 comments

  • Hi Maurice,

    I am looking for a similar solution to what you have created here for our environment to maintain compliance. We’re using ConfigMgr to deploy Multiple Windows Server OS versions across several different HP ProLiant rack mounted servers and blades.

    Do you know if this tool may be able to function to perform Driver and firmware updates for HP Server class systems or would you recommend me to something else?

    • Hi Ryan,

      HP’s Software Update Manager is probably your best option. Our solution could be extended for server hardware but it would be a manual process as driver packages are not typically bundled up for server hardware.

      Maurice

  • Hey Maurice.

    I’m trying to get the baseboard information from this HP ElitePad 1000 G2. The powershell you have to detect the baseboard:

    (Get-CIMInstance -ClassName MS_SystemInformation -NameSpace root\WMI).BaseBoardProduct

    doesnt work. I get an error on the -ClassName MS_SystemInformation.

    I’ve updated my Powershell to version 5.1 WMF.

    Would you be able to share some insight on this? Is the BaseBoardProduct the same as running wmic csproduct get name? Thanks

    • Hi Dean,

      Try this query then instead – (Get-CIMInstance -ClassName Win32_BaseBoard -NameSpace root\cimv2).Product

      Maurice

Sponsors