Konfigurationsmanager Client-Cache-Bereinigungsskript – Geben Sie ganz einfach Speicherplatz frei. Das ist Ihnen wahrscheinlich schon bewusst SCCM verwaltet seinen Client-Cache ziemlich gut (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 jedem SCCM freigeben. 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 das nicht festlegen PowerShell Ausführungsrichtlinie „Bypass“ in Standard -Client -Einstellungen Computer Agent in SCCM Konsole.
NOTIZ: Das Skript löscht nur den Cache in der Clientliste. Wenn Sie ein Upgrade oder eine Neuinstallation durchführen SCCM Client auf dem Client-PC 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.