Find and update HP dock firmware (Upd Jun 29, 2023)

In an enterprise, it is useful to have a means to remotely find and update docking station firmware. While each dock update is packaged independently, a way to query for an attached dock, find the installed firmware version, and use the associated update Softpaq can be tricky.

The PowerShell script described in this blog can be used to test for and find a supported HP dock or docking display. The script can then use HP’s Client Management Script Library (CMSL) to download and use the latest version of the firmware, or, without CMSL, use the versions hardcoded in the script itself.

In order to discover a connected accessory, such as a dock, we need to know how the device shows up in Windows. The script queries Windows Device Manager via CMI to find out all connected devices with the following command.

$PnpSignedDrivers = Get-CimInstance win32_PnpSignedDriver

and then it looks for a plug-play id that matches a supported dock

Here is a snippet of code that confirms an HP Thunderbolt G4 dock is connected to the PC:

foreach ( $iDriver in $pPnpSignedDrivers ) {
     if ( $iDriver.DeviceID -match "HID\\VID_03F0\&PID_0488" ) {
           Write-host ”Found HP Thunderbolt Dock G4”
           break
     }
}

Current HP docks have associated Device ID of VID_03F0.

Supported docks and docking displays

The following devices are supported by the Dock Updater script:

HP Thunderbolt Dock G2

HP Thunderbolt Dock G4

HP USB-C Universal Dock G2

HP USB-C G4 Dock

HP USB-C G5 Dock

HP USB-C G5 Essential Dock

HP E24d G4 FHD Docking Monitor

HP E27d G4 QHD Docking Monitor

HP Z40c G3 WUHD Curved Display

HP Engage One Pro Stand Hub (w/update)

HP Engage One Pro VESA Hub (w/update)

HP Engage One Pro Advanced Fanless Hub (w/update)

Usage

The script, found at Github, has the ability to run with or without HP CMSL installed on the device.

Note that in order to operate, DockUpdater requires admin rights.

By default, DockUpdater.ps1 – when run without options - will find an attached HP dock (or supported docking monitor) and display the device’s firmware version, returning a number corresponding to the dock. Each supported dock or docking monitor has a number in the script. For example, a HP Thunderbolt G2 dock is a 2 – the full list at the bottom of the script

To update the firmware of a dock, run the script with -Update (or -u)

To bypass use of HP CMSL, use -BypassHPCMSL (or -b)

A new option allows for instances of docks being used in open desks to allow a user to accept the update or disallow it, in case the update causes disruption to user's work. with this option, a simple Windows dialog asks for Yes/No click and updates or stops the update. -Update would be also needed for this use case

-Hoteling -Update