Skrypt czyszczenia pamięci podręcznej klienta programu Menedżer konfiguracji – Zwolnij miejsce na dysku w łatwy sposób. You are probably already aware that SCCM manages its client cache pretty well (usuwa starsze obiekty, gdy kończy się wolne miejsce).
Ten skrypt usuwa całą zawartość folderu ccmcache starszą niż X dni. Work with any SCCM release. Poniżej znajduje się kod reguły zgodności.
#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)
}
NOTATKA: Możesz otrzymać error in the report if you don’t set the PowerShell execution policy “Bypass” in Default Client Settings\Computer Agent in SCCM Console.
NOTATKA: Skrypt czyści tylko pamięć podręczną na liście klientów. If you upgrade or reinstall SCCM client on the client pc you see that not all folders in c:\Windowsccmcache pozostają na liście pamięci podręcznej. W tej sytuacji, potrzebujesz innego skryptu, aby wyczyścić folder.
Aby uzyskać listę obiektów ccmcache, uruchom skrypt ps:
$CMObject = New-Object -ComObject “UIResource.UIResourceMgr”
$CMCacheObjects = $CMObject.GetCacheInfo()
$CMCacheObjects.GetCacheElements()
w końcu działający skrypt, wielkie dzięki
Świetne odniesienie! Dziękuję bardzo.