In part 1, They call me a control freak – a drivers Tale, I explained driver handling in MDT Lite Touch. Now I continue with best practices for SCCM 2007 driver handling, control freak style (meaning, 100 percent working style)…
Background info…
In SCCM 2007 you group imported drivers into packages, and you can have two types of packages. Auto Apply Drivers and Apply Driver Packages. The Auto Apply Drivers package relies on PNPID detection, does not work with standalone media and does not support mass storage drivers for legacy operating system (Windows XP and Windows Server 2003). The Apply Driver Package, does not rely on PNPID detection and always works, no matter what… If you want 100 percent success, you should use the Apply Driver Package type. Period.
If you import the drivers, SCCM keeps track of each driver so if try to import the same driver again, it refuses to do so… So if you want to import duplicate drivers, you are in trouble…
The workaround is easy, just add a unique textfile to each folder (I prefer to use a textfile named OS – Platform – Model.txt). This will tell SCCM – Hey, I’m a unique driver – and SCCM will happily import it.
Note: In ConfigMgr 2007 you don’t have to import drivers in order to create Apply Driver Packages, however this is not supported by Microsoft and will prevent you from migrating those driver packages to ConfigMgr 2012. For more info on ConfigMgr 2012 and drivers, check this blog post: The Drivers Saga continues – How to Master Drivers in ConfigMgr 2012
Step-by-Step Procedure
In this guide we will create the structure, and I will use a 32-bit Vista deployment to a HP Compaq 8510w laptop as an example. There are two options, wither create the packages without importing the drivers, or import the drivers using the *.txt file method described earlier.
Common
- Create the following driver directory structure and share the D:\Drivers folder as Drivers$
D:\Drivers\SRV2003X86
D:\Drivers\SRV2003X64
D:\Drivers\SRV2008X86
D:\Drivers\SRV2008X64
D:\Drivers\VISTAX86
D:\Drivers\VISTAX64
D:\Drivers\XPX86
D:\Drivers\XPX64
D:\Drivers\WINPEX86
D:\Drivers\WINPEX64
- For this example (32-bit Vista OS, HP Compaq 8510w) we Copy the Vista x86 drivers for that model to the above folder (create subfolders like below, etc.
D:\Drivers\VISTAX86\HP Compaq 8510w\Nic
D:\Drivers\VISTAX86\HP Compaq 8510w\Audio
D:\Drivers\VISTAX86\HP Compaq 8510w\Video
Option 1 – Create Apply Driver Packages without importing the drivers…
Note 1: Again, in ConfigMgr 2007 you don’t have to import drivers in order to create Apply Driver Packages, however this is not supported by Microsoft and will prevent you from migrating those driver packages to ConfigMgr 2012. For more info on ConfigMgr 2012 and drivers, check this blog post: The Drivers Saga continues – How to Master Drivers in ConfigMgr 2012
Note 2: If you are adding storage drivers for legacy operating systems you need to import those drivers in order to be able to select them when adding the apply driver package containing the storage driver in the task sequencer.
- In the Driver Packages node, create a Driver folder structure in SCCM, example Driver Packages \ VISTAX86.
Se below. - Create a Driver Package named HP Compaq 8510w, as Source Path, set \\Server\Drivers$\VISTAX86\HP Compaq 8510w.
Se below…
- No it is time to update the Task Sequencer, edit the Vista X86 task Sequence.
- In the Post Install node, disable the Auto Apply Drivers Action. After the disabled Auto Apply Drivers action, and before the Setup windows and ConfigMgr action, create a group named Apply Driver Packages.
- In the Apply Driver Packages node, add an Apply Driver Package with the following settings
Name: HP Compaq 8510w
Driver Package: VISTAX86 \ HP Compaq 8510w.Se below image.
- Add a WMI condition to this action with the following settings:
Query WMI: SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “%HP Compaq 8510w%” .
Se below image.
Option 2 – Create Apply Driver Packages and import the drivers
- In each unique above folder, create an empty text-file named: _VISTA X86 – HP Compaq 8510w.txt
So now the D:\Drivers\VISTAX86\HP Compaq 8510w\Nic, the D:\Drivers\VISTAX86\HP Compaq 8510w\Audio and the D:\Drivers\VISTAX86\HP Compaq 8510w\Video folder all contains the file _VISTA X86 – HP Compaq 8510w.txt file.This file will make the folder unique to SCCM, and will allow you to import the same a driver twice to the rpository, but into a separate folder in the UI
- Next step we need to create a Driver folder structure in SCCM, example Drivers \ VISTAX86 \ HP Compaq 8510w,
se below…
- After the Drivers node structure is done, we do exactly the same thing for the Driver Packages structure. The difference is we only create the VISTAX86 folder, and then we create a Driver Package named HP Compaq 8510w.
- Then we go back to the Drivers structure, select the VISTAX86 \ HP Compaq 8510w folder, and import the HP Copaq 8510w drivers (selecting the HP Compaq 8510w driver package during the wizard).
- No it is time to update the Task Sequencer, edit the Vista X86 task Sequence.
- In the Post Install node, disable the Auto Apply Drivers Action. After the disabled Auto Apply Drivers action, and before the Setup windows and ConfigMgr action, create a group named Apply Driver Packages.
- In the Apply Driver Packages node, add an Apply Driver Package with the following settings
Name: HP Compaq 8510w
Driver Package: VISTAX86 \ HP Compaq 8510w.Se below image.
- Add a WMI condition to this action with the following settings:
Query WMI: SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “%HP Compaq 8510w%” .
Se below image.
WinPE Drivers
- As a final not, let’s think about WinPE drivers… If you look carefully on the first image, you will se a WINPEX86 and a WINPEX64 drivers folder. Yes exaclty, of course we will have our own folder for WinPE drivers, using the same technique we have learned…
- In the D:\Drivers\WINPEX86 and D:\Drivers\WINPEX64, folders add your WinPE drivers to that structure. Also add a unique text file to each subfolder, like _WINPEX86.txt
- When importing the WInPE drivers to each folder, don’t add them to any group, because we will instead add them to the correct boot image. But, a tip, rename the drivers after importing them… for example, rename Intel Pro 1000 MT to WINPEX86 – Intel Pro 1000 MT… The reason for doing this is when we browser for drivers to our boot images, SCCM (for some odd reason) does not honour the folder structure, and if we named the drivers WINPE-something, they will be easy to find. Of course, if you are using option 1, using drivers without importing them, you don’t need to rename them…
Tip!. If you get tired of the SCCM Console crashing everytime you rename a driver (or in fact renaming most things when running the console on a 64.bit server)… Hit Apply before you hit OK… :It really helps 🙂
Additional reading:
In the “A Drivers Saga – The Control Freak meets The Dynamic Developer” session at MMS 2010 in Las Vegas, me and Michael Niehaus presented different methods of managing drivers with MDT 2010 and ConfigMgr 2007. I focused on MDT 2010 Lite Touch, and Michael Niehaus did the ConfigMgr part. On top of that Michael started blogging about his part of the session… so now I have to do my part 🙂
Michael’s blogs on ConfigMgr Driver Management can be found here:
/ Johan