none
Anyone have experience updating BIOS using MDT task sequence? (HP) RRS feed

  • Question

  • The company I work for has never updated BIOS regularly on any of their systems. We have systems here that are several years old still running on the first version of that model's BIOS. 

    They primarily use HP equipment but I have been having hit/miss luck with BIOS updates as a task sequence. For example, we deploy the HP EliteBook 9470m and 9480m. For both models I extracted the contents of the BIOS .exe from HP and set those up as an application. Then under Custom Tasks in State Restore I created separate folders for each model using the queries. As an example: "Select * from Win32_ComputerSystem where Model like 'HP EliteBook Folio 9470m%'"

    Now, for the task sequence variable itself it is set up like this:

    1. If all conditions are true

    2. select SMBIOSBIOSVersion from Win32_BIOS where SMBIOSBIOSVersion < "F.62 Rev.A"

    3. Select * from Win32_ComputerSystem where Model like 'HP EliteBook Folio 9470m%'

    The application itself is set up as pointing to and using the following switches: "hpqFlash64.exe -s -a -r" 

    This seems to work fine. However, for the 9480 hpqFlash64.exe isn't used. Instead it uses HPBIOSUPDREC64.exe and I have the application set up to use the same switches. My task sequence for the 9480m fails every single time. It also doesn't matter if I use the x86 version of the installer (HPBIOSUPDREC.exe). If I run this from command line on the machine itself it installs just fine so it is only failing as a task sequence. 

    Error I get is "Litetouch deployment failed, Return Code = 2147467259 0x80004005"

    Any ideas?

    Monday, January 4, 2016 12:43 PM

All replies

  • Take a look at this blog post by Mikael Nystrom. He provides a script to do BIOS upgrades during OS deployments. I use it to upgrade the BIOS on HP systems before Win10 upgrades and all I can say it is fantastic.

    http://deploymentbunny.com/2013/12/16/step-by-step-upgrading-bios-during-litetouchzerotouch-deployment-for-dell-hewlett-packard-and-lenovo-v2/

    Monday, January 4, 2016 6:01 PM
  • Take a look at this blog post by Mikael Nystrom. He provides a script to do BIOS upgrades during OS deployments. I use it to upgrade the BIOS on HP systems before Win10 upgrades and all I can say it is fantastic.

    http://deploymentbunny.com/2013/12/16/step-by-step-upgrading-bios-during-litetouchzerotouch-deployment-for-dell-hewlett-packard-and-lenovo-v2/

    This is great. Thanks for this. Not working for me, however. I followed all the steps and exported all of the HP Elitebook 9480m BIOS files into a folder under the same name within Source. I then updated the UpgradeBIOS.cmd file to reflect the BIOS updater for that model which is called "HPBIOSUPDREC.exe -s." I added that system to the powershell script with the computer model and the expected BIOS version. The script runs, flashes red text and then closes out.

    Also, how do you get the NeedReboot switch working? The screenshot on that page seems to cut off the whole variable he has set in customsettings.ini. Our customsettings.ini is very basic for the Properties section. We only have a "DriversApplied" value set.

    Tuesday, January 5, 2016 1:55 PM
  • I'm not sure what the case is for HP, but Dell BIOS upgrades don't support WinPE 64bit. Hopefully they will add support soon.

    In any case I tried a 32bit PE boot image and running a BIOS update from that worked, though I didn't use a task sequence to update the BIOS I just ran the update manually.


    If this post is helpful please vote it as Helpful or click Mark for answer.

    Tuesday, January 5, 2016 5:36 PM
  • I'm not sure what the case is for HP, but Dell BIOS upgrades don't support WinPE 64bit. Hopefully they will add support soon.

    In any case I tried a 32bit PE boot image and running a BIOS update from that worked, though I didn't use a task sequence to update the BIOS I just ran the update manually.


    If this post is helpful please vote it as Helpful or click Mark for answer.

    Yea if I navigate to the correct folder and run HPBIOSUPDREC.exe -s from command line it installs fine - so its specifically something to do with the MDT deployment. I have a 9470 here which uses the old flash utility so I may set that up here in a bit and see if it works on there. If so then maybe there is something specific to the current HP flash utility that wont work. As Im sure you've been able to tell by some of my previous threads you have replied to I am still learning every day with MDT.

    I should add that I am using the 32bit PE boot image. We only use 64bit in specific cases such as the Surface Pro.

    *EDIT*

    This isnt working with the 9470m, either. So I followed the instructions I found in another guide here: https://deployhappiness.com/updating-bios-versions/ making the necessary changes for HP vs Dell. Still doesn't work. I seem to keep coming across 20 different ways of managing BIOS updates using MDT and I cant get any of them to work.

    Tuesday, January 5, 2016 6:08 PM
  • Well for anyone interested I wound up using HP SSM and deploying the BIOS updates with that in State Restore.
    • Proposed as answer by Dan_Vega Monday, January 11, 2016 2:11 PM
    Friday, January 8, 2016 3:59 PM
  • We use both the 9480 and the 9470 in our environment (along with a ton of other HP models) and our bios installs work fine.  For the 9480 I use HPBIOSUPDREC.exe /s /r command and not the "HPBIOSUPDREC.exe" -s -r per the CVA and I haven't had any issues.  I haven't been able to put the SMBIOSBIOSVERSION wmi query in there yet since I can't get the stupid thing to run which I'm sure is just a syntax thing.  Waiting on the HP guys to get back with me so I don't have to futz around with the syntax anymore.  I use the pretty much the same for the MODEL wmi query as you are using, however I only put SELECT * FROM Win32_ComputerSystem WHERE Model LIKE "%9480%" instead of the exact model.  Close works in horseshoes and hand grenades...might as well work in SCCM too.  :)
    Friday, March 25, 2016 3:03 AM
  • To update the BIOS of the 30+ HP models of laptops and desktops we have, I created my own vbscript to update the BIOS during the imaging process in MDT and called the update as I would an application install using "cscript.exe Update_BIOS.vbs" as the install command.

    Here is a link to the shared folder in my Box account, if anyone would like to take a look. You will need to create a new password file in the HPQPswd folder and call it "Pswd.bin".

    https://app.box.com/s/qmhntk41xn4fqgu9r3km070wi3lw4itv

    You will notice there are several VBScript files along with an HTA script at the bottom of the folder. The HTA is what I use when I'm updating manually. It checks the current BIOS version and reports that back along with the latest BIOS version. The latest BIOS version is just what the newest folder name is called inside of each Model folder. I let it run and the system will reboot as part of the script. The Update_BIOS.vbs file is what I call through MDT.

    All folders and files need to stay named as what they are, since that is how they are referenced in the scripts. If you add a new model to the scripts, create a new folder with the EXACT model name as what is listed in the BIOS. You can also use the "Find Computer Info.vbs" script to get this information.

    I'm in the process of trying to get this to work with Windows 10 Edu without being prompted by UAC.

    You could probably adapt it to work with Dell or Lenovo computers, but we have very few Lenovo and no Dell computers, so I didn't bother with it. I did learn at one time, Lenovo did not allow the BIOS to be updated programmatically like this because they saw it as a vulnerability, which I guess I can understand, but at the same time, that seems ridiculous to have to manually update a bunch of computers. 

    Contact me if you have any questions about this or can't get it to work.

    Monday, July 11, 2016 6:57 PM
  • Hi!

    In case you are still in search for a solution, we had the same problem to update the BIOS, perform a TPM update for some types, changing BIOS settings as well as setting all computers to the same password.

    Because we need to do this to 9k machines and need to support 20 different models, I ended up creating a 2000 lines PowerShell script that uses configuration files which should make supporting new models easy.

    It's Apache 2 licensed (=free) and available on GitHub: https://github.com/texhex/BiosSledgehammer

    DISCLAIMER (Just to make this clear): I'm the author so this is shameless self-promotion.



    • Edited by Michael Hex Saturday, November 5, 2016 8:44 PM
    Saturday, November 5, 2016 8:42 PM