Today’s story is about a driver, a driver that did not really wanted to be installed. I’ll guess you been in that situation before and I will give a tip on how to make those drives install like a charm. The driver of today’s topic is a Smartcard driver, so first of all we need to force the driver in to the deployment solution, which normally is not too advanced. You just down load the driver, unpack the driver and import the driver into the Deployment Workbench in MDT or as a driver package into SCCM, in MDT we need to create a selection profile so we can ignore PNP and just inject the driver and so I did. First test shows that, yes the driver does get into the driver store but it does not work. You can always see what driver you have in Windows 7 using DISM
DISM /Online /Get-Drivers /Format:Table
Ok, so now I need to read about this driver, so after a while it turns out that the driver can only be installed using “Right click on the INF file and select install” method, Well that then tells me that using the old Rundll32 trick should work, but no luck. Ok, ok let us try the Devcon trick the, nope sorry. Now at this time the customer is asking me if I have any problems and of course I don’t have any problems, it’s just a “bad” driver-day…
So, it works when right clicking, ok. But nothing else seems to work, hmm. There is one thing I haven’t tried yet and that is to use the IExpress trick, let us try that and 25 minutes later (re-deploy the machine) it worked like a charm. Now you may ask yourself. –What is the IExpress trick?
Package nasty drivers in a self-extracting and self-installing executable
Now, let us be very clear about one thing, all other methods are better than this (if they work) but sometimes I don’t have time to fly over to the developer with my baseball bat and explain how to do things…
1. Get the driver
In this case the driver is downloadable from the vendor and from http://catalog.update.microsoft.com. From the Vendor it’s a ZIP and from MS catalog it’s a CAB file. A nice thing about MS Catalog is that you can search for the PNP number, but in this case I know the name. A search on “HID C200” will give me “HID Global – Input – HID Crescendo C200”
2. Unpack the driver
ZIP files is, well just ZIP file. CAB files can be opened easily using the command Expand
Expand file.CAB –f:* C:\Driver
3. Pack the Driver using IExpress
What you might not know is that included in Windows 7 there is a packaging application called IExpress and in this case it is really useful.
So, here is the step by step:
Start IExpress by typing IEexpress in a CMD prompt and select to create a new package.
Select to “Extract and run an installation command”.
Give it a name.
Select no confirmation prompt.
Don’t display any license agreement.
Browse to the folder where you have unpacked the drivers and select them all.
Use the dropdown list and select the inf file, if you want to run something else like a batch file, just type the name and it will work.
Nope, no windows please…
Nope, don’t need any kind of messages…
Be sure to select “long names” if the driver have that".
Nope, no restart, we will fix that in the task sequences ourselves.
Create the package.
4. Deploy the package
Now you have an executable application that works in MDT (have not tested in SCCM, but it might work there too) that will deploy the “nasty” driver in a way that works…
/mike – aka the Deployment Bunny