Dell Bios Updates in SCCM Task Sequences with Powershell (revisited)

[Update] I updated the script on 01/16/13 because it had some bugs. Sorry! Make sure to re-download the latest version from my Github repo below.


We started seeing a lot of task sequence actions dedicated to Dell Bios updates in our task sequences, so I wrote a powershell script to make things a bit more manageable.

Download the script here: John Puskar’s Github Repo.

The script looks up the system model, and looks for a subfolder in the script’s working directory that matches the model name. Then, it reads the last few digits of any exe files in the subfolder and considers them to be bios version updates available. Then, it compares those available versions against the current system bios.

If the script decides that an update is available in it’s repository, it will pick the next highest update in line above the currently running Bios version, and install it. For example, say there are 3 updates files in a directory: A03, A05, and A07. Your system is running A04. The script will update the system to A05.

If you need to run multiple updates, you must run the script multiple times with a reboot between runs.

Task Sequence Integration

To integrate the script into your task sequence, do the following

  1. Download the script and place it in a folder.
  2. Create a package for the script with no program.
  3. Create folders for your models with the exact model name of your system (ex: “Optiplex 990” or “Optiplex 9010”). You can get model numbers by running the following PowerShell command:
    (gwmi win32_computersystem).model
  4. Download BIOS updates from support.dell.com for the target models. Save the .exe BIOS updates in their respective folders.
  5. Create a ‘Run Command Line’ TS action with the following command. Make sure to link the package. You can replace <BiosPassword> with your BIOS password.
    powershell.exe -ExecutionPolicy Bypass -File .\Dell-BiosUpdates.ps1 <BiosPassword>

If necessary for your environment, copy and paste this task sequence action so that it runs multiple times, but add a reboot action in between. Future versions of the script should detect WinPE and set a TS action to skip successive runs. I’ll do that eventually.

Thanks and good luck!

5 thoughts on “Dell Bios Updates in SCCM Task Sequences with Powershell (revisited)

  1. hey john,
    could you be more specific about the task sequence itself in ConfigMgr?
    is it a simple run command line?
    I’m not very familiar with powershell :/

  2. Pingback: Table of Contents | windowsmasher

  3. This looked like an interesting way to upgrade the Bios for Dell’s in my environment. Just started at a new company and the previous way they had it setup in SCCM isn’t working so I attempted to follow your instructions. I’m guessing I’m doing something wrong.

    Created Folder called Dell PS Bios -> placed the Dell-BiosUpdates.ps1 in folder
    Created Subfolder called Optiplex 7010 -> placed 4 bios updates in the folder, O7010A01.exe, O7010A05.exe, O7010A09.exe, O7010A12.exe

    The only thing that differs from your instructions is there is no password set for the bios on the machine I’m testing with.

    Loaded up my task sequence I use for imaging and for testing went to the very beginning, added a new group called Dell PS Bios Update, underneath I per your instructions of possibly needing to run script multiple time created Run Command Line called Dell BIOS Upgrade Run 1. pasted -> powershell.exe -ExecutionPolicy Bypass -File .\Dell-BiosUpdates.ps1 for the command line section, check marked my Dell PS Bios package that I created from the above. I copied and pasted this TS portion 3 more times so i have Run 1-4 with a Restart Computer if not in WinPE (the boot image assigned to this task sequence) between each run.

    Any help in narrowing down why this isn’t working would be appreciated.
    c o r a n ZERO ZERO Seven @ g. mail.com

Leave a reply to dcg1k Cancel reply