Adding A New Driver Package In The Task Sequence

Once a task sequence is complete the main updates are largely drivers for new kit procured by the organisation. This will require adding additional drivers to the task sequence, as the underlying Windows OS Image deployed by the task sequence has no drivers; they are injected into the image at build time as part of the task sequence, using a package, and the “Add-Driver” functionality of “DISM”, (Deployment Imaging Servicing Management), which is built into Windows and Windows PE. A task is generated for each model of computer and a WMI query is used to match the driver package to the computer model the task sequence is running on.

The first thing is to create a folder containing the relevant drivers for the model of machine being built. The contents should be trimmed down as much as possible, removing setup.exe installers and drivers which are not relevant. So if the drivers are for a 64-bit build, remove the 32-bit drivers if possible. This reduces the size of the package, which reduces the amount of time it takes to download, which, in turn, cuts down on the amount of time it takes to image the machine.

Drivers for the Lenovo T440

 

The folder containing the drivers should be copied to;

 \\dsrep1\CITdeploy\06_OS_Deployment\Driver_Source_Files

There is a strict naming convention for folders in this directory to manage version control and ensure they can be properly managed. The folder created will also be used by SCCM as the source content for the package, so it is vitally important that the folder name is not changed without also amending the Data Source path in the package.

The following naming conventions must be adhered to for the folder name of the driver pack;

Vendor_Model-ModelNumber-ModelVersion_WindowsVersion_Architecture_Date

The date is in the format, double-digit YEAR_MONTH_DAY, so the folders organize correctly by date order when sorted by name.

Once the folder is in place, browse to:
\Software Library\Overview\Application Management\Packages\DESKTOP DEVELOPMENT\OSD\Imaging Packages Win 06.1 - 7\Driver Packages, node in the SCCM Administrator Console.

Right-click the “Driver Packages” folder and select, “Create Package”.

The “Name” should be the same as the folder name containing the drivers. The “Manufacturer” is Driver and the “Version” is the number at the end of the folder name, which represents the date the driver was added.

Select, “This package contains source files”, and click, “Browse”.

Add the UNC path to the folder created on the \\dsrep1\CITDeploy Share.

Select, “Do not create a program”. Click, “Next” through the Summary and then “Close”, to complete the Wizard.

The package should now show up in the, “Driver Packages” folder.

Right-click the package and select, “Distribute Content”.

Click, Next, on the General page.

From the “Add” drop down, select, “Distribution Point Group”. Select “OSD Group” from the resulting pop-up and next out of the Wizard.

Ensure the content was distributed correctly using the Summary page for the package.

Add the package to the Task Sequence.

There is no need to create a new task from scratch. It is much easier to copy one of the Driver tasks previously created, as below.

NB: All changes should be made in the Faculty Copy Task Sequence, not the Live Main Deployment Task Sequence.

Select a pre-existing Driver Task in the relevant manufacturer Task Sequence Group, and right-click.

Click Copy

You should note the following:

  • This is actually a ‘Run Command Line’ step
  • The ‘Command’ being run is:
    exe /Image:%OSDISK%\ /Add-Driver /Driver:.\ /Recurse
    This command runs DISM to install drivers to the Windows image on the disk (referenced by the Task Sequence Variable %OSDISK% which is used throughout), from within the driver package (referenced by the /Driver:.\ section of the command) and recurses into any subfolders in the package
  • The Step is being set to run in the relevant “Driver Package”
  • The ‘Name’ of the step is the same as the package file being used (see the Package selection box above matches the name of the step

Click on another task in the same group which represents the model number before the model being added, so the drivers are sorted by model number, and right-click, “Paste”. The task will be pasted after the selected task. (There may be exceptions to this when manufacturers have different conventions for model ranges, such as the Lenovo X1, in which case, add the Task where it seems appropriate).

In the package section on the newly copied Task be sure to browse to the relevant package in SCCM, created in the previous step.

Then, copy the name of that package and paste it into the “Name” field of the new Task.

Once the Task has been added, the correct package selected and the name changed, the only thing left is to amend the WMI query which targets the relevant hardware.

Click, “Options” at the top of the configuration page for the Task. Click the existing WMI query and amend the model number, replacing the section highlighted below with the relevant model number for the driver pack being added.

WMIC’s (Windows Management Instrumentation Command) can be run in either Windows or Windows PE on the relevant model of machine to obtain its correct manufacturer, model, and serial number.

wmic computersystem get make
wmic computersystem get model
or wmic csproduct will also show you all the relevant information

 

Once the query has been edited to reflect the correct model number, click, OK.

The task sequence should now be tested to ensure all the drivers are applied correctly to the machine.

Once the drivers have been tested, and the WMI query is working for the machine, and it becomes a ‘Supported Model’, a couple of things need to happen next:

  • The “SCCM Supported Hardware” spreadsheet should be updated to show which Task Sequence the device is supported from
  • The Release Notes for the Task Sequence need updating to show what has been done
  • The Task Sequence needs updating to make the HTA screen shown when imaging is started that this is a ‘supported model’. This step is shown below

Adding the device to the ‘supported model’ list for the HTA form shown during imaging

It is important to set the Task Sequence variable ‘IsUoLSupportedModel’ to ‘TRUE’ when you have successfully imported the drivers for a particular make and model into the Task Sequence. This stops that particular make and model from receiving the ‘Generic’ driver set, which could easily conflict with the intended driver package.

Below you can see the Task Sequence steps (just before the HTA is shown) where you need to be to edit the Options for the particular Type and Make of device.

Below that image you can see the WMI query criteria used to set the variable, this is the same as what you are using in the ‘Install Driver’ step later in the Task Sequence. Note that the top section shows the model information strings which are accepted, and the bottom section of the criteria shows the manufacturer information strings which are accepted

 

Drivers for unsupported models

There is a process at the start of the Task Sequence to detect if the model being installed is actually in the list of models with drivers in the Task Sequence.

The process is very simple – a step early in the sequence checks if the relevant WMI query matches the machine currently being installed, and if it does it sets the Task Sequence Variable IsUoLSupportedModel=TRUE.

When the time comes to install drivers, if this variable is not set or not TRUE, the Task Sequence installs a driver package containing some basics so that there is a stronger chance of the machine being able to fully complete the process without losing disk or network connectivity.

Initially, as of DEP005, this includes:

  • Chipset drivers for Intel based systems
  • HDD drivers for Intel SATA & AHCI drivers
  • Network drivers for common adapters such as:
    • Broadcom b57
    • Broadcom k57
    • Intel Connection CD (i.e. all the current PRO100 & PRO1000 drivers)
    • Realtek Gigabit

Updates to this will be included in the release notes.