สคริปต์การล้างข้อมูลแคชไคลเอ็นต์ตัวจัดการการกำหนดค่า – เพิ่มพื้นที่ว่างในดิสก์ได้อย่างง่ายดาย. คุณอาจทราบอยู่แล้วว่า SCCM จัดการแคชไคลเอนต์ได้ค่อนข้างดี (ลบวัตถุเก่าเมื่อพื้นที่ว่างสิ้นสุดลง).
สคริปต์นี้จะล้างเนื้อหาทั้งหมดในโฟลเดอร์ ccmcache ที่เก่ากว่า X วัน. ทำงานกับรุ่น SCCM ใด ๆ. ด้านล่างนี้คือรหัสสำหรับกฎการปฏิบัติตาม.
#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)
}
บันทึก: คุณอาจได้รับ ข้อผิดพลาดในรายงาน หากคุณไม่ได้ตั้งค่า PowerShell นโยบายการดำเนินการ “บายพาส” ใน Default Client SettingsComputer Agent ใน SCCM Console.
บันทึก: สคริปต์จะล้างแคชในรายชื่อลูกค้าเท่านั้น. หากคุณอัปเกรดหรือติดตั้งไคลเอ็นต์ SCCM ใหม่บนไคลเอนต์พีซี คุณจะเห็นว่าไม่ใช่ทุกโฟลเดอร์ใน c:\windowsccmcache ยังคงอยู่ในรายการแคช. ในสถานการณ์นี้, คุณต้องมีสคริปต์อื่นเพื่อล้างโฟลเดอร์.
ในการรับรายการวัตถุ ccmcache ให้เรียกใช้สคริปต์ ps:
$CMObject = New-Object -ComObject “UIResource.UIResourceMgr”
$CMCacheObjects = $CMObject.GetCacheInfo()
$CMCacheObjects.GetCacheElements()
ในที่สุดสคริปต์ที่ใช้งานได้ ขอบคุณมาก
การอ้างอิงที่ดี! ขอบคุณมาก ๆ.