Let’s find out a list of devices that are SCCM CMPivot Query Patches Installed in the last 90 Days. The ConfigMgr CMPivot provides real-time data based on fast channel architecture.
Configuration Manager CMPivot tool allows us to quickly assess the state of devices. When we run a query against a device collection, the CMPivot shall run a query in real-time on all currently connected (online) devices in the selected collection.
CMPivot Troubleshooting & Log files details are available in the following blog post. The post includes CMPivot architecture and communication details as well. 👉SCCM CMPivot Architecture Fast Channel Making | ConfigMgr.
Launch SCCM CMPivot Query Tool
- Navigate to the device collection against which you want to run the CMPivot query.
- Select All Systems device collection.
NOTE! – In a production environment with more than many devices, I don’t recommend to use All System collection. Instead, use the collection with a smaller number of devices to try out the query.
- Right-Click on All Systems collection.
- Select Start CMPivot.
- CMPivot Query tool got launched.
- Get familiarized with new query language and CMPivot tool.
- Copy any of the following queries as per the requirement.
- Check out the Run Query button from the SCCM CMPivot tool.
NOTE! – Depending on the number of devices and complexity of the query, the CMPivot query shall take time to return the results. More details are available in the following blog post. 👉SCCM CMPivot Architecture Fast Channel Making | ConfigMgr.
CMPivot Query Patches Installed in the Last 90 Days
Patches Installed within the last 90 Days! (3 Months)
QuickFixEngineering | where InstalledOn >= ago(90d)
Patches Installed within the last 60 Days! (2 Months)
QuickFixEngineering | where InstalledOn >= ago(60d)
Patches Installed within the last 30 Days! (1 Month)
QuickFixEngineering | where InstalledOn >= ago(30d)
Results
When is the patch installed? You can check the column Installed On from the below table. As you can see above, we used the CMPivot query to find out the patches installed on Windows 10 devices 90 days before.
Device | Caption | Description | Fix Comments | HotFix ID | Install Date | Installed By | Installed On | Name | Service Pack In Effect | Status |
---|---|---|---|---|---|---|---|---|---|---|
PROD-WIN20 | http://support.microsoft.com/?kbid=4552925 | Update | KB4552925 | 5/11/2020 | ||||||
PROD-WIN20 | http://support.microsoft.com/?kbid=4537759 | Security Update | KB4537759 | 5/11/2020 | ||||||
PROD-WIN20 | http://support.microsoft.com/?kbid=4557968 | Security Update | KB4557968 | 5/11/2020 | ||||||
PROD-WIN20 | http://support.microsoft.com/?kbid=4556803 | Update | KB4556803 | 5/11/2020 | ||||||
Thanks for sharing the excellent information
Patches Installed within the last 30 Days! (1 Month)
QuickFixEngineering | where InstalledOn >= ago(60d) —> correct for 30 days 🙂
Thank you for the article, do you perhaps know how to implement this: https://configurationmanager.uservoice.com/forums/300492-ideas/suggestions/39003364-cmpivot-add-an-option-to-provide-a-code-signing-c
It’s been completed for a while, but no mention of the version that supports it or how to configure it.
Wait, this doesn’t function as shown. InstalledOn is a string, this comparison doesn’t do what you think it does. Please correct me if I’m wrong.
This is what I think https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering