The Drivers Saga continues – How to Master Drivers in ConfigMgr 2012

A new chapter in the driver's saga has been written; this time it will teach you how to master drivers in ConfigMgr 2012.

Update 2012-09-01: Also see this post:
Migrating unsupported driver packages from ConfigMgr 2007 to supported packages in ConfigMgr 2012

Background story:

Since the release of ConfigMgr 2007 I have recommended taking control of your drivers, using a method known as "Total Control" as opposed to the default "Total Chaos" method in ConfigMgr. In the previous guide one of the options described was to create driver packages in ConfigMgr 2007, without even importing the drivers. This method was actually possibly because of a bug in ConfigMgr 2007 (I like to call it a feature, but never mind). I really liked that method because it was super-quick and easy to both setup and maintain, not to mention that I didn't have to store the drivers twice on the server and got an easy-to-read folder structure instead of the {guid} named folders ConfigMgr 2007 generated.

But guess what, in ConfigMgr 2012 Microsoft fixed the bug, which rendered the above method impossible. In ConfigMgr 2012 you really have to import the drivers, whether you like it or not. The change in ConfigMgr 2012 also prevents you from migrating existing driver packages from ConfigMgr 2007 (If they were created without importing the drivers). Luckily, if you did follow the previous guide, you already have a perfect driver structure, and in this post you learn how to use the exact same structure for ConfigMgr 2012.

Pros: Having to import the drivers into ConfigMgr 2012 is not all bad, in fact, it comes with benefits… First, by importing the drivers into ConfigMgr 2012 they are validated. In ConfigMgr 2007 it was possible to create a driver package with a bad driver, which you didn't learn about until the deployment blew up on you. Also, because of the new content library in ConfigMgr 2012, all duplicate files are removed, thus keeping the driver packages disk usage to a minimum.

Cons: You better have your coffee machine fully loaded – Importing the main driver source will take a good few hours… Luckily this is more or less a onetime thing, importing drivers for additional models over time is quite quick.

Driver Options available

To take control of your drivers you have more or less two options that I have found useful. The first one is using the Apply Driver Packages feature in ConfigMgr, and the second is to programmatically set Categories on the fly and use the Auto Apply Driver features. In this post I have provided instructions for the Apply Driver Packages feature for that is the only feature that works for every deployment scenario that ConfigMgr supports. I plan to add more info on the Auto Apply Drivers feature shortly…

Option 1 – How to manage drivers in ConfigMgr 2012 using Apply Driver Packages – Total Control Freak Style
(aka as always bloody work style 🙂 )

Successful driver management in ConfigMgr 2012 using this method involves four main steps:

  • Finding and download the drivers
  • Extract the drivers (if needed) and creating the perfect DriverSources repository
  • Import the drivers into ConfigMgr 2012, categorize them, and create driver packages
  • Assign the driver packages to your task sequence

Step 1 – Finding and download the drivers

Depending on vendor, you need to locate their utilities or driver source downloads

Step 2 – Extract the drivers (if needed) and creating the perfect DriverSources repository

  1. On your site- or file-server, create a folder structure for your driver sources, on our server (CM01), I have created the following folder structure:

    \\CM01\SCCM_Sources$\OSD\Driver\Sources\"Operating System"\"Vendor"\"Model"

    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\HP
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\HP\HP EliteBook 8560w
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\Lenovo
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\Lenovo\ThinkPad T420
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\Dell
    \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\Dell\Latitude E6410
  2. Extract (if needed) the drivers, and copy them to the correct folder.
  3. Clean-up the drivers – Don't expect the vendors to only have Windows 7 x64 drivers just because the download was named Windows 7 x64 – Often they have DOS, XP, VISTA and Windows 7 x86 versions in the same download. Delete the unwanted drivers; they will only cause issues during both import and actual deployment.

Step 3 – Import the drivers into ConfigMgr 2012, categorize them, and create driver packages

In this example you learn how to import drivers for HP EliteBook 8560w, repeat for additional models. Note that you should use different folder paths for your driver sources and drivers packages.

  1. Using the ConfigMgr Console, in the Software Library workplace, right-click the Drivers node and select Import Drivers.  
  2. Use the following settings for the Import New Driver Wizard / Locate Driver page:

    Source folder: \\CM01\SCCM_Sources$\OSD\Driver\Sources\windows 7 x64\HP\HP EliteBook 8560wSpecify the option for duplicate drivers: Import the driver and append a new category to the existing categories

  3. Use the following settings for the Import New Driver Wizard / Driver Details page:

    Click Categories, and create a new Category named Windows 7 x64 – HP EliteBook 8560w

  4. Use the following settings for the Import New Driver Wizard / Add Driver to Packages page:

    Click New Package, and create a new package with the following settings:

    Name: Windows 7 x64 – HP EliteBook 8560w
    Path: \\CM01\SCCM_Sources$\OSD\DriverPackages\Windows 7 x64\HP\HP EliteBook 8560w

  5. Complete the Import New Driver Wizard.

Step 4 – Assign the driver packages to your task sequence

After creating the package(s), the task sequence needs to be configured to use them. In this example I will add the HP EliteBook 8560w package to a task sequence named Windows 7 Enterprise SP1 x64.

  1. Using the ConfigMgr Console, select Task Sequences, right-click Windows 7 Enterprise SP1 x64 task sequence and select Edit.  
  2. In the Post Install group, disable the Auto Apply Drivers action. (Disabling is done by selecting the action and, in the Options tab, select the Disable this step check box.)  
  3. After the disabled Post Install / Auto Apply Drivers action, add a new group name Drivers.  
  4. After the Post Install / Drivers group, add a new group named HP.  
  5. In the PostInstall / Drivers / HP group, add an Apply Driver Package action with the following settings:

    Name: HP EliteBook 8560w
    Driver Package: HP EliteBook 8560w
    Options tab, add a Query WMI condition: SELECT * FROM Win32_ComputerSystem WHERE Model LIKE '%HP EliteBook 8560w%'

  6. Repeat step 6 and 7 for additional vendors and models.

/ Johan

About the author

Johan Arwidmark

0 0 votes
Article Rating
Notify of
Oldest Most Voted
Inline Feedbacks
View all comments
10 years ago
10 years ago

Sorry for the late reply,

With regards to driver applications, simply install them as packages or applications during the task sequence.

/ Johan

11 years ago

Hi Johan what would be your recomendations for installing drivers-applications (for example bluetooth) in SCCM 2012?

11 years ago

Aurock, because I can do richer queries, like looking for a specfic string, or query different classes for different vendors. You can also use modelalias (from the deployment guys site) to normalize model names, and then you don't need the WMI queries.

Joakim, I don't. I have a 1:1 relation ship between task sequences and os images. If using UDI I use different config files as well.

/ Johan

11 years ago

Why do you use the WMI query as opposed to comparing against the task sequence variable for Make & Model?

11 years ago

How do you write the WMI query if you have several OS to choose from in UDI? in our case Win8 and Win7, And i want to have driver packages based on both OS and model?

Thanks for the Uber-Tips on driveletter, worked like a dream!

11 years ago

I like to add more administrative categories – I find it easier to sort out drivers belonging to which category.
ex. categories: Dell, Latitude, E6330, Windows 7, x64, Display
Then I can sort and play with these filters and more easily replace those drivers with new ones IF necessary. Maybe me who hasn't figured out another way of doing this yet, but it works 🙂