SCCM CMPivot Architecture Fast Channel | ConfigMgr

Fast channel architecture changed the entire behavior of SCCM. Now it’s not at all a slow-moving server(SMS). You can make it run as fast as you can. The SCCM CMPivot Queries can be based on supported entities of each version of SCCM. Entities – this is what Microsoft calls the querying objects of each SCCM client.

More details about SCCM 1810 Improvements and what is new with CMPivot is available in the below section. Are you interested to see the first version of CMPivot? Following is my post SCCM CB Preview version 1805.

What is CMPivot

The CMPivot is a new in-console and standalone utility in ConfigMgr that now provides access to the real-time state of devices in your environment. You can run CMPivot as a standalone tool as well.

Patch My PC

Prerequisite of SCCM CMPivot

Make sure you are running the latest version of the SCCM client and CMPivot (SCCM console). SCCM security permissions are required to run CMPivot as Microsoft documented here.

Also, SCCM client devices should require PowerShell version 5.0. The Start CMPivot action doesn’t appear in the console when it’s connected to an SCCM CAS site.

How CMPivot Works in the Background?

The architecture of CMPivot is based on fast channel architecture. The steps explained below helps to understand very high-level CMPivot architecture flow.

1E Nomad

1. CMPivot sends queries to SCCM clients using SCCM Fast Channel
2. SCCM Clients return results via the similarly quick state message system
3. The CMPivot results are temporarily stored in the database (until the CMPivot window is open?)
4. A CMPivot Query will try to connect to machines that are not online for an hour. This retry happens only when the CMPivot window is open.

The following picture is the architecture flow of the fast channel which I explained in the fast channel notification post.

Troubleshoot SCCM CB Fast Channel Notification Issues
Credits to Microsoft Docs for the original Picture

Video Tutorial –  SCCM CMPivot Guide Overview

Watch this video on YouTube.

How to Run Query in SCCM CMPivot?

  1. In the SCCM CB 1806 or later console, go to the Assets and Compliance workspace, and select Device Collections. Select a target collection, and click Start CMPivot in the ribbon to launch the tool.
  2. CMPivot gets open as a different window. The CMPivot pane on the left lists the Entities that are available on clients. Some entities rely upon WMI while others use PowerShell to get data from clients.
    • Right-click an entity for the following actions:

Insert: Add the entity to the query at the current cursor position. The query doesn’t automatically run. This action is the default when you double-click an entity. Use this action when building a query.

Query all: Run a query for this entity including all properties. Use this action to query for a single entity quickly.

Query by device: Run a query for this entity and group the results. For example, Disk | summarize dcount( Device ) by Name


What are the Actions you can launch from CMPivot?

Apart from querying the online devices in almost real time, what are the other actions you can take directly from CMPivot? Well, you can see some handy options are available for you.

The SCCM CMPivot results pane displays the data returned by active clients for the query, and you have some right-click options as I mentioned below.

  • The available columns vary based upon the entity and the query.
  • Click a column name to sort the results by that property.
  • Right-click on any column name to group the results by the same information in that column, or sort the results.
  • Right-click on a device name to take the following additional actions on the device.

1. Create a direct membership device collections
2. Export the CMPivot query report results to CSV
3. Export the CMPivot query report results to Clipboard
4. Run Remediation scripts to selected devices (SCCM client)
5. Take Remote Control of a device from CMPivot
6. Take Resource Explorer of an SCCM client device from CMPivot
7. Select a device and do Pivot to another entity to drill down the issues


CMPivot Troubleshooting & Log files

OK. So the communication channel of CMPivot is same as SCCM fast channel. I would recommend reading my previous post to perform deep-dive troubleshooting of CMPivot issues. Apart from that log files are good friends of SCCM admins all the time, and for CMPivot also it’s the same.

Make sure your basics are correct or not. Check out the request-id at the right bottom side of CMPivot windows. This id will help you to troubleshoot via log files. Check out the collection from which you initiated the CMPivot at the right bottom side of CMPivot windows.

Following are some of the log files which you want to look at when you have trouble with CMPivot.

Server-side CMPivot Log


Client-side CMPivot Log :


  • On the client, by default in C:\Windows\CCM\logs:
    • Scripts.log
    • CcmMessaging.log
  • On the MP, by default in C:\SMS_CCM\Logs: MP_RelayMsgMgr.log
  • On the site server, by default in C:\Program Files\Configuration Manager\Logs: SMS_Message_Processing_Engine.log

Any clients that returned Total, Failed, Offline – Query completed on 3 of 5 clients (2 clients offline and 0 failure)
Client Operation ID – id(16780221)
Collection Name – All Desktop and Server Clients
The total number of rows in the results pane – 1 objects

List of Entities Supported by CMPivot

CMPivot Entities – these entities are what Microsoft calls the querying objects of each SCCM client. I hope this list will grow with newer releases of SCCM CB.

Administrators – Members of the local administrator’s group
AppCrash – Recent application crash reports
AutoStartSoftware – Software that starts automatically with, or immediately after, the operating system
Bios – System BIOS information
CcmLog() – Up to the last 50 lines from a Ccm Log file
Connection – An active TCP connection in or out of the device
Device – Basic information about the device
Disk – Local storage device information on a computer system running Windows
EventLog() – Up to the last 50 events from a Windows event log
File() – Information about a specific file
FileShare – Active file share information
InstalledSoftware – An application installed on the device
IPConfig – Gets network configuration, including usable interfaces, IP addresses, and DNS servers
OS – Basic information about the operating system
Process – A process on an operating system
Registry() – All values for a specific registry key
Service – A service on a computer system running Windows
SMBConfig – SMB Configuration of a device
SoftwareUpdate – A software update applicable but not installed on the device
User – A user account with an active connection to the device

CMPivot Entity

The following are the entities that can be queried from SCCM 1810 CMPivot. Most of the WMI classes are included in the SCCM 1810 production version. Also, there are some other improvements:

  1. CMPivot gives an option Save Favorite queries
  2. On the Query Summary tab, select the count of Failed or Offline devices, and then select the option to Create Collection
SCCM 1810 Improvements - CMPivot & Scripts
ActiveSyncServiceActiveSync Service
AdministratorsMembers of the local administrator’s group
AMTAgentAMT Agent
AppCrashRecent application crash reports
AppVClientApplicationAppV Client Application
AppVClientPackageAppV Client Package
AutoStartSoftwareSoftware that starts automatically with, or immediately after, the operating system
BiosSystem BIOS information
BootConfigurationBoot Configuration
BrowserHelperObjectBrowser Helper Object
CcmLog()Up to the last 50 lines from a Ccm Log file
CCMRecentlyUsedApplicationsRecently Used Applications
CCMWebAppInstallInfoWeb Applications
ClientEventsClient Events
ComputerSystemComputer System
ComputerSystemProductComputer System Product
ConnectedDeviceConnected Device
ConnectionAn active Tcp connection in or out of the device
DesktopMonitorDesktop Monitor
DeviceBasic information about the device
DiskLocal storage device information on a computer system running Windows
DMAChannelDMA Channel
DriverVxDDriver – VxD
EmbeddedDeviceInformationEmbedded Device Information
EventLog()Up to the last 50 events from a Windows event log
File()Information about a specific file
FileShareActive file share information
IDEControllerIDE Controller
InstalledExecutableInstalled Executable
InstalledSoftwareAn application installed on the device
IPConfigGets network configuration, including usable interfaces, IP addresses, and DNS servers
IRQTableIRQ Table
LoadOrderGroupLoad Order Group
LogicalDiskLogical Disk
MDMDevDetailDevice Information
NAPClientNAP Client
NAPSystemHealthAgentNAP System Health Agent
NetworkAdapterNetwork Adapter
NetworkAdapterConfigurationNetwork Adapter Configuration
NetworkClientNetwork Client
NetworkLoginProfileNetwork Login Profile
NTEventlogFileNT Eventlog File
Office365ProPlusConfigurationsOffice 365 ProPlus Configurations
OperatingSystemOperating System
OperatingSystemRecoveryConfigurationOperating System Recovery Configuration
OptionalFeatureOptional Feature
OSBasic information about the operating system
PageFileSettingPage File Setting
ParallelPortParallel Port
PartitionDisk Partitions
PCMCIAControllerPCMCIA Controller
PhysicalMemoryPhysical Memory
PointingDevicePointing Device
PortableBatteryPortable Battery
PowerCapabilitiesPower Capabilities
PowerClientOptOutSettingsPower Management Exclusion Settings
PowerConfigurationsPower Configuration
PowerManagementDailyPower Management Daily Data
PowerManagementInsomniaReasonsPower Insomnia Reasons
PowerManagementMonthlyPower Management Monthly Data
PowerSettingsPower Settings
PrinterConfigurationPrinter Configuration
PrinterDevicePrinter Device
PrintJobsPrint Jobs
ProcessA process on an operating system
ProtectedVolumeInformationProtected Volume Information
QuickFixEngineeringQuick Fix Engineering
Registry()All values for a specific registry key
SCSIControllerSCSI Controller
SerialPortConfigurationSerial Port Configuration
SerialPortsSerial Ports
ServerFeatureServer Feature
ServiceA service on a computer system running Windows
SMBConfigSMB Configuration of a device
SMSAdvancedClientPortsConfiguration Manager Client Ports
SMSAdvancedClientSSLConfigurationsConfiguration Manager Client SSL Configurations
SMSAdvancedClientStateConfiguration Manager Client State
SMSDefaultBrowserDefault Browser
SMSSoftwareTagSoftware Tag
SMSWindows8ApplicationWindows app
SMSWindows8ApplicationUserInfoWindows app User Info
SoftwareShortcutSoftware Shortcut
SoftwareUpdateA software update applicable but not installed on the device
SoundDevicesSound Devices
SWLicensingProductSoftware Licensing Product
SWLicensingServiceSoftware Licensing Service
SystemAccountSystem Account
SystemConsoleUsageSystem Console Usage
SystemConsoleUserSystem Console User
SystemDevicesSystem Devices
SystemDriversSystem Drivers
SystemEnclosureSystem Enclosure
TapeDriveTape Drive
TimeZoneTime Zone
TPMStatusTPM Status
TSIssuedLicenseTS Issued License
TSLicenseKeyPackTS License Key Pack
UninterruptiblePowerSupplyUninterruptible Power Supply
USBControllerUSB Controller
USBDeviceUSB Device
UserA user account with an active connection to the device
USMFolderRedirectionHealthFolder Redirection Health
USMUserProfileUser Profile Health
VideoControllerVideo Controller
VirtualMachineVirtual Machine
VirtualMachine64Virtual Machine (64)
WindowsUpdateWindows Update
WindowsUpdateAgentVersionWindows Update Agent Version
WriteFilterStateWrite Filter State

Sample SCCM CMPilot Query

Sample queries you can try with SCCM CMPivot.

Disk | summarize dcount( Device ) by Name
OS | summarize countif( (Version == '10.0.17134') ) by Device | where (countif_ > 0)
OS | summarize countif( (Version == '10.0.17134') ) by Device | where (countif_ == 0) | project Device
Service | summarize dcount( Device ) by Name
Service | where (Name == 'Browser') | summarize count() by Device
Bios | summarize countif( (Version == 'LENOVO - 1140') ) by Device | where (countif_ > 0)
Disk | where (Description == 'Local Fixed Disk') | where isnotnull( FreeSpace ) | order by FreeSpace asc


CMPivot for real-time data in Configuration Manager –

Leave a Comment

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