Updating Dell Bios with ConfigMgr–Post 1–Creating Model based Collections

First Post of several leading up to deploying Bios Updates / Bios Settings to Dell machines using the Application Model of ConfigMgr

Update 10/12/16 – Don’t use “Like” in Collection Queries.  Since I wrote this post, I’ve gone back through and updated all the collection to use “equals”.  I’ve updated the post to reflect that improvement.

Update 7/18/16 – Found this post where @dhedges creates an app model deployment for Dell bios, but does it a bit different.  A good read to find which methods work best for your environment.

I’m going to break this topic up into several smaller posts, so they don’t become a huge Run-On.

  • Post 1 – Creating the Collections to track down and target machines with Bios less than the Current Level
  • Post 2 – Scripts Used to Update the Bios (Powershell or BatchFile, depending on your Environment)
  • Post 3 – Creating the Application Deployment
    • Creating Global Conditions to make Hardware model a “requirement”
    • Creating Deployment Type per Hardware Model


Lets Start with Model Based Collections

Currently I have Collections setup for all Models, then Additional Collections based on which Bios Level they are at, so I can target ones with lower then the Current Bios level to deploy the bios updates to.

Lets look at a Query for a specific model first, it is quite simple:

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.Model = “Latitude E6440”


This will generate a Collection with all of the Latitude E6440’s in our environment.

Now, to create a Collection based on Bios Version Level:

First, limit the collection to the model you’re dealing with:
For the Query, set it like this:

This is to ensure it has a client:
This is to ensure it’s not obsolete:

Now that you have your 2 collections, you should see something like this:

As you can see, I have 164 Latitude E6440 Laptops, and 153 of them are below the current Bios Level of A13. OUCH

After this Point, I did a lot of “Copying” collections, and slightly modifying them for each model, and bios level.

Thanks for reading, I hope you find this useful… I’ll try to post the next part early next week.

2 thoughts on “Updating Dell Bios with ConfigMgr–Post 1–Creating Model based Collections”

  1. Dear Team,

    This is Nidhi Arora from Dell API Support team. I went through your blog in regards to API support to pull warranty information.

    Recently our Dell API support group is integrated with Dell TechDirect group. Hence the email alias as well the process for creating a ticket to obtain API key is changed. Could you please make the necessary changes in your blog. It’s imperative because soon our older email alias will be decommissioned.

    New process – The customer should create ticket via TechDirect https://techdirect.dell.com;
    Alternatively they can reach out to us at APIs_TechDirect@Dell.com

  2. This query is OK until you hit versions that are bit more complex. For example on the Latitude E5570 where the latest BIOS is 1.17.3. That 2nd number is going to flub the calculation with a simple less than. Here are the versions I have in the environment:
    Model0 SMBIOSBIOSVersion0
    Latitude E5570 1.11.4
    Latitude E5570 1.14.4
    Latitude E5570 1.4.7 ->computes to a bigger than value
    Latitude E5570 1.5.0 ->computes to a bigger than value
    Latitude E5570 1.7.3 ->computes to a bigger than value
    Latitude E5570 1.9.4 ->computes to a bigger than value

    I had to explicitly list all the older versions in the query instead of using lessthan.


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.