ENGL Driver Manager 7 has the ability to deploy drivers to any task-based OS deployment solution.
In this article we will look at using Driver Manager to replace the Hardware Independent Imaging (HII) component of Ivanti Endpoint Manager (2017 and later). Driver Manager handles critical (mass storage and network) INF drivers, standard INF drivers and application package (setup.exe) type drivers.
Follow the documentation Driver Manager 7 documentation to install and configure Driver Manager onto a suitable machine.
Gather hardware inventory
Hardware inventory can be exported from Ivanti Endpoint Manager for all of your existing machines by following this procedure.
Configure Ivanti Endpoint Manager
Ivanti Endpoint Manager uses Hardware Independent Imaging (HII) to inject INF files during the Post-OS installation and System configuration sections of a provisioning template.
Configuring a provisioning template to use ENGL Driver Installer to replace HII
We will use the inject script action to deliver a script file to the local hard disk. It will use template variables to configure site specific values. We will run Driver Installer (DriverInstaller.exe) in the post OS installation section to install critical INF drivers, then again in the System Configuration section to install all other drivers.
Import Install script
Create a text file and paste in the following script sample.
REM Detect environment from registry key REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" | FIND /I "Preinstallation" > NUL && SET "OS_ENV=WinPE" || SET "OS_ENV=WinProd" REM Find production OS drive in WinPE IF "%%OS_ENV%%"=="WinPE" (FOR %%%%D IN (C D E F G H I J K L M N O P Q R S T U V W Y Z) DO ( IF EXIST "%%%%D:\Windows\Panther" ( SET "PROD_DRV=%%%%D:" ) ) ) ELSE ( SET PROD_DRV="%%SystemDrive%%") REM Detect processor architecture, used to copy the correct DriverInstaller.exe REG QUERY "HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0" | FIND /I "x86" > NUL && SET "ENGL_PLATFORM=x86" || SET "ENGL_PLATFORM=x64" REM Create ENGL folder SET ENGL_HOME="%%PROD_DRV%%\ENGL" mkdir %%ENGL_HOME%% REM Connect to network share, copy DriverInstaller, disconnect network share net use l: %ENGL_DMQSSRV_SHARE% /user:%ENGL_DMQS_USERNAME% %ENGL_DMQS_PWD% xcopy l:\DriverManager\x86\DriverInstaller.exe %%ENGL_HOME%%\x86\ xcopy l:\DriverManager\x64\DriverInstaller.exe %%ENGL_HOME%%\x64\ copy l:\DriverManager\%%ENGL_PLATFORM%%\DriverInstaller.exe %%ENGL_HOME%% net use l: /delete REM Run Driver Installer %%ENGL_HOME%%\%%ENGL_PLATFORM%%\DriverInstaller.exe /dmqs:"%ENGL_DMQSSRV_DNS%" /port:%ENGL_DMQSSRV_PORT% /drivershare:"%ENGL_DMQSSRV_SHARE%" /log:%%ENGL_HOME%%\driverinstaller.log /z )
Note: Variables with a single % will be replaced with the provisioning template variables.
- Open Ivanti Management Console.
- Select Tools > Provisioning > OS Provisioning.
- When the Operating system provisioning dialog opens, select Tools > Install Scripts.
The Install Scripts dialog will launch.
- Browse for the file created earlier.
- Set the Script name to “ENGL Driver Installer”.
- Set the Target operating system to Windows.
- Check Insert variables into script.
- Then click on the Import button to import the script.
- Once the script is listed under Install scripts the dialog can be closed.
Configure a provisioning template
Identify the HII provisioning template you wish to modify to use ENGL Driver Manager / DriverInstaller.
- Right click on the template then select Clone.
- Right click on the new template then select Edit.
The template will load.
Review the Template variable tab in case any template specific variables have been reset in the cloning process.
Add in the following template variables:
Path to driver files created when integrating in Driver Manager
User name for connecting to ENGL_DMQSSRV_SHARE
Password for connecting to ENGL_DMQSSRV_SHARE
DNS name / IP address of machine running the ENGL DMQS service
Port DMQS service is listening on
Note: These values will be identified when installing / configuring Driver Manager.
Update the Action list
- Select Action List.
- Select Post-OS installation. Note the position of the Hardware Independent Imaging action then delete the action.
- Click Add.
- Change the type to “Create Directory”.
- Change Name to "Create C:\ENGL Directory".
- Click OK.
- Move the Create C:\ENGL directory to the location Hardware Independent Imaging was located.
- Click on “Create C:\ENGL directory”.
- Set Path of the directory to "C:\ENGL".
- Click Apply.
- Click Add.
- Change the type to “Inject Script”.
- Change the name to “Inject DI.cmd script”.
- Click OK.
- Move the “Inject DI.cmd Script” entry to below the “Create C:\ENGL directory” entry.
- Select “ENGL Driver Installer” from the script name drop down list.
- Set the Target file name to "C:\engl\DI.cmd"
- Click Apply.
- Click Add.
- Change the type to “Execute file”.
- Change the name to “Run ENGL DriverInstaller”.
- Click OK.
- Move the “Run ENGL DriverInstaller” action to below the “Inject DI.cmd script” action.
- Update the target path and file name to "C:\ENGL\DI.cmd".
- Set working directory to "C:\ENGL".
The Post-OS installation section should now appear as follows:
Driver Installer will now install critical drivers post OS installation but some drivers will not yet be installed. These are standard INF based drivers and setup.exe based drivers.
To install these drivers we need to add a “Run ENGL DriverInstaller” action into the System configuration section of the action list. The steps are exactly as before but this needs to happen after the Install LANDESK Agent action.
Click OK to save the template.
The template can now be deployed to a machine. The machine will build as normal but instead of using the built in HII functionality it will use the ENGL Driver Manager tools and services to ensure that all the appropriate drivers are installed correctly.
About ENGL Driver Manager
ENGL Driver Manager simplifies the discovery and deployment of Windows device drivers with any task-based OS deployment solution. For more information check out the Driver Manager product page