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
- Copy ENGLExit.vbs file to the Deployment Share
- Download and unzip the attached ENGLExit.vbs file.
- Copy the script file to the
Deploymentshare\scripts
folder on the MDT machine.
- Update the MDT Deployment Share
- 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 updatedENGLMake
andENGLModel
variables. - Repeat changes for any additional MDT Database sections that use
Make,Model
as parameters. - Click OK to save the changes.
- Right click on the MDT Deployment Share within the Deployment Workbench.
- Update the Deployment Share Rules
Update Task Sequence
- Right click on the Task Sequence that you wish to update then select Properties.
- Select the "Task Sequence" tab.
- select the "Set Task Sequence Variable" that has been added to define the variable DriverGroup001.
- Change the Variable value from
<OS>\%Make%\%Model%
to<OS>\%ENGLMake%\%ENGLModel%
.
For example, changeWindows 7 (x86)\%Make%\%Model%
toWindows 7 (x86)\%ENGLMake%\%ENGLModel%
then click apply to save the changes. - Click on OK to save the changes to the Task Sequence.
- Right click on the Task Sequence that you wish to update then select Properties.
Test
- Boot using the LiteTouch boot media (PXE or CD).
- Select updated Task sequence and deploy it.
- Monitor Task sequence deployment.
- Machine will build successfully and all appropriate drivers will install as expected.
- 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.
- Review Log files in
- Boot using the LiteTouch boot media (PXE or CD).