The New HP CMSL Build Your Own Driver Pack Commands

The ability to use current, up to date, Driver Packs for Windows imaging needs is clear. Official HP Driver Packs are released on a cadence that often require IT departments to update specific drivers immediately after deployment. Why not create your own, as needed?

HP Client Management Script Library (CMSL) version 1.6.5 introduces new commands with the ability to create up to date Driver Packs for HP supported business systems for both Windows 10 Windows 11 operating systems. The new commands are New-HPDriverPack and New-HPBuildDriverPack.


As the name implies this is the command that is used to create a Driver Pack from all available, suitable, drivers for a particular platform and Operating System version. A single PowerShell command downloads drivers, and pulls all that is relevant and appropriate, and creates a Driver Pack. The Driver Pack can be left uncompressed in its folder or compressed as needed.

Basic information about available options can be obtained with ‘-?’  (C:\> New-HPDriverPack -?). For additional details use PowerShell’s Get-Help.

The defaults will attempt to create a Driver Pack that matches the platform and Operating System it is executing on. If the device is a server or a platform not supported by the HP CMSL, it will inform that some options may be required to continue, for example, -Platform. 

As an example, to create a Driver Pack for an HP EliteBook 840 G8 business laptop, with platform ID ‘880D’ and Windows 10 version 21H2 this command will create an uncompressed Driver Pack in the current directory:

New-HPDriverPack -Platform 880D -OS Win10 -OSVer 21H2

The resulting Driver Pack name will include a date (and time) when created, which could be used as version control. In addition, Driver Pack manifests are created (in json and xml formats).

Let’s review some of the other options

-Path <String>

               The location to hold the Driver Pack. If omitted, the Driver Pack is created where the script is executed.

-UnselectList <Array>

               This is a list of names (or partial names) of drivers that are not desired in the Driver Pack and will be avoided. Using this option can make the resulting Driver Pack smaller. The following option example avoids including drivers with WWAN, USB-C, and Nvidia in the name.

               -UnselectList ‘WWAN’,’usb-c’,’Nvidia’


               To make sure only the latest version of each driver is included in the Driver Pack, this option will remove previous versions of any Softpaq (for example, in case a driver’s supersede chain is in error), matching drivers by the Softpaq name.


               This option will analyze and display what Softpaqs would make the Driver Pack without downloading any Softpaqs or creating a compressed archive.

-Format  <String>

Format options are: NoCompressedFile | Zip | Wim

When omitted or selecting 'NoCompressedFile', a compressed file is not created. If Zip or WIM is selected, a compressed archive of the Driver Pack is created.

-Url <String>

New-HPDriverPack is designed to get current supported driver version based on a specific platform and OS version. This information is obtained from HP Image Assistant factory reference files, which are updated constantly.

If a Driver Pack needs to be created from information maintained with CMSL commands in an existing offline repository, the -URL path can be used to get the reference file.

<String> specifies an alternate location for the HP Image Assistant (HPIA) Reference file. This URL must include http, https, or ftp. The Reference files are expected to be at the location pointed to by this URL inside a directory named after the platform ID. By default, is accessed via HTTPS protocol



Unlike the New-HPDriverpack CMSL command, New-HPBuildDriverpack is designed to take an array of Softpaqs to create a Driver Pack from. The array may be piped to the command or listed with the -Softpaqs <array> runtime option.

In the following example, we create a specific list of Softpaqs that

  • uses HP CMSL Get-SoftpaqList to retrieve a list for a platform and OS/OS Version,
  • filters the list for
    • Softpaqs that support INF style installation (‘DPB’=DriverPackBuild),
    • removes Softpaq 'sp137116', and
    • removes Softpaqs with AMD or USB in the name
  • then, New-HPBuildDriverPack creates a compressed Zip file at C:\MyDriverPack
> Get-SoftpaqList -platform 880D -os 'win10' -osver '21H2' |
     ?{$_.DPB -Like 'true' -and $ -notin @('sp137116') -and $ -notmatch 'AMD|USB'} | 
     New-HPBuildDriverPack -Path 'C:\MyDriverPack' -Format Zip
Author : dan.felman

I have my HPIA steps for each model in a separate job suite that I run as the first step when they are exposed to the full OS. HPIA must be running in full Windows for WinPE to run internally. Did your error occur in WinPE?

@abbiehurst22: are you posting this in the wrong blog? or were you trying to post on a forum?