Set SCCM Cache Size with PowerShell

This script allows to increase the SCCM cache size of a workstation.

In the following example:

  • If free space on drive is equal or greater than 20 Go, the cache size is set to 10240 Mo
  • If free space on drive is equal or greater than 40 Go, the cache size is set to 20480 Mo
#Initialize the CCM COM Objects
$CCM = New-Object -com UIResource.UIResourceMGR

#USe GetCacheInfo method to return Cache properties
$CCMCache = $CCM.GetCacheInfo()

#Get the current cache location
$CCMCacheDrive = $CCMCache.Location.Split("\")[0]

#Check Free space on drive
$Drive = Get-WMIObject -query "Select * from Win32_LogicalDisk where DeviceID = '$CCMCacheDrive'"

#Convert freespace to GB for easier check
$FreeSpace = $Drive.FreeSpace/1GB

#Check Sizes and set Cache
If ($Freespace -ge 20) {
	#Free space moderate
	$CacheSize = 10240
}

If ($Freespace -ge 40) {
	#Plenty of space
	$CacheSize = 20480
}

#Set Cache Size
$CCMCache.TotalSize = $CacheSize

Write-Host (Get-WMIObject -namespace root\ccm\softmgmtAgent -class CacheConfig).Size