jump to navigation

Install Driver EXE Package (New Tool) November 2, 2009

Posted by keithga in MDT 2010, Uncategorized, VBscript.

New Tool! ZTIInstallDriverExePackage.wsf

As I described in my earlier post. MDT has a great system for Driver Management. You import a driver via it’s *.INF file, and that driver will be installed on every machine where that PnP ID is found. No need to associate a driver via a Make/Model.

However, there are some cases (very rare), when a driver package can’t be installed by *.inf file alone, or a *.exe installation package may need to be installed along side a specific piece of hardware.

The ZTIInstallDriverExePackage.wsf tool was designed to allow an Driver *.exe installation package to associate with a set of PnPID’s defined in the Workbench.


  • Download the Driver Installation *.exe Package to your MDT Workbench machine. Ensure that you copy the package to its own directory.
  • Add the Application to the MDT workbench as you would any other Application Installation Package.
  • You will need to extract out the GUID for the Application added. It may be in the depoyment share under \Control\applications.xml
  • Extract out as much of the driver *.inf component as you can to a separate directory (not a sub-directory). There are several tools available on the internet for extracting out compressed files from Self extracting Executables. My personal favorite is 7-Zip (see 7-zip.org)
  • Add the Driver Package to the MDT workbench as you would any other Driver Package.
    It is not necessary that it be fully functional. However the PnPID’s should be properly added.
  • Once the driver has been imported successfully. Open the Properties for the new device
    • You may disable the driver. Uncheck “Enabled”. Disable only if you want the Exe Package to be the only way for the driver to be installed.
    • Add the following string to the comments section:
      “DriverExePackage {GUID}”
      Where {GUID} is the Application GUID extracted from the 3rd step above.
  • Copy the ZTIInstallDriverExePackage.wsf file to the Deployment Share under …\Scripts\
  • Add a new Step in your Task Sequence calling ZTIInstallDriverExePackage.wsf
    cscript.exe “%ScriptRoot%\ZTIInstallDriverExePackage.wsf”

Script Flow

ZTIInstallDriverExePackage.wsf will operate in a manner similar to ZTIDrivers.wsf.

  • It will enumerate though all hardware devices on the machine, and extract out their PnPID’s. 
  • For each Hardware PnPID found, it will try to match that ID with any driver found in the Deployment Share.
  • For each Driver package found it will search the comments field, searching for the “DriverExePackage” string followed by the Application GUID.
  • The script will then call ZTIApplications.wsf with the GUID from the Comments section.

ZTIApplications.wsf will do a good job of ensuring that the corresponding application is installed only once.


  • In most cases, I personally recommend sticking with the *.inf only method of driver installation. The Exe only method should only be used in rare cases.
  • This script uses the drivers.xml file from the distribution share to associate the PnPID’s with the Application GUID. It is important that the MDT Workbench Add the driver package to the system. IT is not necessary for the driver package to actually work. The Driver Package can be disabled if it is failing to work, it should not be removed.
  • To associate a Device with an Application Item, you also need to add the Application GUID of the device prefixed with the string “DriverExePackage” into the comments of the driver in the MDT Workbench.




Keith Garner is a Deployment Specialist with Xtreme Consulting Group


1. ash - December 9, 2009

Would this be the ideal way to go about installing something like the Intel AMT/HECI drivers and stuff like that? I have the drivers in the repository and it does install the drivers but the associated program is missing.

tmintner - December 9, 2009

Absolutely! That is exactly what it was designed for.

Sorry comments are closed for this entry

%d bloggers like this: