1 Reply Latest reply on Dec 15, 2010 2:55 PM by brandonhyde

    Alternate Hii method with PNPutil.exe on Windows 7


      I searched and was unable to find anyone that had posted this, so I apologize if this is repeat information.


      I wanted to share a method that I found for installing drivers on a Windows 7 machine that does not rely on Sysprep audit mode.

      We are using provisioning, so that is what I know, but I am sure these same concepts could be used in regular OSD.


      1.) First on the OSD screen create a Public Variable called Model the type would be Database value and the Replacement value is "Computer"."System"."Model"

      2.) Next using driver magician, extract all the drivers from a machine.  Combine all the files from each driver for that machine into a single folder.

      3.) Using the Manage driver library for hardware-independent imaging button on the OSD tool bar.

                * Add a new driver under the Other section.

                * For the Device name type the model number of the computer exactly how it appears in inventory.  For this Example we will use "Optiplex 980"

                * Then click next.

                * Check Windows 7 then click next.

                * Browse to the folder that contains the combined contents of all the drivers for the Optiplex 980.  Include all files and click Next then Finished.

      4.) Next under the Manage manufactures and models for hardware-independent imaging button on  the OSD toolbar, create the link for that model.

                * In this case click the + Next to manufacture and select Dell

                * Click the + next to model and select Optiplex 980

                * Click the + next to Device name, select other, and check Optiplex 980.  then click OK

                * Then click Exit.

      (Repeat steps 2 - 4 for each model and manufacture you support)

      5.) Now let’s add the hii command to your existing template. This should be after the image is already deployed, but before the configure target OS or reboots.

                * Open one of your provisioning scripts and select Action List on the left side.

                * In the Post- OS installation section Click Add

                * Name the action whatever you want, and select Hardware-independent imaging in the Type drop down.  I like to uncheck the Stop if failed box. Click OK.

      6.) Add an execute file action to the System configuration section of the template

                * For the Target path put c:\windows\system32\pnputil.exe

                * For the command line parameters we will need to include the path of the drivers folder that hii creates and use the %Model% variable that we created.

                     -i -a "c:\windows\LDDriverStore\Other\%Model%\windows7\*.inf"


      That is it.  Save the template and deploy it.  Works great!


      There is two gotchas we came across with Hii and the OptiPlex 980 drivers.  First the resource and config files that are needed for the video driver will not download by default.   follow this post to resolve that issue.  http://community.landesk.com/support/docs/DOC-21940

      Second, the NIC driver is not included by default in Windows 7 so the provisioning task cannot continue after sysprep runs.   To get around this we copied the NIC drivers files to C:\windows\inf, then windows will automatically install them during sysprep.  You can do this on the image, or you can use an action in the Post-OS Installation section to copy the driver files there.


      Side Note:  After figuring all this out, we thought...  Why not bypass the Hii all together and use the %model% to down load the correct drivers also, then I could use UNC download and store the driver files in my existing package share which is being replicated to other locations.   This also works well, but the problem is when you provision a brand new machine that has never been in LANDesk, the %Model% will not work, because there is no inventory record for that machine.  You can do some things to take advantage of the hii utilities to get this to work, (my co-worker figured out) but that is a whole different post.