How to query BIOS settings by SCCM

Hi again dear visitors, in this article you are going to see how I am querying BIOS settings (of Lenovo) and retrieves information directly from the bios.

For what do I need it?

There are a couple of reasons, What if you have deployed Windows 10 machines and you want to trace down and check which computer is not configured with UEFI? what if you want to see UEFI settings? secure boot? or even boot sequence configuration.

I am talking about information that isn’t collected to SCCM databases on a regular basis, As you may know, by default SCCM knows to collect basic information (depends on what you allowed as well). you can add any class you want, by this article I pretty sure that it goes to be powerful for you.

In my case,  I am going to add Lenovo WMI class to my SCCM

Do not forget that to these steps have pros and cons, pros are the data + information you will get, and the cons are the disk space, networks bandwidth.

So let’s see how to add those classes to SCCM hardware inventory


Administration > Client Settings > Default Client Settings > Hardware Inventory > Hardware inventory classes: > Set Classes




Connect to a computer with LENOVO\HP\DELL model or any other class:

Under NameSpace type: root\wmi

Please insert username and password that can connect to certain computer:

Scroll up and down and add the necessary Class you would like to inventory:


That’s all, so far we have set the classes we want to inventory to SCCM DB. the next step is to wait for next hardware inventory cycle or just run it manually on the specific computer to get the result under Explorer Resources as I did here:

Maybe this query could be useful for you, this query provides you any Windows 10 Enterprise machine with computer names that start with “PelegIT%” name and when a computer has been installed and the ice of cake of it is, is  “secure bios” field, only computers that their secure bios configured as disabled.

select distinct SMS_R_System.Name, SMS_R_System.LastLogonUserName, SMS_G_System_OPERATING_SYSTEM.InstallDate, SMS_R_System.ADSiteName, 
SMS_G_System_OPERATING_SYSTEM.Caption from  SMS_R_System inner join SMS_G_System_SYSTEM on SMS_G_System_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join
 SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_LENOVO_BIOSSETTING on
 SMS_G_System_LENOVO_BIOSSETTING.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SYSTEM.Name like " PelegIT%" and SMS_G_System_OPERATING_SYSTEM.Caption =
 "Microsoft Windows 10 Enterprise" and SMS_G_System_LENOVO_BIOSSETTING.CurrentSetting = "SecureBoot,Disable"