Configuration Manager-Client-Cache-Bereinigungsskript – Geben Sie ganz einfach Speicherplatz frei. Sie sind sich wahrscheinlich bereits bewusst, dass SCCM seinen Client -Cache ziemlich gut verwaltet (Löscht ältere Objekte, wenn der freie Speicherplatz aufgebraucht ist).
Dieses Skript löscht alle Inhalte im ccmcache-Ordner, die älter als X Tage sind. Arbeiten Sie mit jeder SCCM -Veröffentlichung. Nachfolgend finden Sie den Code für die Compliance-Regel.
#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)
}
NOTIZ: Möglicherweise erhalten Sie eine Fehler im Bericht, wenn Sie die PowerShell nicht festlegen Ausführungsrichtlinie „Bypass“ in Standard -Client -Einstellungen Computer Agent in der SCCM -Konsole.
NOTIZ: Das Skript löscht nur den Cache in der Clientliste. Wenn Sie den SCCM -Client auf dem Client -PC aktualisieren oder neu installieren, sehen Sie, dass nicht alle Ordner in C:\Windows ccmcache bestehen in der Cache -Liste bestehen. In dieser Situation, Sie benötigen ein weiteres Skript, um den Ordner zu leeren.
Um die Liste der Ccmcache-Objekte abzurufen, führen Sie das ps-Skript aus:
$CMObject = New-Object -ComObject “UIResource.UIResourceMgr”
$CMCacheObjects = $CMObject.GetCacheInfo()
$CMCacheObjects.GetCacheElements()
Endlich ein Skript, das funktioniert, vielen Dank
Tolle Referenz! Vielen Dank.