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:
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.
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!)
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:
First you have to create a Profile (or use one of the default profiles):
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;
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:
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.
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
@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
Very nice article. I have never read an article such as this, “clear” and useful.
Regards from Turkey
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
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.
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
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.
@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
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
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.
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
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.
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/
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.
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.
@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
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.
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.