SCCM CMPivot Fast Channel Making SCCM Fast

0
SCCM CMPivot

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.

Prerequisite of SCCM CMPivot

Make sure you are running the latest version of SCCM client and CMPivot (SCCM console). SCCM security permissions 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. There are two steps in a very high-level architecture flow.

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 which are not online for an hour. This retry happens only when CMPivot window is open.

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

Troubleshoot SCCM CB Fast Channel Notification Issues

Video Tutorial – SCCM CMPivot Guide Overview

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.SCCM CMPivot

  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

SCCM CMPivot

What are the Actions you can launch from CMPivot?

Apart from querying the online devices in almost realtime, 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

SCCM CMPivot

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

SmsProv.log
bgbServer.log
StateSys.log

Client-side CMPivot Log :

CcmNotificationAgent.log
Scripts.log
StateMessage.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

SCCM CMPivot

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

SCCM 1810 – Updated Objects which can be Queried from CMPivot

The following are the entities which 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

EntityDescription
ActiveSyncServiceActiveSync Service
AdministratorsMembers of the local administrators group
AMTAgentAMT Agent
AppCrashRecent application crash reports
AppVClientApplicationAppV Client Application
AppVClientPackageAppV Client Package
AutoStartSoftwareSoftware that starts automatically with, or immediately after, the operating system
BaseBoardBaseBoard
BatteryBattery
BiosSystem BIOS information
BitLockerBitLocker
BootConfigurationBoot Configuration
BrowserHelperObjectBrowser Helper Object
CcmLog()Up to the last 50 lines from a Ccm Log file
CCMRAXCCM_RAX
CCMRecentlyUsedApplicationsRecently Used Applications
CCMWebAppInstallInfoWeb Applications
CDROMCDROM Drive
ClientEventsClient Events
ComputerSystemComputer System
ComputerSystemProductComputer System Product
ConnectedDeviceConnected Device
ConnectionAn active Tcp connection in or out of the device
DesktopDesktop
DesktopMonitorDesktop Monitor
DeviceBasic information about the device
DiskLocal storage device information on a computer system running Windows
DMADMA
DMAChannelDMA Channel
DriverVxDDriver – VxD
EmbeddedDeviceInformationEmbedded Device Information
EnvironmentEnvironment
EventLog()Up to the last 50 events from a Windows event log
File()Information about a specific file
FileShareActive file share information
FirmwareFirmware
IDEControllerIDE Controller
InstalledExecutableInstalled Executable
InstalledSoftwareAn application installed on the device
IPConfigGets network configuration, including usable interfaces, IP addresses, and DNS servers
IRQTableIRQ Table
KeyboardKeyboard
LoadOrderGroupLoad Order Group
LogicalDiskLogical Disk
MDMDevDetailDevice Information
MemoryMemory
ModemModem
MotherboardMotherboard
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
PNPDEVICEDRIVERPNP Device Driver
PointingDevicePointing Device
PortableBatteryPortable Battery
PortsPorts
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
ProcessorProcessor
ProtectedVolumeInformationProtected Volume Information
ProtocolProtocol
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
ServicesServices
SharesShares
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
TPMTPM
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)
VolumeVolume
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

Resources

CMPivot for real-time data in Configuration Manager – https://docs.microsoft.com/en-us/sccm/core/servers/manage/cmpivot

LEAVE A REPLY

Please enter your comment!
Please enter your name here

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