Home > Deployment, MDT 2010, Windows 7 > Manage drivers in MDT 2010

Manage drivers in MDT 2010

Microsoft Deployment Toolkit 2010 has some nice improvements to its successors in the driver handling department. I will describe how I like to manage drivers in MDT 2010.

First we have to build the ‘Out-of-Box Drivers’ folder structure and import drivers. I have subdirectories for each architecture, brand and model.  This is what my folder tree looks like:

MDT 2010 - Out-of-Box Drivers

However, you can build your own structure, as long as you respect the proper model & brand (make) name of the vendors.

Build Out-of-Box Drivers tree

To build up the folder structure you have to know the model name of your hardware. To retrieve the proper computer name execute at command prompt: ‘wmic csproduct get name’, to get the exact name WMI queries to determine the computer model. In my case the computer name is “Latitude E5500”. My colleague for example, uses a HP laptop “HP Compaq 6730b (GW687AV)”. Use this info to build up folders in MDT’s Out-of-Box Drivers (you can make your own structure, as long as the computer and Model names are correct).

Now that we have drivers imported in our Deployment Share, it’s time to move on.

 

MDT has two different methods to manage drivers (actually three, but we skip DriverPaths used in BDD 2007, as support will probably be removed in future versions).

 

1. DriverGroups

DriverGroups existed in MDT 2008 already, although the MDT Team added subdirectory support in MDT 2010.

At deployment phase MDT uses WMI to query the proper computer model and only the current model drivers will be injected. In order to get this working properly, you have to use the EXACT model name in your Out-of-Box Driver tree. You don’t want to query dead horses.

Inject the correct drivers in your Task Sequence

Add a new step in your Task Sequence to inject the correct drivers. MDT will query the computer name and inject the drivers which corresponds with the computer name from the Out-of-Box folder structure, right before applying the image at deployment.

MDT2010 - Add a Task Sequence VariableMDT2010 - Set Task Sequence Variable for DriverGroup

I use ‘DriverGroup001’ as Task Sequence Variable, and Win7x64\%Make%\%Model% as value for my Windows 7 x64 TS . You have to adapt this to your Out-of-Box tree. (Don’t use an underscore in your TS variable variable name as I intentional did. thanks Tom!)

MDT 2010 - Set Task Sequence DriverGroup variable

Customsettings.ini

As my Task Sequence handles everything, there isn’t anything needed here.

If you don’t like to use a new Task in your TS, you can add DriverGroup variables in customsettings.ini like this:

DriverGroup001=%Make%\%Model%
DriverGroup002=Printers

 

2. Selection Profiles

New in MDT 2010 are DriverSelectionProfiles. These are easy for new MDT admins, very straight forward and easy to use.

Overview:

MDT 2010 - Selection Profiles Overview

First you have to create a Profile (or use one of the default profiles):

MDT 2010 - Selection Profiles, select folders

You can even select Packages and Applications, use it for “bad drivers” aka driver setup packs.

Select what drivers you want to add to the profile;

MDT 2010 - Selection Profiles, add profile

After making the profiles you can use them in your Task Sequences. The default ‘Inject Drivers’ settings are on the left, the customized one on the right:

MDT 2010 - Selection Profiles, task sequence MDT 2010 - Selection Profiles, task sequence

You can add  Selection Profiles for printer drivers/packages or whatever you want. Just add an extra step in your task sequence like above.

Customsettings.ini

As with DriverGroups you can choose to handle the DriverSelectionProfile in customsettings.ini or in your TS.

Example:

DriverSelectionProfile=Dell Latitude D520 x64

 

Please do comment if you have any suggestions.

Categories: Deployment, MDT 2010, Windows 7 Tags:
  1. Tom
    February 2nd, 2010 at 18:00 | #1

    There is an error in the variable name.
    DriverGroup_001 does not take an “_”

    The correct variable name is DriverGroup001 , DriverGroup002 , …

    Check this on google:
    http://www.google.fr/search?q=DriverGroup001

    Tom

  2. Tom
    February 2nd, 2010 at 18:02 | #2

    @Tom
    And it seems that the “Inject Drivers” task is still required, despite having defined a drivergroup.

    See http://blogs.technet.com/guillaumed/archive/2008/06/28/3079866.aspx

    Tom

  3. January 26th, 2011 at 16:10 | #3

    Very nice article. I have never read an article such as this, “clear” and useful.

    Regards from Turkey

  4. Ferdi
    April 19th, 2011 at 14:00 | #4

    I am experiencing a problem. Can someone please advise? After I’ve imported the drivers into the Out-of-the-box-drivers node, it doesn’t appear in the box. Its frustrating. Thank you

  5. Geof
    August 12th, 2011 at 15:26 | #5

    Yes, I assumed the same problem was MDT after my staff gave me the Win7 drivers for a new shipment. Turns out they just needed to be extracted. MDT is looking for the INF files. If you point at anything else it looks like it didn’t install.

  6. Aaron
    September 1st, 2011 at 10:46 | #6

    Could you please help a man in distress. I’m having an issue that pretty much no matter which method I use it doesn’t inject any drivers, despite following the instructions to the letter. Checking the logs it just says something like “No Drivers required…” its driving me crazy.

    Any quick pointers to look at, any pre-reqs regarding the WIMs or unattend.xml’s that i may be missing?

    thanks, Aaron

  7. Ben De Vriese
    September 1st, 2011 at 11:21 | #7

    Are you pointing to the correct Out-of-box driver folder? If you point to ‘Out-Of-Box Drivers\Make\Model’, for example ‘Out-Of-Box Drivers\Dell Inc.\Latidude XXX’; than only this folder will be used to search drivers. Maybe you have a typo here?

    Can you find the correct path to the drivers in the client registry ? (HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath)

    Are you using Signed Drivers?

    The master log file bdd.log will help you a lot, ZTIDrivers.log is the driver log. During deployment log files are located in C:\MININT\SMSOSD\OSDLOGS, after deployment they are moved into %WINDIR%\TEMP\DeploymentLogs.

  8. Aaron
    September 1st, 2011 at 17:04 | #8

    @Ben De Vriese
    Thanks for the info – I think i have found the culprit.

    It seems to be that i had 2 partition and formats going on – one in the task sequence and another under in the unattend.xml file. Delete the 2nd one and it now picks up the drivers. I assume it must have been copying the drivers then re-formating again hence why it said there weren’t any drivers in the log.

    Thanks guys

  9. antares
    September 1st, 2011 at 23:46 | #9

    Hi,
    I try to deploy Windows XP SP 3 to Dell Latitude D631.
    I have problem to install drivers for cpu (AMD) – I add to Out-Of-Box Drivers but not work.
    And I have problem with bluetooth drivers. Ther is an application but I’dont now how to use it in TS

    Kind Regards
    antares

  10. Ben De Vriese
    September 2nd, 2011 at 09:58 | #10

    What is your problem exactly with de cpu driver? What does the log files say?

    About your bluetooth drivers, probably you have to handle them as an application and install them with silent switches.

  11. antares
    September 5th, 2011 at 19:50 | #11

    Hi,

    Problem with cpu driver was solved, I delete repeated drivers from workbench, and thats all. Why it work I dont know ? :)

    Where do I insert this application and how, do I add an application such as office ?
    Can it be somehow hidden in application screen during deployment.

    Kind Regards
    antares

  12. TomB
    January 30th, 2012 at 15:31 | #12

    Thanx for the clear example,
    one thing though got me puzzling for a time :
    We have some conflicting drivers so it’s very important it will only load the drivers from the right model, and default it didn’t

    It’s important to understand that the parameters (from injecting drivers) have an “additive” effect. For example, if you specify a selection profile of “Everything” (all folders) and then specify “DriverGroup001=Toshiba\Tecra M400” the net result will be everything. But if you specified a selection profile of “Nothing” (no folders) and “DriverGroup001=Toshiba\Tecra M400” then the result would be just the one folder you specified.

  13. Martin J Little
    February 21st, 2012 at 17:32 | #13

    For anyone that requires to manage drivers for Lenovo or Panasonic models, or indeed any other make that has…peculiar models as returned by the %Model% variable, you can still use this method with a few tweeks. If you go to the following article, it explains how to get the Make/Model for using in the database, if you scroll to the comments, I’ve added how I got the Panasonic models covered. Hopefully, any other manufacturers that deviate from the norm’ can be picked up in a similar manner.

    http://smulpuru.wordpress.com/2011/02/16/mdt-custom-variable-for-lenovo-model-drivergroup/

  14. Mark
    March 12th, 2012 at 17:23 | #14

    I have just upgraded to MDT 2012. After updating creating new task sequence and deploying an image. I noticed that the last user logged on does not show up. The username field is blank after ctrl+alt+del. Has anyone seen this on an upgrade.

  15. Mark
    March 12th, 2012 at 19:04 | #15

    Local policy: Interactive logons: Do not display last user name, is turned on after updating to MDT 2012. Does anyone have any ideas on how to resolve this issue.

  16. Eric
    March 16th, 2012 at 17:33 | #16

    @Mark
    Hi, I try to inject lan driver, with no luck, the drivers are injected in the WinPE pass
    but not during the installation, I looked at the ZTIDrivers.log and it’s written this :
    no driver copying need to be performed during the lite touch postinstall
    I tryed with the chaos method, with profil, always the same result

  17. Mark M
    March 23rd, 2012 at 16:04 | #17

    I have a question about MDT 2012, if you have had a chance to install. I have an issue after deploying a custom image the “Interactive logon: Display last user name” is being enabled for some reason. I created a new clean install image from scratch to see if that would resolve the isse but same issue. I tried setting the Interactive logon: Display last user name” : enable but same issue. If you seen this issue please let me know what I should do.

  18. Ben De Vriese
    March 27th, 2012 at 09:19 | #18

    Check the new feature “GPO Packs” in MDT 2012. I think it can be disabled in customsettings with ApplyGPOPack, check the blog post on TechNet:

    http://blogs.technet.com/b/deploymentguys/archive/2011/12/02/mdt-2012-new-features-gpo-packs.aspx

    Keep us posted please.

  1. No trackbacks yet.