Overview

ENGL Driver Manager can create driver and application packages within the MDT Deployment share.

The naming of the Out-Of-The-Box Driver packages is important as these are automatically identified by the MDT "Inject Drivers" Task Sequence Task.

Issues can arise when:

  • The WMI Query from the machine being imaged contains invalid characters which cannot be used in the naming of the driver package folders.
  • Lenovo Workstation model name uses a 6 character code that does not correspond to the "friendly name / version". For example, a Lenovo ThinkPad T61p may have a model of "6457BQG" but a version of "ThinkPad T61p".

WARNING! Do NOT perform this procedure in a production environment without first fully testing in a non-production test environment.


Solution

Update MDT so that it runs a "User Exit" script.

This script creates two new make and model variables rather than editing the existing %Make% and %Model% variables. The variables created are %ENGLMake% and %ENGLModel%.

The updated variables have all "special characters" replaced by "-" and if the %Make% is set to LENOVO then the %ENGLModel% variable uses the WMI Win32_ComputerSystemProduct Version information.

Requirements

  • Microsoft Deployment Toolkit 2012 Update 1 or later
  • Driver Manager 5 or later

Procedure

  1. Copy ENGLExit.vbs file to the Deployment Share
    1. Download and unzip the attached ENGLExit.vbs file.
    2. Copy the script file to the Deploymentshare\scripts folder on the MDT machine.
  2. Update the MDT Deployment Share
    1. Update the Deployment Share Rules

      • Right click on the MDT Deployment Share within the Deployment Workbench.

      • Select Properties.

      • Select the Rules tab.

      • Update the following:

        Change
        [Settings]
        Priority=Default
        Properties=MyCustomProperty
        
        [Default]
        OSInstall=Y
        SkipCapture=YES
        SkipAdminPassword=NO
        SkipProductKey=YES

         to
        [Settings]
        Priority=ENGLExit,Default
        Properties=ENGLMake,ENGLModel,MyCustomProperty
        
        [Default]
        OSInstall=Y
        SkipCapture=YES
        SkipAdminPassword=NO
        SkipProductKey=YES
        
        [ENGLExit]
        UserExit=ENGLExit.vbs
        ENGLModel=#ENGLClean("Model")# 
        ENGLMake=#ENGLClean("Make")# 

        This sets the ENGLMake and ENGLModel variables as properties that are  then accessable from additional sections in the rules and also during  Task Sequence deployments.

      • Update any MDT Database entries to use the ENGLMake and ENGLModel variables.

         Change 
        [MMSettings]
        SQLServer=sccm2012sp1.engllab.local
        Database=MDT_2012
        Netlib=DBNMPNTW
        SQLShare=c$
        Table=MakeModelSettings
        Parameters=Make,Model

         to
        [MMSettings]
        SQLServer=sccm2012sp1.engllab.local
        Database=MDT_2012
        Netlib=DBNMPNTW
        SQLShare=c$
        Table=MakeModelSettings
        Parameters=ENGLMake,ENGLModel
        ENGLMake=Make
        ENGLModel=Model

         These changes will query the MDT Database using the updated ENGLMake and ENGLModel variables.

      • Repeat changes for any additional MDT Database sections that use Make,Model as parameters.

      • Click OK to save the changes. 
  3. Update Task Sequence

    1. Right click on the Task Sequence that you wish to update then select Properties.

    2. Select the "Task Sequence" tab.

    3. select the "Set Task Sequence Variable" that has been added to define the variable DriverGroup001.

    4. Change the Variable value from <OS>\%Make%\%Model% to <OS>\%ENGLMake%\%ENGLModel%.

       For example, change 
       Windows 7 (x86)\%Make%\%Model% 

      to 
       Windows 7 (x86)\%ENGLMake%\%ENGLModel% 

      then click apply to save the changes.

    5. Click on OK to save the changes to the Task Sequence.

  4. Test

    1. Boot using the LiteTouch boot media (PXE or CD).

    2. Select updated Task sequence and deploy it.

    3. Monitor Task sequence deployment.

    4. Machine will build successfully and all appropriate drivers will install as expected.

    5. If there are issues

      • Review Log files in C:\Windows\Temp\DeploymentLogs\

      • Review C:\Windows\Temp\DeploymentLogs\BDD.log and confirm that the ENGLMake and ENGLModel options correspond with the Out-of-Box driver package name.

         For example on a Lenovo Machine that has a model of 6457BQG this log file shows: 
        ------ Processing the [ENGLEXIT] section ------]
        USEREXIT:ENGL-MakeModelExit.vbs started: SECTION BEFORE ENGLEXIT]
        User exit "\\MDT2012\DeploymentShare$\Scripts\ENGLExit.vbs" called successfully, skip = False.]
        ------------ Initialization USEREXIT:ENGLExit.vbs|ENGLClean -------------]
        ENGLClean function original attribute : LENOVO
        ENGLClean function returning           : LENOVO
        ------------ End USEREXIT:ENGLExit.vbs|ENGLClean -------------
        Property ENGLMAKE is now = LENOVO
        Using from [ENGLEXIT]: ENGLMAKE = LENOVO
        ------------ Initialization USEREXIT:ENGLExit.vbs|ENGLClean -------------
        Lenovo Machine identified as :6457BQG
        Lenovo Version identified as ThinkPad T61p via WMI.
        ENGLClean function original attribute : 6457BQG
        ENGLClean function returning           : ThinkPad T61p
        ------------ End USEREXIT:ENGLExit.vbs|ENGLClean -------------
        Property ENGLMODEL is now = ThinkPad T61p
        Using from [ENGLEXIT]: ENGLMODEL = ThinkPad T61p
        USEREXIT:ENGL-MakeModelExit.vbs started: SECTION AFTER ENGLEXIT
        User exit "\\MDT2012\DeploymentShare$\Scripts\ENGLExit.vbs" called successfully, skip = False.

         

      • Resolve issues found and retest.

      • If the ENGLExit.vbs script has reported an error, please log a support incident via the ENGL Website.