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

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deloy 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


Cody Mathis


(c) 2020 Cody Mathis. All rights reserved.



SCCM MEMCM CIM ConfigMgr PowerShell SystemCenter


ConvertFrom-CCMSchedule 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-CCMLogFile 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 Reset-CCMLoggingConfiguration 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

* 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.0 (current version) 104 3/9/2020
0.2.3 38 2/4/2020
0.2.2 6 2/2/2020
0.2.1 7 2/1/2020
0.2.0 9 1/27/2020
0.1.9 5 1/25/2020
0.1.7 4 1/24/2020
0.1.6 5 1/24/2020
0.1.5 3 1/24/2020
0.1.4 6 1/19/2020
0.1.3 5 1/19/2020
0.1.2 6 1/18/2020
0.1.1 3 1/18/2020
0.1.0 3 1/17/2020