HP Driver / Bios Updates during OSD with System Software Manager

I recently figured out how to skip importing Dell Drivers into ConfigMgr and just dynamically apply them during OSD using the Dell Command Update tool.  Being that I have some HP computers, I was hoping to do something similar with their driver updater, but it was more work, and the documentation was poor, so I put that idea on hold.  Now that I’m setting up a new ConfigMgr environment, I thought it would be a good time to go down that road again, as I don’t want to mess with importing drivers into my new system.

My Goals for doing this is:

  1. Not having to import Drivers into the ConfigMgr console (Not saying that is bad, as it’s supported by MS, and just works, I just don’t like driver management.  I like a clean console)
  2. Having the latest Video \ Wi-Fi \ Chipset \ etc drivers installed during OSD with minimal maintenance.

This solution requires two HP Software items to be setup and working together.

  1. HP System Software Manager (SSM) (Client Package during OSD & Server Side)
    http://ftp.hp.com/pub/caps-softpaq/cmit/HP_SSM.html
    Documentations: PDF – Gives Command Line info, and explains in more detail the commands I use below.
  2. HP SoftPaq Download Manager (Server Side)
    http://www8.hp.com/us/en/ads/clientmanagement/drivers-bios.html

Server Update Share:  You’ll need a Server to host your SoftPaqs and create your file share.  I’m using my ConfigMgr Source Server, and created a new Share.

  1. Create a new Folder for your HP Updates, then Share it: \\Server\HPSSM$ (or whatever you want to name it.)
    Share Permissions: Domain Users & Domain Computers = Read
    image
  2. Share Security: Add Domain Computers, Read & execute
    image
  3. Install HP SoftPaq Download Manager (I used the defaults) – This can be on the server or Admin Workstation – I installed locally on source content server for simplicity.
  4. Setup your Configuration, OS & Models & Set Download Directory)
    Download Folder= The Directory you used for your Share
    image
    Choose the OS you want to download drivers for.  You might have to play with this a little, nothing showed up for Windows 7 x64, until I choose the “Enterprise” version, it was the opposite for Windows 10.
    image
    Select the Models of HP you have, I only have these 3 Models
    image
  5. Now click “Find Available SoftPaqs in upper left, and it will populate.
  6. Select the updates you want, then click Download
    image

Now, install the System Software Manager on the Server

  1. I just followed the defaults to let it install (Or install this on a test machine)
  2. Copy the SSM.exe & ssm.cab from C:\Program Files (x86)\Hewlett-Packard\System Software Manager to your Softpaq Download Folder and run the command from that directory: ssm /am_bld_db
    Note: in my Example, D:\Shares\src\Updates\HP\Softpaqs = \\server\hpsum$ (Driver Store Share)
    1. This will create the ssmcva.mdb & ssmcvalc.mdb files in  that directory
      image
  3. Now your share is setup, your drivers downloaded and driver database created.

 

Create your Package for OSD and place in TS
Contents:
image

  1. Batch File (Load_HPDriverUpdates.cmd)
    image
     

    REM Run SSM.exe pointing to Source Server for Driver Store Info

    SSM.exe \\server.fqdn\hpssm$ /a /noreboot /log:c:\cabs\InstallLogs

  2. SSM.exe (Grab from the one you installed on the Server)
  3. SSM.cab (Grab from the one you installed on the Server)
  4. Create TS Step – Run Command Line: cmd.exe /c Load_HPDriverUpdates.cmd & set the Package to the one you created.
    image
    This step is well after the computer joins the domain, so it has access to the Update Share you created based on the fact it’s a Domain Computer.
    Right after that Step, I have a “restart” step to allow the drivers to apply, then continue on.
  5. Then during OSD you’ll see this:
    image

After OSD is complete, you’ll have your Drivers installed.

One other thing I did to make this work was import several network / storage drivers into the base WIM, to ensure the machine had basic support (Using the Dell WinPE Driver Cab for Win10 & Win7).  I set this up for my Dell computers, but the basic drivers work on the HP as well, I didn’t have to do anything extra to support the HP machines. I’m not going to go cover that process here, please refer to my earlier Post for Dell HERE.

 

Systems Tested on: (Test Scenario: All drivers are already available in WIM via Build and Capture, or using HP SSM to apply any available updated drivers or missing Drivers, NOT using the Apply Driver step in ConfigMgr)

  1. Windows 7 x64
    1. Revolve 810 G1 – Note – USB 3 driver causes BSOD when Installing, tried several versions, get BSOD installing anyone w/ Win7. However, after BSOD, it does appear to be installed.
      Also, the NFC driver doesn’t install during OSD.  It shows “Unknown Device”, if I run the same command outside of OSD, it installs it fine.  Still trying to figure that one out.
    2. Revolve 810 G2 – Note – SMB Bus driver was missing, I couldn’t find an available softpaq for it.  It was the Synaptic SMB Bus driver, so I added it directly into the Windows WIM during B&C.  I was unable to find the individual driver download on HP’s site, but it was included in the large Drive pack download. Now that the driver is in the B&C WIM, all drivers are installed by the end of OSD.
    3. Revolve 810 G3  - All Drivers were installed properly.  I think it would have had the same issue as the G2 with the SMB Bus Driver, but since I tested after applying the WIM fix for the G2, guess I’ll never know.
  2. Windows 10 x64
    1. Revolve 810 G1 – Does not install the Audio Driver, defaults to the Generic HD driver & JMicron PCIe SD Host Controller was missing – Was not listed on HP’s site, but the Windows 7 Driver – Was able to edit the sp63637.cva file on the SSM share to add Windows 10. Works fine.
    2. Revolve 810 G2 – Does not install the Audio Driver, defaults to the Generic HD driver, Needs sp65631 installed (IDT Audio) – Was able to edit the sp65631.cva file on the SSM share to add Windows 10. 
    3. Revolve 810 G3 – Installed all Drivers, no missing drivers after OSD.

My Recommendations, use the HP Driver Package like you’ve always done, then use HP’s Update Software to Update specific Drivers to the latest versions (Video / WLAN / LAN / etc)

Not all drivers would apply, and it did take some modifications of the .cva files to get it working fully.  Overall, I think this is a good technology to supplement driver packages, but not completely replace it.

Other thoughts:  You can also use this to update bios, I have tested this, and works. Make sure you do it before you enable Bitlocker.  This does NOT work in x64 PE, you have to do it in x86 PE or after the OS is installed. One odd thing, it will apply the bios update every time the computer is imaged, even if it is the same version.  Not sure why that happens.  I’m currently using the Application Model to deploy HP Bios to machines in production.

HP Bios Update Application - HP Revolve 810 G1/G2/G3

I've recently taken a little time to automate the Updates of our HP Laptops. I've found that HP Has different Bios Update programs based on the age of the machine.  Documentation was a bit lacking as well.  I'm assuming that other HP machines will fall into one of these two methods I'm using. I'm creating this using the Application Model instead of a package, however you can easily change this into a package with minimal changes.

AppModel Pros: Application Catalog, Detection Methods, Works in a TS
AppModel Cons: Can't use in WinPE

Package Pros: Simple, less time to setup, works in WinPE in a TS.
Package Cons: Simple, no detection, can't make available via Catalog.

Here is a run down of things we'll cover

  • Create your Content Folder Structure. (or download mine HERE)
  • Download & Extract Bios from HP
  • Create Bios Password File
  • Create Bios Update batch File
    • Suspend Bitlocker
    • Add runonce regkey to enable bitlocker after reboot
    • Apply Bios Update
    • Restart Machine with 2 Minute User Notification Popup.
  • Deploy
  • Add to TS Info

 

  1. Create your Package Content Structure.
    image
  2. HP Revolve 810 G1\G2\G3- Get the Bios HERE
    1. Save it to your 810G1 folder and Extract with 7zip
      image
    2. It should now look like this:
      image
    3. Repeat for the G2 and G3 Models, your folders should now look like: image
  3. Time To create the Password File.
    1. from the 810G2 folder, launch HpqPswd64.exe
      image
    2. Type in your Bios Password and Save the BIN file to your Password File Folder
    3. Copy that file from the Password File folder into each Bios Folder like so:
      image
      Always keep a copy on hand, if you ever run the process manually, the bios update will delete the password file from the folder. A security feature I'm sure.
  4. Lets write a simple batch file that will repair the bitlocker mof, suspend bit locker, add a Run once key to turn it back on after restart, update the bios and give a two minute warning for reboot.

    ----------

    1. REM Fix Bitlocker MOF if needed
      mofcomp.exe c:\windows\system32\wbem\win32_encryptablevolume.mof

      REM Suspend Bitlocker
      Manage-bde.exe -protectors -disable c:

      REM Add RunOnce key to Enable Bitlocker after Restart if it doesn't automatically via GPO / MBAM
      reg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v EnableBitlocker /T REG_SZ /D "Manage-bde.exe -protectors -enable c:" /F

      REM Update Bios
      hpqFlash64.exe -s -pHPBiosPassword.bin -lc:\Cabs\InstallLogs\HPBiosUpdate.log

      REM Reboot Computer (Does not affect WinPE, as it can't use shutdown.exe)
      shutdown.exe /r /f /t 120 /c "Updating Bios, please save your work, Computer will reboot in 2 minutes"

      ----------

      image

      1. -s = Silent
      2. -p = Calls Password File
      3. -l = Log File (You can remove this or add your own logfile path)
    2. Ok, lets do one for the 810 G2\G3, as it's a little different, as they've added some features and changed syntax.
    3. REM Fix Bitlocker MOF if needed
      mofcomp.exe c:\windows\system32\wbem\win32_encryptablevolume.mof

      REM Suspend Bitlocker (Not needed on the G2 / G3 Models, they have the "-b" option to disable bitlocker)
      REM Manage-bde.exe -protectors -disable c:

      REM Add RunOnce key to Enable Bitlocker after Restart if it doesn't automatically via GPO / MBAM
      reg.exe ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v EnableBitlocker /T REG_SZ /D "Manage-bde.exe -protectors -enable c:" /F

      REM Update Bios
      HPBIOSUPDREC64.exe -s -r -b -pHPBiosPassword.bin -lc:\Cabs\InstallLogs\HPBiosUpdate.log

      REM Reboot Computer (Does not affect WinPE, as it can't use shutdown.exe)
      shutdown.exe /r /f /t 120 /c "Updating Bios, please save your work, Computer will reboot in 2 minutes"
      ----------------
      image

      1. -s = Silent
      2. -r = NO Reboot
      3. -b = Suspend Bitlocker
      4. -p = Password file
      5. -l = logfile
    4. Time to Create an Application to deploy the Bios
      1. image
      2. image
      3. image
    5. Deployment Types
      1. image
        Name your Deployment, I do Model & Bios Version
      2. image
        Point to your Source Content
      3. image
        Program = your Script File
      4. image
        Detection = Registry Setting for the Bios Version
      5. image
        Set to Install for System - Whether or not
      6. image
        Set your Requirements to Computer Model (Blogged here)
      7. image
        Set 0 to Hard Reboot, so it will reboot, then run detection.
        If you want to add more return codes, you can find a list here... I have not tested them.
      8. It's pretty much identical for the other two systems, just change the content to the correct folder, and the detection to the bios version. - Tip: Update one, then point to that when you're getting your detection method.
  5. Deploy, seeing it in action.  I've deployed mine to "all users" so it shows up in the Catalog
    1. Installing from the Application Catalog:
      image
    2. Once it finishes the process, it give the 2 minute reboot warning. The software center will say "Requires restart"
      image
  6. You can also deploy to a Computer collection you've created.  This is how I typically do pushes, send out communications, then push to a collection.  But for awhile during testing, I like to make it available so I can run it from the catalog.
  7. Adding to Task Sequence.  So I was excited that HP bios support being updated in WinPE... but yet I was having it fail, saying it needed a full OS.  I thought "LAIR", I've tested the script in PE and it worked fine!  Then I realized, I was running it as an application, not a package... and that's what wouldn't work in PE.  So... I had to add this Bios Update Step later in my TS, after it was in Windows, just like I do with my Dell Bios Updates. - I've tried to leave some steps around it for Context as to where I've added the HP Bios Update Step.
    1. Note, in the script I call shudown.exe, which gives a two minute delay.  In the TS, there is a restart right after it the Application Runs, which will restart the system right away instead of waiting for the two minute timeout.  If you do decide to make this into a package, remove the shutdown.exe part of out if, as that is not available in WinPE.

      image

As always, I welcome comments and feedback.  I only set this up a few days ago, and tested on a couple machines, so there might be scenarios that need tweaking.  I'll update this if I find anything.  - @gwblok