POLL: POWERSHELL VS. GUI - DO YOU WANT TO BE A DEVOP OR AN ADMIN?

Driver deployment with Microsoft Deployment Toolkit (MDT) – Part 1: OS deployment

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.

A picture of Joseph Moody By Joseph Moody - Wed, July 11, 2012 - 14 comments

Joseph Moody is a desktop administrator for a public school and help manage about 5,500 computers. I specialize in Active Directory, Group Policy, and software deployment.

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.

Your question wasn't answered? Ask in the new 4sysops forum!

14 Comments - Leave a Reply

  1. Brian says:

    Is it possible to use the MDT Task Sequence to preload drivers for network printers? It would be great to have them on there for when clients reach out to add a new printer from our directory. We are trying to avoid allow users to load drivers, naturally.

  2. Joseph Moody says:

    Hey Brian,

    Can you give me a little more insight into your environment? Are these printers loaded on a print server or do you install them as a local IP printer?

    Thanks,
    Joseph

  3. Brian says:

    Joseph,

    They’re domain joined computers connecting to the printers via a central print server. The problem we’e having is that upon first connecting to the printer, the driver must be installed by an admin. It would be much preferred if the computer already had the appropriate drivers so that, upon connecting to the printer, they would not have to worry about it.

    Brian

  4. Joseph Moody says:

    How do you deploy your printers? Script, Group Policy Preferences, something else?

  5. Brian says:

    We don’t actually deploy them. We have them all listed in the directory and allow all authenticated users to add any printer they’d like in the department. We merely provide new employees with a how-to sheet on how to add them.

  6. Joseph Moody says:

    And are these Windows 7 machines?

  7. Brian says:

    Yes. The XP clients don’t get prompted to provide admin credentials.

  8. Joseph Moody says:

    As a test, configure a GPO that sets the following on a Windows 7 machine:

    Computer Configuration\Administrative Templates\Printers\

    Point and Print Restrictions: Disabled

    Reboot. Then log in as a standard user and try to install the printer.

  9. Cabster says:

    In our MDT deployment we use Dell’s combo driver packs to avoid time consuming micro management of model specific drivers. Each combo driver pack covers a range of “recent” desktop or laptop systems for a specific OS. There’s also a common driver pack specifically for the WinPE drivers (storage and network drivers). Importing the driver pack (.cab files) takes just a few clicks. Works like a charm. Selection profiles can be used to target WinPE drivers only, or OS specific drivers.

    For HP systems I’ve only found driver packs for specific models (only very recent ones), no common driver packs. There is a common WinPE driver pack though.

    Dell’s CAB files:

    http://en.community.dell.com/techcenter/enterprise-client/w/wiki/2065.dell-driver-cab-files-for-enterprise-client-os-deployment.aspx

  10. Joseph Moody says:

    Thank you for the excellent link! The common driver pack for Windows PE has saved us so much time!!

    And maybe HP will get on the ball and release a common driver pack as well…

  11. Ken says:

    Anyway to have all drivers loaded to the drive and capture it with in the wim file so that you could drop the wim onto a supported machine and have it load all drivers self contained much like an SCCM offline build?

  12. Joseph says:

    Hi Ken,

    I believe you can do this by creating a thick image and preloading all drivers into it. Are you doing this for ease or for offline installation? The two links below can help you.

    http://technet.microsoft.com/en-us/magazine/ff721826.aspx
    http://blog.uvm.edu/jgm/2012/04/06/litetouch-offline/

  13. Joe says:

    Hello,

    I am running MDT along with WDS. I am having an issue with the drivers pulling over during the install.

    I have followed your guide and the only thing I can seem to think that might still be causing the issue is with the Task Sequence Variable. You have named your group DriverGroup001. Is this critical? I also entered DriverGroup001 into the field.

    I am a little new to MDT and WDS. I have been able to deploy images but can’t seem to get the driver issue resolved.

    Any help would be awesome.

    Thanks,

    Joe

  14. Joseph Moody says:

    It does need to be DriverGroup001. This is a variable in the task sequence that determines the driver install path.

    A few things to check:

    1. That %model% matches your actual model name. We’ve seen cases where a certain dell model didn’t follow normal model conventions.

    2. Ensure that you have every driver needed in your Out-Of-Box Drivers folder. You can do this by letting the machine fully load Windows and then installing the hardware by pointing to your drivers folder root.

===Leave a Comment===