Module focused on interacting with and managing the MEMCM Client

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name PSCCMClient

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name PSCCMClient

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More



(c) 2020 Cody Mathis. All rights reserved.

Package Details


  • Cody Mathis


SCCM MEMCM MECM CIM ConfigMgr PowerShell SystemCenter


ConvertFrom-CCMLogFile ConvertFrom-CCMSchedule ConvertTo-CCMLogFile Get-CCMApplication Get-CCMBaseline Get-CCMCacheContent Get-CCMCacheInfo Get-CCMCimInstance Get-CCMClientDirectory Get-CCMClientInfo Get-CCMClientVersion Get-CCMCurrentManagementPoint Get-CCMCurrentSoftwareUpdatePoint Get-CCMCurrentWindowAvailableTime Get-CCMDNSSuffix Get-CCMExecStartupTime Get-CCMGUID Get-CCMLastHardwareInventory Get-CCMLastHeartbeat Get-CCMLastScheduleTrigger Get-CCMLastSoftwareInventory Get-CCMLoggingConfiguration Get-CCMMaintenanceWindow Get-CCMPackage Get-CCMPrimaryUser Get-CCMProvisioningMode Get-CCMRegistryProperty Get-CCMServiceWindow Get-CCMSite Get-CCMSoftwareUpdate Get-CCMSoftwareUpdateGroup Get-CCMSoftwareUpdateSettings Get-CCMTaskSequence Invoke-CCMApplication Invoke-CCMBaseline Invoke-CCMClientAction Invoke-CCMCommand Invoke-CCMPackage Invoke-CCMResetPolicy Invoke-CCMSoftwareUpdate Invoke-CCMTaskSequence Invoke-CCMTriggerSchedule Invoke-CIMPowerShell New-LoopAction Remove-CCMCacheContent Repair-CCMCacheLocation Set-CCMCacheLocation Set-CCMCacheSize Set-CCMClientAlwaysOnInternet Set-CCMDNSSuffix Set-CCMLoggingConfiguration Set-CCMManagementPoint Set-CCMProvisioningMode Set-CCMRegistryProperty Set-CCMSite Test-CCMIsClientAlwaysOnInternet Test-CCMIsClientOnInternet Test-CCMIsWindowAvailableNow Test-CCMStaleLog Write-CCMLogEntry


This module has no dependencies.

Release Notes

* Get-CCMSoftwareUpdate function now accounts for new AV Def names for the 'IncludeDefs' switch parameter
* Write-CCMLogEntry now also accepts the string names of the severity levels
* Improve the region documentation in Get-CCMLogFile
* Get-CCMLogFile now outputs a object of custom class CMLogEntry which has a 'ConvertToCMLogLine' method
* Improve splitting performance in Get-CCMLogFile
* Add timestamp filtering to Get-CCMLogFile
* Fix function reference in Get-CCMClientInfo
* Remove Reset-CCMLoggingConfiguration function
* Changing Set-CCMLoggingConfiguration to set registry values due to inconsistencies with the cim method in new CCM client versions
* Rename some private functions to reduce the chance of false positive AV detection
* Get-CCMConnection now selects the 0 index CimSession, or PSSession found
           This addresses Issue #48
* Move the help to external help, and have markdown version available on repo. Built using PlaytPS
* Fixed a bug where Remove-CCMCacheContent -Clear would throw a null reference exception
* Doesn't change functionality but, changed to using ModuleBuilder to build the module
* Add RefreshDefaultMP to Invoke-CCMClientAction function. This is useful when you want to force a check
           on a client to switch between CMG and intranet resources.
* Improve the region documentation in Get-CCMLogFile
* Fix function reference in Get-CCMClientInfo
* Improve splitting in Get-CCMLogFile
* All commands that run remotely now support PSSession, as well as CimSession
* Add Get-CCMConnection to module in private folder
           This function is used internally to return connection info, whether it is a CimSession, PSSession, or just computername
* Convert all functions to using Get-CCMConnection to determine best / preferred connection
* Add Invoke-CCMCommand to module
           This function is used in place of Invoke-CIMPowerShell, as a means to execute remote commands inside of functions.
           Supports ArgumentList parameter which simplifies many functions internally
* Add Set-CCMClientAlwaysOnInternet to module
* Add Get-CCMCimInstance to module
* Change 'Get-CIMRegistryProperty' to 'Get-CCMRegistryProperty' - alias is in place
           Command now accepts a CimSession, or a PSsession
* Change 'Set-CIMRegistryProperty' to 'Set-CCMRegistryProperty' - alias is in place
           Command now accepts a CimSession, or a PSsession
* Get-CCMLogFile now has a -Severity parameter which will filter what 'type' of messages are returned
* Fix ConvertFrom-CCMSchedule function export name... again
* ConvertFrom-CCMSchedule now outputs datetime object with proper 'Kind'
* Add Get-CCMCurrentWindowAvailableTime to module
* Add Get-CCMExecStartupTime to module
* Fix Set-CCMSite - working as expected now. It was passing an empty sitecode to remote machines
* Add Test-CCMIsWindowAvailableNow to module
* Add Get-CCMSoftwareUpdateSettings to module
* Fix ConvertFrom-CCMSchedule function export name
* Add Test-CCMIsClientOnInternet to module
* Add Test-CCMIsClientAlwaysOnInternet to module
* Improve ConvertFrom-CCMSchedule parsing of SMS_ST_NonRecurring
* Fix LastComplianceStatus mapping for *-CCMBaseline
* Add -Filter parameter to Get-CCMLogFile function
* Fix WhatIf support for Set-CIMRegistryProperty
* Add WhatIf support to Set-CCMLoggingConfiguration
* Move New-LoopAction from Private to Public
* Move Get-CIMRegistryProperty from Private to Public
* Move Set-CIMRegistryProperty from Private to Public
* Add Test-CCMStaleLog to module
* Fix bad function reference in Get-CCMClientInfo
* Correct Get-CCMCacheInfo function name in file            
* Get-CCMClientDirectory now returns [pscustomobject] instead of hash table
* Add Get-CCMClientVersion to module
* Add Get-CCMClientInfo to module
           This is a WIP function that will have info added when other functions are developed
* Correct missing references to Get-CCMGUID
* Improve output of Get-CCMApplication
* Add Get-CCMSoftwareUpdateGroup to module
* Add Get-CCMApplication to module
* Add Invoke-CCMApplication to module
* Add Get-CCMCB alias to Get-CCMBaseline
* Update Write-CCMLogEntry function to support pipeline by property name for the message
           Use case would be custom objects with a 'ToLog' property
* Correct alias implementation
* Rename Get-CCMSoftwareUpdatePoint.ps1 file to Get-CCMCurrentSoftwareUpdatePoint.ps1 to match function name
* Add Get-CCMDNSSuffix to module
* Add Get-CCMGUID to module
* Add Set-CCMDNSSuffix to module
* Add Set-CCMManagementPoint to module
* Add Set-CCMSite to module
* Add Get-CCMSite to module
* Adding some aliases for MP/SUP/DDR commands
* Add -whatif support to some functions that should have already had it implemented
* Adding release notes to manifest
* Update Get-CCMUpdate to translate ComplianceState and EvaluationState
* Initial publish to PowerShell Gallery


Version History

Version Downloads Last updated
0.3.1 (current version) 857 11/27/2020
0.3.0 175 3/9/2020
0.2.3 62 2/4/2020
0.2.2 29 2/2/2020
0.2.1 30 2/1/2020
0.2.0 32 1/27/2020
0.1.9 29 1/25/2020
0.1.7 28 1/24/2020
0.1.6 28 1/24/2020
0.1.5 26 1/24/2020
0.1.4 29 1/19/2020
0.1.3 28 1/19/2020
0.1.2 29 1/18/2020
0.1.1 26 1/18/2020
0.1.0 28 1/17/2020
Show more