Friday, April 24, 2015

One Time Task Sequence Driver Injection

Its that time again, testing out new equipment. Today I am looking at the Toshiba PORTÉGÉ Z20t-B at the moment. Nice device IMO, pretty new. Traditionally we use DELL so the drivers provided via Toshiba  Laptop Builder are formatted different then the CABs that DELL Provides. While all our Task Sequences were created to be brand agnostic, we did have to create some structure to deal with another manufacture for the file system and driver store. Before that point though, I wanted to quickly image up a system to begin testing without doing the driver work in ConfigMgr. Just in case we don't like the device and have to remove drivers. This way we don't. It also allows me to image up a single random machine with our task sequence such as Apple or a white box type system.

In other words, this solution allows a tech to deploy a ‘one off’ machine and build their own driver package and drop it in the designated folder, and the imaging process would inject them and then use them.  

This howto assumes you are using USB to bootstrap the system so SCCM can deploy to it, however with PXE and Optical there are ways to do this via those methods.

On the USB thumb-drive we create a folder in the root call OneTimeDrivers. In this folder we put all the drivers for the device. Say the extracted .CAB from Dell or the extracted ZIP from Toshiba Laptop Builder.

For the Task Sequence, create a 'Run Command Line' step and put it with the Apply Drivers or Apply Driver Package steps that you use today. I do it after those as I have drivers grouped by virtual or physical then apply the Intel Chipset drivers, then the manufacturer drivers (previous posting.) 

 DISM /Image:%OSDISK%\ /Add-Driver /Driver:%_SMSTSMediaRootPath%\OneTimeDrivers /forceunsigned /recurse  

The step needs a condition. Choose 'Folder Properties' and set the path to '%_SMSTSMediaRootPath%\OneTimeDrivers'. This way it will check for the OneTimeDrivers folder and run if present.

Keep in mind you'll need to remove or rename this folder on the USB stick, otherwise it will run on equipment you don't want it to. Also of note, the variable OSDISK shown above is created from the Partition Disk step, which many people use in ConfigMgr and MDT. If you do not then you'll need to change OSDISK to where Windows is being deployed to such as 'C:\'.

For an Optical or PXE PE instance you could just do multiple folders for the first few volumes, say up to F for the condition. Unless your doing alot of volumes you should be fine. As long as the USB stick with OneTimeDrivers folder is present it will run.