Script de limpieza de caché del cliente de Configuration Manager – Libere espacio en disco fácilmente. You are probably already aware that SCCM manages its client cache pretty well (elimina objetos más antiguos cuando se acaba el espacio libre).
Este script purga todo el contenido de la carpeta ccmcache que tenga más de X días. Work with any SCCM release. A continuación se muestra el código para la regla de cumplimiento..
#discover
$MinDays = 20
$UIResourceMgr = New-Object -com “UIResource.UIResourceMgr”
$Cache = $UIResourceMgr.GetCacheInfo()
($Cache.GetCacheElements() |
where-object {[datetime]$_.LastReferenceTime -lt (get-date).adddays(-$mindays)} |
Measure-object).Count
#remediate
$MinDays = 20
$UIResourceMgr = New-Object -ComObject UIResource.UIResourceMgr
$Cache = $UIResourceMgr.GetCacheInfo()
$Cache.GetCacheElements() |
where-object {[datetime]$_.LastReferenceTime -lt (get-date).adddays(-$mindays)} |
foreach {
$Cache.DeleteCacheElement($_.CacheElementID)
}
NOTA: Es posible que obtenga un error in the report if you don’t set the PowerShell execution policy “Bypass” in Default Client Settings\Computer Agent in SCCM Console.
NOTA: El script solo borra el caché en la lista de clientes. If you upgrade or reinstall SCCM client on the client pc you see that not all folders in c:\windowsccmcache persiste en la lista de caché. En esta situación, necesitas otro script para borrar la carpeta.
Para obtener la lista de objetos ccmcache ejecute el script ps:
$CMObject = New-Object -ComObject “UIResource.UIResourceMgr”
$CMCacheObjects = $CMObject.GetCacheInfo()
$CMCacheObjects.GetCacheElements()
finalmente un script que funciona muchas gracias
Gran referencia! Muchas gracias.