After a year or so of using MDT as OS deployment a problem appear, namely drivers. Actually, only thing I had to update / change with time once MDT has been configured are drivers. I organized my driver management into two directories “XP” and “Win7″ and trough selection profiles I did the actual “filter”per OS sequence. This is good while you stay on single PC hardware vendor. Usually programs and drivers from single PC hardware vendor (Dell, HP…) will be compatible to each other. Unfortunately this is sometime hard to do. We recently switched from HP as sole vendor to mixed environment with Dell an HP while Dell being primary. This produced a problem inside driver organization as similar drivers are mixed, for instance Dell’s touch-pad driver is similar to HP’s. This resulted in two synaptic drivers killing each other once OS is deployed.
To solve this obviously I had to do some selection that is based on a PC model. Like described in this great article written by Johan Arwidmark, Scenario 3 would be great for me as I was on Scenario 2 right now. Problem was I didn’t want to lose my time recreating all machines from the scratch. I had to make new Scenario which is combination of Scenario 2 and 3 with old systems staying on Scenario 2. One way to proceed could be creating new OS task sequence that will follow strictly Scenario 3 while old sequence staying on “old” selection profiles. Solution would work but new sequence part I didn’t like so much. What I did is created new driver tree called NeWin7 that was separated from old Win7 dir. All drivers that are needed per model now needs to be in model directory. I used drivermax to backup all OEM preinstalled drivers and to import them into MDT. Drivermax is free tool and really works like you would expect it to work.
Before proceeding, this driver tree and its model sub-tree has to be exact model name as WMI sees it. To find out model and exact vendor name use cmd commands “WMIC CSProduct Get Name” to get the model and “WMIC CSProduct Get Vendor” to get the vendor. Now, to tell MDT to use new tree only on some models I used “CustomSettings.ini” located in Control directory in deplymentshare. I had to add byModel in priority section and construct model subsections. Drivergroup feature is the one that will point MDT to new driver folder in MDT directory structure. To make thing simpler Drivergroup is the same for all new models as %Model% is replaced with exact model name during script execution and matched to Driver directory in MDT. DriverSelectionProfile is important and it’s value corresponds to “Nothing” selection profile that is by default configured in MDT. Without this MDT will use new driver tree specified with DriverGroup but it will also use driver selection profile that is configured in OS sequence. In my case this selection profile is set to “old” Win7 driver tree for compatibility with already prepared OS systems. As old models will not be configured with DriverGroup in customsettings.ini they will continue to use “old” driver selection system.
At the end, to install model specific application use feature MandatoryApplications inside model subsection. GUID of the application can be found in MDT. I used export to export all GUID’s and c/p them to CustomSettings.ini. So, for first application use MandatoryApplications001 for second MandatoryApplications002 and so on.
Final CustomSettings.ini :
[Settings]
Priority=Default,ByModel
Properties=MyCustomProperty
[Default]
OSInstall=Y
SkipAppsOnUpgrade=YES
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipApplications=NO
SkipTimeZone=YES
TimeZoneName=Central European Standard Time
SkipLocaleSelection=YES
KeyboardLocale=en-US
UserLocale=en-US
UILanguage=en-US
[ByModel]
Subsection=Model-%Model%
[Model-Latitude E6220]
DriverSelectionProfile=Nothing
DriverGroup001=NeWin7\%Model%
BitsPerPel=32
VRefresh=60
XResolution=1366
YResolution=768
[Model-Latitude E5410]
MandatoryApplications001={c8dd508f-aa9d-4555-986b-8ed7eb8fd585}
[Model-Latitude E5420]
DriverSelectionProfile=Nothing
DriverGroup001=NeWin7\%Model%
BitsPerPel=32
VRefresh=60
XResolution=1366
YResolution=768













