Editor’s Note: This is a guest post from Matt Robertson
I am quickly learning that there are multiple ways to achieve the desired result within MDT. I set out to add BIOS updates to my task sequence and found a few posts that walked you through this. The steps in this article got me most of the way but it needed tweaking. In this article, we will cover adding BIOS updates to your Task Sequence. These will only update if the BIOS does not have the latest version that you have downloaded!
Prework: Organizing Your BIOS Updates
I used the same basic setup that I learned from the link above. I created a folder under my Applications folder in my Deployment share, named Dell. Under the Dell folder, I created a folder for each model of computer we have.
Under each of these folders I download the latest BIOS update for the corresponding model. I then rename the executable BIOSUpdate.exe and create a .txt file named with the version to make sure I don’t get confused. An example is below:
Once this prework is done, open the Deployment Workbench and edit your task sequence as follows.
Linking BIOS Updates within MDT
Create a new Group in the State Restore section named BIOS Updates, before the Install Applications task. You can put it in other areas, but this is where it makes the most sense to me. I have read articles by Joseph and others, who prefer putting this in the Preinstall section, but I run into issues trying to do that.
Under BIOS Updates folder, create a new Group for each model.
Under each Group, Add a “Run Command Line” task. In the command line box type: BIOSUpdate.exe –nopause -noreboot
This is the silent commands needed for a Dell BIOS update. In the Start in box, type the path to the update for that model. In this example, the path for the Precision T5600 is Z:\Applications\Dell\Precision T5600\
In case you didn’t know: Z: is used as the drive letter because MDT maps your deployment share to Z.
Under the current group (model folder), add a restart Computer task. The BIOS will flash and be updated before the rest of your task sequence continues.
How to Use a MDT WMI Query for BIOS Updates
We will now create the WMI queries that are needed. These make it so only the correct update gets ran, and only if the system does not have the latest BIOS update already. You must do the following for each of your models for this to work correctly. Don’t be intimidated if you have never used a WMI query. This article helped me understand how they work.
On each group (folder), select the options tab and click the Add drop down, then select Query WMI. The WMI Namespace will come up with root\cimv2 leave this and then enter the following in the WQL query field: Select * from Win32_ComputerSystem WHERE Model like ‘%Precision T5600%’
This example is for the Dell Precision T5600, use the same entry for each group/folder, changing only the model to match the group/folder you are editing. The model name must match the WMI model name which you can get from a multitude of places. If you are using command prompt, you can type wmic computersystem get model
Here is how the Task Sequence WMI Condition looks:
This will require manual updating, as you will have to periodically check for new BIOS versions, download them, rename them, update the txt file, and update the WMI query for the command line, so it reflects a new BIOS version that you have.
There are other ways to accomplish this task, and I am sure some of them are better than mine. This is what works for me, and my situation. I encourage you to keep researching and looking for ways to do it better. If you do have any suggestions or improvements, be sure to leave a comment below!
Hi,
I need to update DELL bios version on DELL computers (Desktops & Laptops) with computer GPO. I don’t want to use MDT. Any idea how I can accomplish this?
Thks
Use a shutdown script in Group Policy. You can add logic to the scrip to detect the BIOS version first and to run update if the BIOS version does not match what you are deploying.
Great article indeed. There are several ways of achieving upgrading the Dell models to the latest BIOS. However challenge comes when you cannot directly update certain models from one version to the latest without going through certain levels. So things listed above works fine on a model that can be upgraded with a single version.
What happens if a model needs three updates and three reboots? Appreciate if someone can assist.
Example: Dell E6320 can’t go from A02 to A11 without first going to A07 etc…. this is just an example and not an actual version number for this listed model.
Thanks,
Paul
At that point, I create a separate GPO for each BIOS update that that one model needs. In the GPO, I create a WMI filter that looks for the BIOS version that needs to be updated (A02). If that machine has that BIOS version, it will let the shutdown script run. On the next shutdown, the bios version will be A07. Then it will process the A11 BIOS update GPO.
This looks interesting. I am wondering if you have done any of this using SCCM 2012. I have been tasked with doing 2 things. Updating all our Dell machines in the field with updated BIOS and some settings, as well I have to ensure that the BIOS is updated during imaging. I use MDT 2013 for image building, but use SCCM 2012 R2 for image deployment. Since the “Z:” does not get created I have to find another way to reference it. I have not dug deep into this yet as I just came across your posts, but I will try it and see what happens.
Lastly does having a EFI or UEFI BIOS make a difference? We currently use Legacy BIOS, but I am thinking of switching to UEFI.
We do not have SCCM, but I would think that it would work similarly; I just don’t know the specifics about mapping drives and what not. Joseph can probably answer that better than I could. I have not tested it with UEFI, so I don’t know for certain. It would be a fairly quick test, but I don’t have any systems available to test that on, sorry.
Make sure to take a look at Joseph’s post about updating BIOS settings as they helped me a ton when I set it up: https://deployhappiness.com/manage-the-dell-bios-remotely/
When you update your current BIOS settings in the field, make sure to have them reboot as soon as they can. I have found that the initial push works fine, but I am not aloud to force the reboot, and if they wait a day or so before they reboot, the settings do not get changed. If you able to force teh reboot after install, then you are golden!
Hi Matt,
Excellent article and a lot easier to understand for a newbie to the MDT world.
I have followed your guide to the letter but cannot get the BIOS to upgrade on a Dell OptiPlex 7010 (correct in WMI).
Are there any further things to consider. There are no error messages in the logs. Note: I was required to change the syntax to “%OptiPlex 7010%” to stop a number of errors whilst testing this.
Thanks,
I don’t have that model in my inventory, so I can’t help you by testing it, but I will offer you any ideas i have.
That sounds like what it is supposed to do if your BIOS is the correct version. I see the latest version for the Optiplex 7010 is A17. What version is yours?
Also just to verify, please open a command prompt from that computer, and type:
wmic csproduct get name
That will tell you exactly what WMI sees the computer name as. My apologies if you already did that.
Start with that, I am sure we can figure this out together.
Matt
Hi Matt.
The 7010 was the syntax initially then secondly the bios had a password. Successfully upgraded from A14 to A17. Next step is to use cctk to add ts to remove and add this.
The 780 and 790 occurred whilst the ts was on the bios upgrade task. Not rebooted. A message stating invalid switches used. Do you have these workstations?
OK so I managed to get the OptiPlex 7010 working but the 780 and 790 (OptiPlex) both reported invalid switches when running the upgrades. Has anyone encountered this?
What was the fix for 7010? At what point do you get the error on the other two?
I previously responded to this but not showing?
Hey Matt – I don’t see any other comments from you on this article.
Thanks for writing this up Matt – did these extra steps slow your imaging down any?
I did not use a stop watch, however I did keep an eye on it. When I image a computer that has the latest BIOS version, it takes only a few extra seconds. If I image one that needs an update it adds a minute or so, mostly due to the reboot. Now that you are asking me though, I want to get the stop watch out. I am snowed in today, and likely tomorrow, but I will do some testing when I get back and take some screen shots to show you what the differences are.
I didn’t get the screen shots, but I did time it out. it took an extra 4 minutes and 22 seconds on the computer that needed the BIOS update. I will also test without it even checking the BIOS to see the difference. Might not be today though, but i am trying to get to it.