HP is about to release an update to the HP Client Management Script Library, (1.6.5) and with it, a new Commandlet, New-HPDriverPack. This fills a void with driver packs that has been plaguing us for years. The issue HP tackled? Stale driver packs! Typically driver packs get updated… rarely, lets go with that, but individual drivers get updated much more frequently. Most vendors provide tools then to update drivers on machines running the Full OS, but until today, that meant having to first run OSD with old drivers, have the OS installed, then run HPIA to update the drivers to current versions. Now, you can create your own custom updated driver packs and be far better after the first time the Full OS comes online.
New-HPDriverPack, this command will allow you to feed it the platform code, OS (Win10 or Win11), and OSVer (21H2, etc), and build a driver pack based on those findings.
Example Command:
New-HPDriverPack -Platform 8730 -Os win10 -OSVer 21H2 -Path C:\HPStaging
Outcome, a folder with inf drivers that you can DISM into the Offline OS during OSD.
You would take this output and build a driver package in CM for deployment during OSD
I really like this structure, I know exactly what driver and what SP# it included, and for PowerShell automation for updating driver packs, the manifest.json file makes it easy to compare between driver pack creations.
TESTING PROCESS
Original Pack Test (OP): I’ve taken four of my HP Models I have in my lab and ran tests. I ran OSD with the basic driver pack, then ran HPIA scan to determine missing updates.
Updated Pack Test (NP): Ran same Task Sequence but with Driver Pack created with New-HPDriverPack
Task Sequence:
DISM Drivers Step (Part of Child Task Sequence)
TEST MACHINES & RESULTS
- HP EliteBook 840 G3 : HP-EB-840-G3
Results: You can see, while not perfect, it is MUCH better, going from 13 out of date to 4 out of date.
- HP EliteDesk 705 G3 : HP-ED-705-G3
Results, went from 1 Missing driver to 0, and 2 out of date to 1 out of date
- HP ProBook 445 G7 : HP-PB-445-G7
Results: This was a clear win, no missing drivers or out of date drivers after applying the newly created custom driver pack during OSD.
- HP ProDesk 600 G4 : HP-PD-600-G4
Results: This model too give a completely updated driver pack using the new commandlet.
CONCLUSION
From my testing, I’ve learned how great this new process will be. Since it’s all powershell, automation is easy as well. I’ve already automated having it update all of my Driver Packs in CM for my HP models using this new method. The script will be available on my GitHub eventually.
POSTED on GARYTOWN.COM
Hi Garry
Looks great. Is there a way to download all the other driver related SW. E.g. HP Hotkey Support, HP Programmable Key using the Client Management Script Library for one particular model.
Thanks
You can build an offline driver repo for a model, then call HPIA to install that.
See this script: https://github.com/gwblok/garytown/blob/master/hardware/HP/HP_UpdateDriverPacks_Online_Offline.ps1
lines 108 – 111 will create the repo
In this script, it’s adding those files into a driver “package” that I can then call during OSD with HPIA.
See this script I use in OSD to apply the HPIA Offline Repo (which is stored in a CM Package): https://github.com/gwblok/garytown/blob/master/hardware/HP/ApplyHPDriverPackOSD.ps1
Greetings
I am struggling with the following error “Cannot validate argument on parameter ‘Os’. The argument “Win11” does not belong to the set “win7,win8,win8.1,win81,win10,*” specified by the ValidateSet attribute.” when I try to build my offline Windows 11 repository.
I have installed hp-cmsl-1.6.5.exe. My Windows 10 offline repositries work fine. Any advice on how to troubleshoot this issue?
Thank you
I believe I resolved the issue. I uninstalled hp-cmsl-1.6.5 and deleted everything HP related in C:\Program Files\WindowsPowerShell. Its now working for Windows 11 as advertised,
FYI: https://www.powershellgallery.com/packages/HPCMSL/1.6.7
😉
hey gary– when i run this command i dont get the nice sp names you’re getting. i’d like to have these download with sp name and number, and sort into folders like graphics, sound, etc. Are you aware of a way to do this? i havent been able to find one.
Aww… yes.. the commandlet was updated to remove the “nice sp names” due to it reaching max character limits for folder structures and causing issues.
To assist with automation processes, which typically don’t care about nice names, the process was changed to just show the SP number.
If you wanted, you could add a step in your script that would look up the SP number (get-softpaqmetadata) and grab the info you want from that to display in your script.
Hit me up on Twitter DM if you have any questions or want any help.
Thank you for great blog. Is the task sequence with the wim->DISM steps available to download somewhere?
Would be nice to get some of the steps.
Thank you