Installing Panasonic Toughbook BIOS Updates in a Task Sequence

By | April 24, 2019
Share

First off, here are the silent arguments I’m passing to my BIOSXX.exe package:

UiMode=2 SetExitCode=1 NoShutdownInTool=1 RequiresACAndBattery=0 LogLevel=2 Log=C:\MININT\SMSOSD\OSDLOGS\BiosUpdate.log’

The important arguments are bolded. Getting these arguments together are the difficult part.

Now for the easy part.

1\Create “Applications” for each BIOS update package. In my example, I wrapped the update in a PSADT (https://psappdeploytoolkit.com/) package.

i.e. CF33S-1 https://drive.google.com/open?id=1fqhv42o8BxMRAkVJ8uO5tYG_lteQ9-th

i.e. CF33-1 https://drive.google.com/open?id=1FWKouYrA1AeRnzz3Q5nksNwG-cBcYV67

i.e. CF20-2 https://drive.google.com/open?id=1FXlqxs8rUWUn_GbwzPsNt43m8hLLNwwQ

2\Create folders for each model with a WMI query. Here is my model WMI query.

SELECT * FROM Win32_BaseBoard WHERE Product LIKE “CF33S-1%”

3\Create sub-folders for the BIOS version check. For this I used a negative like statement.

SELECT * FROM Win32_Bios WHERE NOT SMBIOSBIOSVersion LIKE “V1.50L14”

4\You must add a “Restart Computer” step to occur directly after the BIOS update is executed. During the reboot, the BIOS and EC will get flashed.

5\In the case of these updates, a driver update was also required. So I set the Deploy-Application.ps1 to install the ME driver update before attempting the update on the BIOS/EC.

Execute-Process -Path “$dirFiles\me_driver_update_v3\SetupME.exe” -Parameters ‘-s -noIMSS -nowiman -preinst’

-BG

22 thoughts on “Installing Panasonic Toughbook BIOS Updates in a Task Sequence

  1. Mike V

    Brian,

    I’m hoping that you have an easier solution, like you most often do, but all I could come up with for the 2 groups of FZG1 Mk2’s (FZ-G1Fxx[F/G]xxx and FZ-G1Fxx[A/B/C/D/E/H/J/K/L/M/N/P/Q/R/Z]xxx)was a third query condition (Model>CheckForF/G->NotBiosVer-)
    I’m thinking something like:
    SELECT * FROM Win32_Baseboard WHERE substr(Product,8,1)=’F’ or substr(Product,8,1)=’G’
    and
    SELECT * FROM Win32_Baseboard WHERE (substr(Product,8,1)’F’) and (substr(Product,8,1)’G’ )
    or more probably, 2 conditions for the first statement since I think we figured out that the OR doesn’t work in this context, and then a 3rd condition which first checks for ‘not F’ and then goes to a 4th sub condition where it checks for a ‘not G’.

    Am I over-complicating it?
    Thanks
    Mike

    Reply
  2. TDA

    Hello,
    Great article.
    I’m just trying to implement BIOS UPDATE; BIOS CONFIGURATION and TPM UPGRADE in a SCCM Task Sequence for those toughbooks.

    I’ve a question regarding the BIOS Settings that you can configure with the tool…
    From what I understand all settings are saved in the .VBS Script – means that also the BIOS PASSWORD is saved there.
    Is there a solution (like by HP Notebook) to encrypt the password on a file and pass it to the Bios Configurator?

    Regards

    Reply
    1. Brian Gonzalez Post author

      TDA, Excellent suggestion! I will pass this along to the developer of the tool. I’ll give you the response asap.

      Reply
    2. Brian Gonzalez Post author

      TDA, This request will be added the next release of the WMI Provider. We’ve also requested that it support exporting a PowerShell script instead of vbs. They are also working on adding several other languages. I made note of your email, and I’ll send you an email when it’s released.

      -BG

      Reply
  3. JJ Reddick

    Does the < not work for Panasonic?
    I use this query for checking the BIOS on my Lenovo's:
    select * from WIN32_BIOS where SMBIOSBIOSVersion < "FWKT91A"
    That way if there is a newer BIOS version on the system it'll skip the install.

    Reply
  4. Mark P

    Hey Brian,

    Is it really necessary to check the current BIOS version? In my experience with the CF-20 MK1 & MK2, the BIOS tool has version detection integrated with the EXE. It returns a success code (0) if the BIOS is already on the current version or if it’s on a newer version.

    Thanks,
    MP

    Reply
    1. Brian Gonzalez Post author

      Mark, Good point, there is a different return code if the update doesn’t apply, you might want to grab that so you can ignore it in your script.

      Reply
  5. Matt

    Hi Brian,
    Can you run this in WinPE mode before the OS is deployed to the machine? I am using SCCM 2012 not MDT.

    Reply
  6. Scott

    Hey Brian,

    Can you let me know where to find the latest BIOS files for the CF-33’s?

    I’ve sent Justin an email requesting this too, but since I just came across this site here I thought I’d ask you too. 🙂

    PS: We have an issue with a few CF-33s that seems to be resolved by using a newer BIOS. Unfortunately the only files I can find locally here are for the older version, and I can’t find any online.

    Thanks,
    Scott

    Reply
  7. Troy Winter

    Brian,

    Older models (looking at CF31 mk3,4,5) ME Update use updatemefirmware.bat instead of SetupME.exe. The only option for this script seems to be -y. Panasonic documentation indicates it’ll automatically reboot within a minute of installing, so chaining them together in psadt app doesn’t seem like a good plan. I don’t have this hardware handy to experiment.

    Reply
  8. Rich

    I’ve been running this a few ways….but your method first identifies the model, checks the current version against the pc version, installs the upgrade if they don’t match and restarts.
    What logic is needed when the version IS the current version? My TS halts with a popup stating that the BIOS is already up to date and I have to click OK. I’m not sure how to add that statement for that situation.

    Reply
    1. Brian Gonzalez Post author

      Hi Rich,

      I haven’t looked at this process in some time, but I would imagine this query would prevent the application from running if the version matches.

      SELECT * FROM Win32_Bios WHERE NOT SMBIOSBIOSVersion LIKE “V1.50L14”

      I have a feeling though that in your situation, the version installed is actually newer than the one included in your query, which would still run. Can you confirm this? If that is the case, you may need to look at these values in the Win32_BIOS table. You can use < operators on these because they are integer types. SELECT SMBIOSMajorVersion, SystemBiosMinorVersion FROM Win32_BIOS /Brian

      Reply
      1. Rich

        Other than adding some sort of logic in the Restart so it only runs if the upgrade is installed,
        I get a return code of 300 when a restart occurs when its not needed….when the versions match.
        The condition of the restart is what’s still holding me up.

        Reply
  9. Rich

    I have manually downgraded the BIOS on the CF33L. After that, the TS does do the upgrade and reboots.
    The next time I image it, the TS breaks with a popup, The BIOS Is Already Up to Date.
    Even though the BIOS is current and matches the text file, the install still attempts (I see the dos box come up), and that’s where I see the popup box. It tries to install it either way. And if it matches, it doesn’t just skip over the step.
    Here’s another link I tried, using a PS with a text file (version). Pretty much the same results.

    https://www.joseespitia.com/2017/01/30/automate-your-bios-update-in-mdt/

    What I see in your setup is that for each model, you identify the model WMI), check the BIOS version, install the latest version, then do a reboot. In this setup, even if the BIOS is current, it reboots regardless.
    So, I’m fairly mass-confused on the logic of how to get the TS to proceed if the BIOS is current. And only reboot if the upgrade has run.

    Reply
  10. Rich

    Hi again. I have configured this to where I understand what you’re doing. The only issue I encounter is that the pc will restart even if the BIOS already matches and no upgrade is needed.
    What kind of logic can I put into the Restart to only run IF the upgrade has run, so that it doesn’t regardless of the version?
    Thanks

    Reply
  11. CJ

    Hello Great article. Can you tell me where you found the command line switches for the Panasonic Bios’? I would be interested in changing the log path that is specified in -F, only trouble is I do not know what -F is other than speculation.

    Reply
  12. Rich

    I too am upgrading the Toughbook BIOS during my TS. There is a reboot added right afterwards.
    I’m wondering…..is there some condition to that reboot to cause it to occur only if the update happened?
    If I image a pc and the BIOS already was up to date, the reboot still occurs. I can’t recall what I found once, but
    it had some condition ending in YES=1.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.