HP Client Management Script Library 1.3 released

Today we announce release 1.3 of the HP Client Management Script Library. You can get it at https://ftp.hp.com/pub/caps-softpaq/cmit/hp-cmsl.html.

With this release, we are moving the goalpost and noting that the minimum supported PowerShell version going forward will be PowerShell 5.1.


What's new



A new function, Get-HPDeviceDetails allows you to translate between system IDs and platform names. To get all names for a system ID, simply pass the ID to the function:

PS C:\>  Get-HPDeviceDetails -platform 83b2

SystemID Name                               DriverPackSupport
-------- ----                               -----------------
83B2     HP EliteBook 840 G5 Notebook PC                 True
83B2     HP EliteBook 846 G5 Notebook PC                 True
83B2     HP EliteBook 850 G5 Notebook PC                 True
83B2     HP ZBook 15u G5 Mobile Workstation              True
83B2     HP ZBook 14u G5 Mobile Workstation              True


And you can also quickly find the operating systems this platform supports, by adding the oslist switch:

PS C:\> Get-HPDeviceDetails -platform 83b2 -oslist | ft

SystemID Architecture OperatingSystemVersion OperatingSystemRelease OperatingSystem
-------- ------------ ---------------------- ---------------------- ---------------
83B2     64           10.0                   1607                   Microsoft Windows 10
83B2     64           10.0                   1703                   Microsoft Windows 10
83B2     64           10.0                   1709                   Microsoft Windows 10
83B2     64           10.0                   1803                   Microsoft Windows 10
83B2     64           10.0                   1809                   Microsoft Windows 10
83B2     64           10.0                   1903                   Microsoft Windows 10


And you can turn everything on its head, and get the system id based on the product name:

PS C:\> Get-HPDeviceDetails -name 'HP EliteBook 846 G5 Notebook PC'

SystemID Name                            DriverPackSupport
-------- ----                            -----------------
83B2     HP EliteBook 846 G5 Notebook PC              True

Or you can do a partial match:  (note: do not use wildcards here):

PS C:\> Get-HPDeviceDetails -match '840'

SystemID Name                                               DriverPackSupport
-------- ----                                               -----------------
198F     HP EliteBook 840 G1 Notebook PC                                 True
2129     HP Z840 Workstation                                             True
2216     HP EliteBook 840 G2 Notebook PC                                 True
8079     HP EliteBook 840 G3 Notebook PC                                 True
828C     HP EliteBook 840 G4 Notebook PC                                 True
83B2     HP EliteBook 840 G5 Notebook PC                                 True
8418     HP EliteBook 840r G4 Notebook PC                                True
845D     HP EliteBook 840 G5 Healthcare Edition Notebook PC              True
8549     HP EliteBook 840 G6 Notebook PC                                 True
8549     HP EliteBook 840 G6 Healthcare Edition Notebook PC              True

HP Sure View support

We've added functions to control HP Sure View where available. This allows real-time control of the feature (albeit, with Administrator rights required). The functionality is meant to complement the BIOS Settings available through public WMI, which can be used to force HP Sure View on or off.


Extract support in Get-Softpaq

The Get-Softpaq module now supports a flag to automatically extract a softpaq after download. For more information, see the function documentation for Get-Softpaq.


More filter categories added

Both the Get-SoftpaqList and the Add-RepositoryFilter functions receive additional category filters:  manageability, diagnostic, utility, dock, and driverpack. The driverpack filter specifically makes it easy to quickly retrieve a driver pack for a platform, where available. For more information, see the function documentation for Get-SoftpaqList and Add-RepositoryFilter.


Auto-update from the command line (Preview)

The library now has an auto-update feature (unfortunately it cannot be used to update from 1.2 to 1.3 since it did not exist in 1.2). There are known issues with anti-virus behavior-based malware detection and self-updating PowerShell modules, which is why we are marking this module as a preview, to see if it makes sense. For more information, see the module documentation.


What's fixed or changed

  • We've fixed an issue where the proxy setting would not be honored when downloading CVA files from ftp.hp.com. The library should not use the default proxy settings for the current account.
  • When using BIOS flash functionality, a single one-byte file was created in the current working directory. That is now fixed.
  • We've fixed an issue where BIOS flash would fail on G6 platforms due to a change in the BIOS file structure.
  • We've also fixed a flash failure when attempting to flash with an EFI partition that was missing the EFI folder. This was usually encountered when flashing during OSD.
  • The -friendlyName flag was not working on the Get-SoftpaqList function, and we fixed that too.
  • We will now be advertising the library version in Add/Remove programs via 3-segment value rather than the previous 4-segment version. So version 1.3.0 will show up as "1.3.0" not as "". The fourth segment will henceforth be reserved for internal use, so users should disregard it if encountered.


Some things we've had to let go

The Warranty module has been removed, unfortunately, due to the unavailability of the API. We are currently in discussion on how we can return this functionality to the library.


Where to next

Going forward we are focusing on adding support for HP platform security features, and also embarking on a general cleanup of the library. We expect a number of changes that may affect a limited number of customers. Most of the changes will be focused on simplifying the API and removing rarely used parameters such as the 'noexception' suppression flags available on some functions.

We are also working on integrating our portfolio of tools to leverage a common technical vocabulary - for example, the repository functionality is going to find its way in other tools such as HP Image Assistant.


Summary image credit Gnist Design, Tromsø, Norway, via pexels.com

Author : txvalp

These scripts are very useful, and in particular I appreciate the ability to find all SoftPaqs for a certain platform by just searching for that platform. Unfortunately, I have noticed that certain models of computers have outdated SoftPaq lists. Is there a team to report this to within HP? For example, the HP ProDesk 600 G2 SFF has this problem. If I run Get-SoftpaqList -platform 805d |? {$_.Category -eq "BIOS"}, I get that the latest BIOS is 02.42 (sp99043), but if I search on the HP support site, the latest BIOS is 02.44 (sp100004).

Thank you for adding the Get-HPDeviceDetails function. However, it's usefulness is limited if you do not allow ShortName for the query. I know there is the -match argument, however that will not always match the ShortName to the Name. For example, WMI reports the model as 'HP ProDesk 600 G4 DM', which is the ShortName (most, but NOT all devices use the ShortName, such as the EliteDesk 800 G5 series uses the long Name in WMI). However, that does not match the longer Name value of 'HP ProDesk 600 G4 Desktop Mini PC'. Which means that the device model as reported by the system will not equate to any SystemID.

@duet tech: Lists are generally updated a few times a week. there is some lag for them to pick up the latest softpaq. Also keep in mind that get-softpaqlist should always be used with a -os and -osver unless you are working directly on the platform in question. If you do not supply these arguments you'll pull the list for the version of OS you are running @steven can you potentially explain the workflow you are trying to do? i'm trying to understand the use case.