
One of the best reasons implementing MDT 2012 is the way it manages your drivers. I had a customer who was using WDS only for deploying their Windows 7 images. They told me that the deployment would halt for around 30 minutes when applying drivers. The problem there was that every driver was being to applied to every machine during deployment. I explained to them a few ways in which MDT could help.
Small Scale
When you create a new Operating System deployment Task Sequence, the default behaviour is to Install only matching drivers from the selection profile. This will save an immense amount of time without you having to do anything.
For small deployments with up to 10 models and only 1 version of Windows these defaults will suffice and I would continue to use them.
Medium Scale
If you have multiple Operating Systems I suggest using the driver selection profiles to isolate each Operating System and Architecture(x86,AMD64).
Large Scale
For larger organisations where you have many makes and models (25+) and multiple OS versions I suggest isolating your Drivers by Operating System/Architecture and Make/Model then dynamically applying the drivers. This will isolate and ensure that only the exact drivers are downloaded in injected during your deployments.
Here’s how it’s done. Organise your drivers by using the driver management methods in my previous posts:
- MDT Powershell: Creating a Driverstore folder structure
- MDT Powershell: Importing device drivers from organised folders
Your drivers will now be organised in a tree hierarchy like in this screenshot.

This time we wont be using the selection profiles so change the selection profile to nothing.
Next, create a new Task Sequence Variable for DriverGroup001 and enter a value for the Operating System root folder then make and model variables.
Now during your deployments, MDT will only apply a small subset of drivers to each model.
You could also do this in the customsettings.ini by adding the DriverGroup property to a specific path. This example demonstrates such a method but assumes you have only 1 Operating System.
[Settings] Priority=Model, Default Properties=CustomProperty [Default] OSInstall=Y [OptiPlex 755] OSDComputername=PC%SerialNumber% DriverGroup001="Windows 7 x86\Dell Inc\OptiPlex 755" [HP ProBook 6560b] OSDComputername=PC01 DriverGroup001="Windows 7 x86\Hewlett-Packard\HP ProBook 6560b"
Hi there i have tried the structure for total control I have downloaded the newest nic drivers from HP and also from intel, but i keep getting the error
A connection to the deployment share(\\server\deploymentshare$) could not be made. The following networking device did not have a driver installed. PCI\VEN_8086&DEV_1502&SUBSYS_179B103C&REV_04
Retry: try again to connect to the deployment share. Cance: give up, cancelling any iin-progress task sequence.
Do you have any suggestions on what i can do?
Hi there,
Yes, I can help with this. This is common error and easy to resolve. I’ve written a post on this issue here: http://wp.me/p1v18I-wc
/Andrew
How do you typically manage drivers in this structure when newer versions are released, especially when the same driver & version updates apply across several models & architectures? Example is I have many Dell OptiPlex and Latitude machines with commonalities, but I want to avoid having too many old versions of the same drivers out there.
This is not a driver management solution but a driver organisation solution. Typically, I tend to set up systems and organised them from chaos.
I was able to setup the Folder management, at first i was not able to because powershell was restricted, after setting it up for unrestricted I was able to run the folder organization file. The problem i have now it that when i try to run your other file i keep getting a lot of red errors.
I am also having errors just typing .\Import-MDTDrivers.ps1 -DriverPath E:\Downloads\Drivers
Is there any suggestions that you have in order for me to try out to get this working.
Hi there,
email me a screenshot of the error and I’ll let you know what’s going wrong.
/Andrew
To get the computer’s vendor name “Dell Inc” you can run in a dos prompt:
wmic computersystem get manufacturer
and to get the model name of the system run:
wmic computersystem get model
Thanks for that tip, Squeezer.
When I run “wmic computersystem get manufacturer” I get the output “Dell Inc.” with a period but the example above does not use the period. Does using, or not using, the period make a difference?
The dot at the end is part of the manufacturer name so if you’re coding any logic that equals then you should leave it in for it to work.