If you ever read one of my posts on ConfigMgr 2007 drivers (like this one), or seen a driver session with me on MMS or TechEd, you know that I liked to create driver packages in ConfigMgr 2007 without even importing the drivers. This method was actually possibly because of a bug in ConfigMgr 2007 (I like to call it a feature, but never mind). I really liked that method because it was super-quick and easy to both setup and maintain, not to mention that I didn't have to store the drivers twice on the server and got an easy-to-read folder structure instead of the {guid} named folders ConfigMgr 2007 generated.
Then, in ConfigMgr 2012 Microsoft fixed the bug, which rendered the above method impossible. In ConfigMgr 2012 you really have to import the drivers, whether you like it or not. The change in ConfigMgr 2012 also prevents you from migrating existing unsupported driver packages from ConfigMgr 2007 using the built-in migration tools… Luckily there are other "migration" tools J
It turned out that an old driver-import script that Michael Niehaus wrote for ConfigMgr 2007 still works in ConfigMgr 2012, and that script can be used to migrate the unsupported driver packages. That script will automatically import all the drivers, tag them with correct category, and create a package for each computer model… Effectively migrating your unsupported driver packages in ConfigMgr 2007 to supported driver packages in ConfigMgr. The script can be found on Niehaus blog post below:
ConfigMgr 2007 Driver Management: The Novel, part 2
http://blogs.technet.com/b/mniehaus/archive/2010/04/29/configmgr-2007-driver-management-the-novel-part-2.aspx
Update 2013-09-27:
You many want to try this updated script written specifically for ConfigMgr 2012 SP1, includes additional validation actions:
https://deploymentresearch.com/Research/tabid/62/EntryId/91/ConfigMgr-2012-SP1-Driver-Import-Script-by-Coretech.aspx
Step-by-Step guide
In this example my ConfigMgr 2012 server is CM01, and I have my OSD files in the CM01SCCM_Sources$OSD folder.
- Copy your existing (unsupported) driver packages structure from ConfigMgr 2007 to the ConfigMgr 2012 server
- The structure should look something like this:
- Download Niehaus script and copy the SCCM.psm1 module to a folder where PowerShell will pick it up (I used $pshomeModulesSCCM)
- Modify the ImportAllDrivers.ps1 script with the following info:
- $driverStore = \\CM01\SCCM_Sources$\OSD\DriverSource
- $modelPackage = $true
- $packageSource = \\CM01\SCCM_Sources$\OSD\DriverPackages
- Run the ImportAllDrivers.ps1 script and then go hiking for the weekend, importing drivers in ConfigMgr 2012 takes a long time…
Here is the result from importing 125 models into ConfigMgr 2012. The import took 9 hours on a server with 6 cores, 32 GB of RAM and a disk subsystem that handle 25K – 40K IOPS (write/read).

The 125 Model packages

The driver repository with 5437 drivers
/ Johan