Faster Driver Deployments in a Task Sequence

The installation of hardware drivers in a SCCM task sequence deployment can take ages. While developing a new deployment for Windows 10 version 1903, the goal is to include faster driver deployments in a task sequence. In this post you will find a solution that is easy to implement and maintainable.

Getting started

What drivers you need to install depends on the vendor and model of the machine you deploy a task sequence to. Most of the time, vendors have a repository of drivers for each model. Please find the drivers you need first, before continuing with this post. For my situation, I use the repository of HP for the EliteBooks series. You can find the repository here.

Preparation of the package

Simply download and transfer the file to a designated folder on the SCCM server of your preference. Ensure to establish a well-structured directory system for effortless retrieval when necessary.

  1. Open the executable file and extract the files to the folder you’ve just created.
  2. Now, go to Software Library in the Configuration Manager Console. Select Packages and create a new regular package.
  3. Make sure you tick This package contains source files and choose the location of the drivers you extracted.
  4. Choose Do not create a program.
  5. Distribute the package to your Distribution Points.

Integrate in the Task Sequence

  1. Go to your deployment Task Sequence and add a Run Command Line task.
  2. Add the following command:
DISM.exe /Image:%OSDisk%\ /Add-Driver /Driver:.\ /Recurse
  1. Choose the package you created earlier on.

There is no need to add DISM in your package, since it’s included in the Windows Assessment and Deployment Kit.

Make faster driver deployments pretty

Now we need to scope the task down to only run when it applies for the model.
Please note! Some driver packs (especially those from HP) support various models, so you might want to dive into your own models to make sure you avoid unnecessary deployment resources.

  1. Make sure you change the succes code to 2 and 50.
  2. Go to options and add the following WMI query:
SELECT * FROM Win32_ComputerSystem WHERE Model = "HP EliteBook 850 G4"

When it comes to driver packages, it’s important to understand that a single package can often include support for multiple models from the same manufacturer. If you have more then one model of the same manufacturer, just include these drivers in the same package.

Faster Driver Deployments. Worth it?

In conclusion, implementing driver packages through SCCM can be a time-consuming task. However, by following the steps outlined in this guide, you can easily achieve a fast and automated deployment for Windows 10 v1903. By acquiring driver packages from the vendor repository, preparing the package, integrating it into the Task Sequence, and scoping it down to specific models, you can streamline the process and ensure compatibility. Faster driver deployments can now happen.

Not only does this method save time, but it also guarantees a successful deployment every time. In fact, my testing showed that this method was 8 minutes faster than the traditional driver package approach. With a well-structured directory system and careful consideration of model compatibility, you can effortlessly add or change driver packages for one or more models within minutes.

While this guide provides a solid foundation for automating driver deployment, there are still additional steps to consider. Automating the download and extraction of new driver packages, testing the drivers against existing ones, and exploring the possibility of changing drivers without editing the task sequence are all important aspects to address.

Next steps

There are a few things that we still need to automate and therefore a few questions that popped up:

  • Automatically download and extract new driver packages from the vendor. How often, and how are we going to compare versions?
  • How are we going to test the new drivers compared to our existing drivers?
  • Is it possible to change a set of drivers without having the task sequence edited?
  • Do we even want to automate this?