Its time for an improved release of the Driver Automation Tool, once again taking on-board all the community feedback to help you fully automate driver management within Configuration Manager and MDT.

In this release there are a number of changes to be aware of, especially for those running Hewlett-Packard hardware as the naming convention for the packages requires a mandatory update in order to be compatible with our Modern Driver Management process. The major addition however is the ability to run the Modern Driver Management process through the use of a storage repository and XML model list, allowing those who need to run the process on standalone media or more substantially through disk imaging solutions other than Configuration Manager and MDT.

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

GUI Enhancements

The GUI has been overhauled with performance tweaks and functionality enhancements. The first of which is the ability to maximize the model listing when making model selections, as I had previously had requests to move the list to its own page as it was too small. Simply make your initial platform selections, click on the “Find Models” button and then click on the “Show/Hide Platform” to minimize the platform selection, maximizing the model listings;

 

A specific request I had was to have the ability to hide tabs within the tool, the scenario was where an administrator allowed junior admins to download drivers but they did not want any settings to be displayed that could be accidentally changed. This has been added in the Common Settings / Admin Controls section, where you can remove all of the main functional tabs with the exception of the Make & Model Selection, Process Log and About tabs;

Tab control settings are maintained within the registry, under the following path: HKLM:\Software\SCConfigMgr\DriverAutomationTool

Other more subtle tweaks include;
  1. Added GUI feedback during the download and extraction of source model listing files
  2. Model count displayed in the GUI after reading and matching of the platform has been completed
  3. Process log font increased and additional feedback provided at all stages
  4. Latest release notes will display at all times in the About tab
  5. Model source files and transfers now use HTTPS

Custom Package Driver Extraction

Another community request was to have the ability to automatically create a driver package based on the extraction of drivers from a source machine. The scenario here is where you are creating a package on a machine that is not directly supported, either due to the fact that the manufacturer does not have packaged drivers or it is manufacturer not supported directly by the Driver Automation Tool. This could be potentially useful when you receive unsupported models direct from the OEM with a factory image installed, as to avoid you having to download and apply drivers individually. However it should be noted that it is recommended to ensure that all drivers are up to date prior to running this method.

This has been added in the “Custom Package Creation” tab and utilizes either the Export-WindowsDriver PowerShell cmdlet or DISM in conjunction with a XML file to export drivers to a target folder.

An example of this process in action;
  1. Simple run the Driver Automation Tool on a source machine having specified the Download Path
  2. Click on the Custom Package Creation tab
  3. Select XML as the Deployment Platform
  4. Click on the Query Local System (1) buton
  5. The obtained WMI values will populate the GUI. Here you will need to provide a version number and ensure that the baseboard value obtained is suitable for the matching process
  6. Clicking on the “Extract System Drivers” (2) will export all drivers and create an XML file with the model details set in the GUI
  7. Run the tool on the target system you simply selected the desired deployment platform (ConfigMgr for example) and click on the “Import Extracted Drivers” button, browse to the location of the drivers and select the XML file
  8. The GUI should now update with the target information and clicking on “Create Driver Package” (4) will package the contents

 

New Deployment Platform – Download & XML Model Generation

When you run the tool, aside from the GUI enhancements you will see the option to select “Download & XML Model Generation”. In this mode drivers will be downloaded and extracted just as they would with the “Download Only” method, however an XML model listing will be created in the root of the download path specified. The XML contains key details about the package downloaded, such as the make, model, OS and architecture selected. This is important as it allows for standalone, MDT and third party dynamic driver detection through calling a new PowerShell script on our GitHub repository.

When the Invoke-XMLApplyDriver.ps1 script is called it will look at the UNC or local storage path specified, which should of course contain the downloaded packages and the XML list. The XML is read in and the script uses WMI lookup’s to determine the make, model and unique identifiers as it would do with the normal ConfigMgr / Web Service method.

XML matching process running in a task sequence

Once a match is found, the script will find the latest matching package and apply the drivers via DISM. The reason for this addition of course is to allow for greater flexibility for those circumstances where calling a web service is not possible, or for standalone media where you can package the content within the boot media.

Given the flexibility of this solution, the new addition has already been tested with Novell ZenWorks as the disk imaging solution with success.

Windows Build/Version Naming

Up until this point for Windows 10 xxxx build driver package support we have used the long Windows 10 build number when creating and matching packages. In this release the decision was made to move to the short version number as people are more familiar with it but it also cuts down the package names and driver extraction paths.

NOTE: It is important that any pre-existing driver packages created with the Windows 10 version number are converted to the new naming convention. You will also need to download the latest version of the Invoke-CMApplyDriver PowerShell script from https://github.com/SCConfigMgr/ConfigMgr/tree/master/Operating%20System%20Deployment/Drivers)

To facilitate you in doing this, you only need to perform the following actions;

  1. Launch the Driver Automation Tool
  2. Click on the ConfigMgr Package Mgmt tab
  3. Select the Package Type as “Drivers” and Deployment State as “Production” (also repeat this process for packages in pilot mode)
  4. Select all packages with the Windows 10 build number contained within
  5. Click on Actions and select to move the package to the Windows 10 version of your choice, i.e. “Move to Windows 10 1803”

Lenovo Windows 10 Version Support

Over the past few weeks you might of noticed that Lenovo have like HP moved to a per Windows 10 version driver package model. Updates have been put in to cater for this in both the Driver Automation Tool and supporting MDM scripts.

Thank you to Joe Parker in Lenovo for supporting us with the requested XML changes to help the community package the new drivers through our tool.

 

(5987)

Maurice Daly

Maurice has been working in the IT industry for the past 18 years and currently working in the role of Principal Consultant with TrueSec. 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.

comments
  • Mike
    Posted at 12:57 August 28, 2018
    Mike
    Reply
    Author

    Excellent work!
    I like the addition of being able to pull drivers direct from hardware! Very creative!

  • Flotsman
    Posted at 14:28 August 29, 2018
    Flotsman
    Reply
    Author

    I love this tool the only issue is the adding of version on import path – I have to go back in delete the version and reimport via powershell script – my path is os/manufacturer/model

    • Maurice Daly
      Posted at 22:26 August 29, 2018
      Maurice Daly
      Reply
      Author

      Is this in a import into configuration manager scenario? I can put in some additional conditions to cater for this.

  • Jay
    Posted at 16:32 October 3, 2018
    Jay
    Reply
    Author

    This is an excellent tool. Are you going to add support for 1809?

  • Derryn
    Posted at 17:36 October 26, 2018
    Derryn
    Reply
    Author

    Hello Guys. Love the tool, working great.
    I did have a question, I’ve been looking and maybe I’m missing the info on BIOS updating. Is there support for BIOS passwords, particularly with HP. We have the same PW.BIN file for all our models that we can use in a regular package but being able to get updates and publish like this would be great but I don’t see anything on where I might be able to utilize a password file.

  • Bernd
    Posted at 15:32 November 13, 2018
    Bernd
    Reply
    Author

    Thanks for this excellent tool!

  • Leave a Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.