In ConfigMgr we have the capability to inventory the QFE [Win32_Quick Fix Engineering] class to query the installed Hotfixes. The challenge here is not all updates are reported in this Class like the Quality Rollups.
So how do we capture the missing updates? Here's a PowerShell query to gather the desired information -
For reporting purposes, we need to capture this data into the ConfigMgr DB. I did this by creating a custom WMI Class and dumping the output of the above query as a WMI Instance of the custom Class and extend the Hardware Inventory for reporting purposes.
Import Hardware Inventory MOF
Let's start by importing the Custom inventory class MOF to ConfigMgr. This can be only done from the Default Settings and not a custom device setting.
Open the Default Client Settings > Hardware Inventory > Click Set Classes
Click Import and here's the .MOF file, you need to import. <Download Query_Updates.MOF>
Click OK on the default option and verify a successful import.
The attached PowerShell script <Download Query_Updates.ps1> does the following –
- Creates the Custom WMI Class and Instance
- Gather's installed updates data [Thanks to Russ Rimmerman for helping me on this part]
- Inserts into each Instance of the custom WMI class
Executes a Hardware Inventory Cycle.
You can create a Package and a Program to execute the above PowerShell script and schedule to re-run.
Program Command Line - PowerShell.exe -ExecutionPolicy Bypass -NoProfile -NoLogo -NonInteractive -File Query_Updates.ps1
Schedule – No recommendation here. (I've configured it to execute every 5 days and always rerun program.)
Refer the Resource Explorer to view the captured data.
You can also query this information directly from the Database.
select * from Query_Updates_DATA