Updating Dell Bios with ConfigMgr–Post 3–The Application Deployment

 

First, you’ll need to add global conditions for your model, I was able to use @agerlund  Kent Agerlund’s blog to achieve this: http://blog.coretech.dk/kea/global-conditions-in-configmgr-2012/
These next few parts are borrowed directly from his post (When a Master creates good content, why re-invent the wheel):

  1. Creating the condition, open the ConfigMgr. administrator console, select Software Library, Application Management, Global Conditions and click Create Global Condition from the ribbon.
  2. Create a condition with these settings:
    Name: Computer model
    Device type: Windows
    Condition type: Setting
    Setting Type: WQL query
    Name space: root\cimv2
    Class: win32_computersystem
    Property: Model

image

 

Now that we have the Condition, lets build the Application to Deploy these Bios Scripts.
We will use the Dell Latitude E6540 for our example with the A16 Bios (Current as of 12/7/2015, change A16 with the current bios level anywhere you see it)

 

image imageimageimage imageimage imageimageimage

image

Now you have your Application with 1 Deployment type for the E6540 Model.
Going back through the images 1-10

  1. Create new Application – Set to Manually specify information
  2. Put in your Name “Dell Bios Updates (Auto Reboot)” & Check the Box to run in a TS
  3. Add some info in the description and change your icon
  4. Choose Script Install and Manually specify
  5. Create a name for the Script “E6540 A16” (Change A16 for the current Level of Bios)
  6. Set your Content Location & Installation Program (E6540Reboot.cmd)
  7. Detection Method will be the Log File created in the script, our example is C:\InstallLogs\E6540A16.log
  8. User Experience – Install for System & Whether or Not a user is logged on
  9. Requirements – set to Custom – Computer Model – equals Latitude E6540
  10. Double check your summary and finish.

Note to remember, when new bios come out, you need to change 3 things.

  1. Script File – Change the Bios EXE that you’re running and Update the LogFile to Match so you can get a new detection Method
  2. Deployment Type Name.  By naming the Deployment Type the Model & Bios Level, it’s easy to quick see which Bios level you’re deployment, just remember to update the Name to reflect the new Bios Level.
  3. Detection Method to match the new LogFile Name

 

Repeat Steps 1-10 for each model you want to deploy bios to.  When Complete, you should see something like this:
image
I can quick look at that, see all of the models I can deploy and which Bios Level it is at.  If a new Bios comes out, I just make those 3 changes listed above, and redistribute the content.

Moving forward, I’ll probably break this into two different Applications, Laptop / Desktops
Just to make the package contents smaller.

I’ve got 2 applications identical, except one (No Logged on User), I’ve changed the  user experience
image 
Logon Requirement is set to “Only when no user is logged on”

I’ve done this so when I deploy it, it will not run if a user is logged on, even if the it reaches the deadline, it will not run if a user is logged on.  Since I force a reboot when the Bios update runs, I don’t want it to install and reboot when a user is logged on.

I created a collection to Deploy to, called “BiosUpdate – No Logged on User – Reboot” so I know exactly what I was using it for, then deployed the Bios Update to that Collection. (I like to make descriptive Names for things)

image

Every few days, I added one additional collection of computers (Model) that required bios updates

image

 

As computers would update their bios, and do a hardware inventory, it would show an updated bios version, and automatically be removed from those query based Bios level collections.  If computers remained in those collections, I would check to see if the update ran on them, typically what would happen is the bios update would fail, so I would create a ticket for the service desk to manually update the bios on the few that failed, and to resolve any other issues which might have caused the bios to fail.  Once the bios is resolved, they automatically drop out of the query based collections.

 

When new bios are released, I’d update the applications, update the query in the collections, and they would auto populate back into this deployment collection, get updated, then pull themselves out.  I LOVE QUERIES!

Updating the Queries and Applications can be time consuming, so typically I’ll only update to a bios level if it has a value in our environment, like fixing a specific issue.  On new models, it seems like bios are released monthly, so if it doesn’t fix an issue we’re seeing, I’ll typically wait for a couple extra months for another version or two to be released.  On older machines, bios releases are rare, so once you’ve set this up for older models, you’ll probably never have to touch those scripts / deployments again.

I hope I explained the process well, if you have any questions, please let me know.

Leave a Reply

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