This article, the first in a two part series covering driver deployment, details managing drivers using Microsoft Deployment Toolkit (MDT) and best practices for enterprise use.

Concerning imaging, I would wager that the Microsoft Deployment Toolkit (MDT) provides the best functionality for the best price. After all, it is hard to beat free! Because of MDT’s automatic organization and extensible nature, an IT department can spin off some pretty great projects! Just in our environment, MDT took us from 51 separate client images to one image, allowed us to remotely image entire sites, and to completely get out of managing drivers! In this two part post, we are going to focus on that last project. We are going to structure a driver store and use our MDT share as a remote driver installation server. Through a little planning, we can make use of Windows’ automatic driver selection in order to deploy drivers in a Windows PE environment and in a full-blown operating system. Meaning that you, our Windows Administrator, will never have to visit a client to install a printer, scanner, or some silly device again. Got your attention? Good – let’s get started!

Note: This post assumes that your MDT environment is already configured. If you are just getting started with MDT, I would strongly recommend reading this Introduction to MDT as well as this excellent step-by-step walkthrough. Although they are written for MDT 2010, the setup and structure still applies.

MDT makes use of the Out-of-Box Drivers folder in order to organize imported drivers. By default, this folder is found at \\SERVER\DeploymentShare$\Out-of-Box Drivers\.

Driver deployment with mdt - Out-of-box drivers folder

The Out-of-Box Drivers folder showing two created sub-folders

When organizing drivers, Microsoft allows you to logically organize based on any number of schemes. The scheme that I found to work the best is to divide drivers up by the intended operating system. To make organization easier, I then break up the operating system folder into architecture subfolders.

Driver deployment with mdt - Architecture folder

I keep hoping that Microsoft will kill the 32bit OS…

Finally, for every unique computer model that we have, a subfolder is created under the correct architecture folder.

driver deployment  with mdt - model folder

Yes, we have a Latitude X1 running Windows 7

Note: The model folders above have to exactly match the model reported by each computer or driver installation will fail. If you would like to double check a model, simply run “wmic computersystem get model” from the computer in question.

Although this is a pain to setup the first time, it will make your driver management life very easy! When you retire a particular device model, you can simply delete the corresponding MDT driver folder. When a driver needs to be updated, you will always know exactly where to find it. A final subfolder that is created is a generic folder named “Other”. This folder holds all third party device drivers including those for printers, scanners, and other user-centric hardware. By storing all of our known third party device drivers here, we can have our imaging computers install drivers for any attached hardware. This means no more imaging a computer and having to come back later in order to install a personal printer!

Now that our Deployment Share has a driver folder for each model, we need to create a Selection Profile for each model. A selection profile essentially is a filter that can be used in our task sequence.

driver deployment with mdt -selection profiles

The selection profiles above include the default and custom selections

When you create a selection profile, you will be prompted for a name and a folder to select. For the model specific profiles, select only the corresponding driver folder.

driver deployment with mdt - driver folder

Select the driver folder for model specific profiles

The final piece to the puzzle is a rather simple change in our task sequence. Under the PreInstall section, we will create a new “Set Task Sequence Variable”. It should look like:

driver deployment with mdt - task sequence 1

Create a new “Set Task Sequence Variable”

This variable basically tells the task sequence to only search for applicable drivers under the equivalent computer model folder. We next need to alter our existing Inject Drivers task. It should be changed to the following:

driver deployment with mdt - inject drivers 1

Alter Inject Drivers task

Now, we need to make sure those pesky third party devices get installed. To do this, add a new Inject Drivers task directly below the existing one. It should look like:

driver deployment with mdt - inject drivers 2

New Inject Drivers task for third party devices

And for our last edit, we will disable the post Inject Drivers task. Select the Inject Drivers task under PostInstall. Select Options and then Disable this step.

driver deployment with mdt - task sequence 2

Disable Inject Drivers task under Postinstall

We are done and ready to image! When a computer connects to the deployment share and beings a task sequence, it will query the local model. Using that model as a reference, it will now only download the specific drivers needed! Finally, it will search for any drivers needed in the Other folder. This will catch any attached user hardware.

In the next post I will discuss how to deploy Windows drivers after Windows is installed.

56 Comments
  1. TheHunter 7 years ago

    Thanks for the nice topic.
    I am facing an issue with driver installation. I am testing MDT 2013 Update 1 with two systems:
    1. HP ENVY 17 Notebook PC
    2. HP ProBook 4330s

    Drivers are not installed on ProBook 4330s in the other hand it works without problem on Envy 17.
    When I added following to my CustomSettings.ini:

    DriverSelectionProfile=Nothing
    DriverInjectionMode=ALL
    DriverGroup001=Windows 7\x64\%Model%

    Drivers install however for Envy 17 it works without this code. I double checked the Model names and folder structure.

  2. Mahender 6 years ago

    Hi Joseh,

    One of the best solution i have seen here.Really it is very useful to me.I have small question here you have used slection profile method to install drivers ans given path of the specific model in the sequence variable ad below that again in the inject driver variable and added that complete x86 folder.

    As per my knowledge if you add 2nd inject driver option and x86 then automatically the machine search for the drivers which are compatible to it then what is the significance of the above steps creating sequence variable and inject driver(in that you have selected nothing selection profile).I have tried without 2nd inject variable and it is not working for me

    Please correct me if I am wrong. I am very new to this deployment domain.

    Thanks in Advance

  3. Author

    Hi Mahender – I am not following your question completely. Could you attach a few screenshots showing what you are trying to accomplish?

  4. bob 6 years ago

    This is still valid for Windows 10 and MDT 2013 U2. Its easy to setup and works perfectly. Great post thanks!

  5. Dylan 6 years ago

    Hi Joseph,

    Thanks for the extremely helpful article! I am having some issues installing my drivers. I tried to add drivers to the Deployment Workbench following your steps provided. I only deploy Windows 10 Enterprise x64, so I assume there is no need for the x64, x86 sub-folders.

    For some reason, I am unable to create a selection profile for the drivers I added. Whenever I go to edit “Inject Drivers” inside the Task Sequence, the folders that I created are not listed as options for the selection profile. My only options are; Nothing, All Drivers, All Drivers and Packages, All Packages, Everything, Nothing, and Sample.

    The drivers built into MDT get installed successfully every deployment, but there are always a few missing. I thought that adding the model specific driver packages into MDT would fix the problem, but so far I have the same outcome as I did before adding them. After viewing the DeploymentLogs I realized that the driver packages I created are not saved into my \\server\DeploymentShare$, only the default drivers that come with MDT. However, all of the appropriate drivers seem to be included in the Out-of-Box Drivers folder in the Deployment Workbench.

    I would appreciate any help! Thanks in advance!

  6. seba 6 years ago

    Hi Joseph,

    do you know if it possible to select directly a driver selection profile like the applications selections in the deployment wizard from the litetouch menu?

    Do you think it’s possible and how to do that?

    Thank you so much

Leave a reply

Please enclose code in pre tags

Your email address will not be published.

*

© 4sysops 2006 - 2023

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account