powershell删除C盘无用文件

发布时间 2023-07-14 16:42:27作者: Peter_Yi
cls
$FileAge = $(Get-Date).AddDays(-60)

# $server = ( Get-Content D:\ServerList.txt)


write-host "$server -- Ping Success" -ForegroundColor Green
$Pingstatus = "Success"


$LogDate = get-date -format "MM-d-yy-HH"

#log file Path
# Start-Transcript -Path D:\131460\Temp\$LogDate.log

#Show C:\ Drive space information before Cleanup

$BeforeClenaup=  Get-WmiObject Win32_LogicalDisk  | Where-Object {$_.DeviceID -eq "c:"}  | Select-Object SystemName,
@{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
@{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
@{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
@{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
Format-Table -AutoSize | Out-String

#Stope Windows Update Service
Get-Service -Name wuauserv | Stop-Service -Force -Verbose -ErrorAction SilentlyContinue
#Delete software Distribution Folder content
$FileAge
invoke-command  { Get-ChildItem "C:\Windows\SoftwareDistribution\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue |Where-Object { ($_.CreationTime -lt $FileAge) } | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue }
#Delte Temp Folder Content
invoke-command  { Get-ChildItem "C:\Windows\Temp\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue }
#Delete All User Temp files
invoke-command  { Get-ChildItem "C:\users\*\AppData\Local\Temp\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue }
#Delete All user Temporary Internet Files
invoke-command  { Get-ChildItem "C:\users\*\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -recurse -Verbose  -ErrorAction SilentlyContinue }
#clear all recycle bins present on the local computer
Invoke-Command  { Clear-RecycleBin -Force -Confirm:$false -ErrorAction SilentlyContinue }
#Start Windows Update Service
Get-Service -Name wuauserv | Start-Service -Verbose

#Cleaning the ccmcache folder- Mayank#
#Connect to Resource Manager COM Object
$res = new-object -com "UIResource.UIResourceMgr"
$cacheInfo = $res.GetCacheInfo()

$cacheinfo.GetCacheElements()  | where-object {$_.LastReferenceTime -lt (get-date).AddDays(-5)} |foreach {$cacheInfo.DeleteCacheElement($_.CacheElementID)}

#End of Code for ccmcache folder -Mayank

#Show C:\ Drive space information After Cleanup

$AfterClenaup =  Get-WmiObject Win32_LogicalDisk | Where-Object {$_.DeviceID -eq "c:"}  | Select-Object SystemName,
@{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
@{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
@{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
@{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
Format-Table -AutoSize | Out-String

Write-host "Before Cleanup: $BeforeClenaup"
Write-host "After Cleanup: $AfterClenaup"