Updating BIOS versions is best done while the machine is imaging. Fortunately for us, the Microsoft Deployment Toolkit (MDT) provides a built-in mechanism for updating BIOS versions. In this How-To guide, we are going to cover:
- Creating a central BIOS version repository
- Modifying your Task Sequence to install the BIOS Update
The examples shown are geared toward Dell machines. This layout should work for any Make and Model though. The only client requirements relate to the actual BIOS update file. It must initiate silently. If you are ready to get your BIOS updates under control, keep reading!
Creating a Central BIOS Version Repository
I am all about some central “stores”! In the past, we’ve covered creating a central Group Policy store and a central hardware/drive store. Today, we will build a BIOS version store. Before getting started, you will need a list of every model that you support. If you don’t have a list, you can use Active Directory to inventory this type of information.
If you do write your hardware models to Active Directory, you can use this command to retrieve them:
Get-QADComputer * -SizeLimit 0 -IncludedProperties Comment | Select-Object Comment -Unique | Sort-Object Comment
Now, navigate to your MDT Deployment Share and open up the Applications folder. Create a new folder named BIOS Updates (or something similar). Because we only support Dell machines in our environment, my folder is simply called Dell.
Create a sub-folder for each model that you support. Ensure that the folder name exactly matches the reported model. For example, we have some Dell Latitude E5430s. When querying with WMI, the model is actually Latitude E5430 non-vPro. You can double check any model by running wmic computersystem get model from the machine in question.
Populating the BIOS Update Repository
Now for the tedious work. Find the latest BIOS Update for each model that you support. If you support just Dell models, you can open up this URL (http://www.dell.com/support/drivers/us/en/555/Product/optiplex-9010) and change the model name at the end for each of your products.
Download the latest BIOS version and rename the file to BIOSUpdate.exe. Save that file to the correct model sub-folder. Finally, create a blank file or text document in that subfolder and name it with the current BIOS version. In the screenshot above, the BIOSUpdate.exe is version A11. This will help you identify future updates.
Editing the Task Sequence
Within MDT, open up your Task Sequence and head down to the Preinstall phase/group. Just below the configure task, add a new Run Command Line task. Rename this task to BIOS Updates.
Set the command line to: BIOSUpdate.exe -nopause -noreboot
As a note, these commands are specific to Dell Models. For HP machines, the silent command should be /s . If you support other models, leave a comment below with their BIOS Update switches and I will extend this list.
Set the start in to: Z:\Applications\BIOS Updates\%MODEL%\
Finally, select the Options tabs and select Continue on error.
Supporting Multiple Makes?
MDT Tasks allow you to tap into the power of WMI. This means that you can have your Task run on certain makes or models. If you haven’t played with WMI much, here is a decent primer.
On your BIOS Update task, select Options. Then select Add – Query WMI. If you would like to exclude certain models, you can use this WMI query:
Select * From Win32_ComputerSystem WHERE NOT Model LIKE “%Latitude D610%”
If you would like to include only one Make (like Dell) when running a task, you can use this WMI query:
Select * from Win32_Bios where Manufacturer = “Dell Inc.”
Congratulations! You now have a central way to ensure your BIOS versions are up to date. Before bounding off to the next project, you will need to setup a check to ensure this system doesn’t break down over time.
Create a simple calendar reminder to replace any outdated BIOS versions in your store. In our environment, most wide spread replacements/reimaging happens right before the Christmas break and during the Summer. I have reminders set so that I download the latest BIOS versions into the central store.
How can you help?
The method above is how I push BIOS Update versions in our (largely homogeneous) environment. I would like your suggestions on how to improve this. Here is how you can help:
- Do you know of a better way to get BIOS updates?
- Do you know of a better way to get notified of new BIOS updates?
- Do you know how to manage other BIOS version besides Dell and HP?
If you answered yes to any of these questions, leave a comment below! Preferably, include your answer in the comment. If this post got you thinking or if you have a great idea to share with the community, consider writing a guest post for DeployHappiness! You can read more about guest posting and the eternal glory that you will obtain here.