[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
- Download the script and place it in a folder.
- Create a package for the script with no program.
- 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:
- Download BIOS updates from support.dell.com for the target models. Save the .exe BIOS updates in their respective folders.
- 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!