最新消息: 预先成其事必先利其器

PowerShell 清理常规 Windows 垃圾命令

9 浏览 PowerShell 清理

管理员身份 打开 PowerShell(右键 → "以管理员身份运行",或 Win+X → "终端(管理员)")


一、清理临时文件

# 清理用户临时目录
Remove-Item -Path "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue

# 清理系统临时目录
Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue

二、清理预读取缓存(Prefetch)

Remove-Item -Path "C:\Windows\Prefetch\*" -Force -ErrorAction SilentlyContinue

三、清理 Windows 更新缓存

# 停止更新相关服务
Stop-Service -Name wuauserv -Force -ErrorAction SilentlyContinue
Stop-Service -Name bits -Force -ErrorAction SilentlyContinue

# 删除更新下载缓存
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force -ErrorAction SilentlyContinue

# 重启服务
Start-Service -Name wuauserv
Start-Service -Name bits

四、清空回收站

# 清空所有盘符的回收站(-Confirm:$false 跳过确认)
Clear-RecycleBin -Force -ErrorAction SilentlyContinue

五、清理缩略图 / 图标缓存

# 缩略图缓存
Remove-Item -Path "$env:LOCALAPPDATA\Microsoft\Windows\Explorer\thumbcache_*.db" -Force -ErrorAction SilentlyContinue

# 图标缓存
Remove-Item -Path "$env:LOCALAPPDATA\IconCache.db" -Force -ErrorAction SilentlyContinue

六、清理 DNS / 网络缓存

# 刷新 DNS 缓存
Clear-DnsClientCache

# 重置 Winsock(需重启生效)
netsh winsock reset

七、清理系统事件日志

# 获取所有日志名称并逐一清除
Get-WinEvent -ListLog * | ForEach-Object {
    [System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog($_.LogName)
} 2>$null

# 或者用 wevtutil(更快)
wevtutil el | ForEach-Object { wevtutil cl $_ } 2>$null

八、清理系统组件存储(WinSxS)

# 常规清理(安全)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup

# 深度清理(不可回滚更新)
Dism.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase

# 清理 SP 备份
Dism.exe /Online /Cleanup-Image /SPSuperseded

九、调用系统磁盘清理工具

# 先配置清理项(弹出设置窗口,勾选后确定)
cleanmgr /sageset:99

# 按配置执行清理(静默)
cleanmgr /sagerun:99

十、清理浏览器缓存(Edge / Chrome)

# Edge 缓存
Remove-Item -Path "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Cache\*" -Recurse -Force -ErrorAction SilentlyContinue

# Chrome 缓存
Remove-Item -Path "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Cache\*" -Recurse -Force -ErrorAction SilentlyContinue

⚠️ 执行前请先关闭对应浏览器。


十一、一键清理脚本(推荐保存为 .ps1

#Requires -RunAsAdministrator
# ============================================
#  Windows 垃圾一键清理脚本 (PowerShell)
#  用法: 右键 → 使用 PowerShell 以管理员运行
# ============================================

$ErrorActionPreference = "SilentlyContinue"
$totalFreed = 0

function Get-FolderSize($path) {
    if (Test-Path $path) {
        return (Get-ChildItem $path -Recurse -Force -ErrorAction SilentlyContinue |
                Measure-Object -Property Length -Sum).Sum
    }
    return 0
}

function Clean-Folder($path, $label) {
    $before = Get-FolderSize $path
    Remove-Item -Path "$path\*" -Recurse -Force -ErrorAction SilentlyContinue
    $after = Get-FolderSize $path
    $freed = [math]::Max(0, $before - $after)
    $script:totalFreed += $freed
    Write-Host ("  [√] {0,-20} 释放: {1:N2} MB" -f $label, ($freed / 1MB)) -ForegroundColor Green
}

Write-Host "`n===== Windows 垃圾清理开始 =====`n" -ForegroundColor Cyan

# 1. 临时文件
Clean-Folder $env:TEMP              "用户临时文件"
Clean-Folder "C:\Windows\Temp"      "系统临时文件"

# 2. 预读取缓存
Clean-Folder "C:\Windows\Prefetch"  "预读取缓存"

# 3. Windows 更新缓存
Stop-Service wuauserv -Force
Stop-Service bits -Force
Clean-Folder "C:\Windows\SoftwareDistribution\Download" "更新缓存"
Start-Service wuauserv
Start-Service bits

# 4. 缩略图缓存
Remove-Item "$env:LOCALAPPDATA\Microsoft\Windows\Explorer\thumbcache_*.db" -Force
Write-Host "  [√] 缩略图缓存已清理" -ForegroundColor Green

# 5. 回收站
Clear-RecycleBin -Force
Write-Host "  [√] 回收站已清空" -ForegroundColor Green

# 6. DNS 缓存
Clear-DnsClientCache
Write-Host "  [√] DNS 缓存已刷新" -ForegroundColor Green

# 7. 系统日志
wevtutil el | ForEach-Object { wevtutil cl $_ } 2>$null
Write-Host "  [√] 系统事件日志已清理" -ForegroundColor Green

# 8. DISM 组件清理
Write-Host "`n  [*] 正在清理系统组件(可能需要几分钟)..." -ForegroundColor Yellow
Dism.exe /Online /Cleanup-Image /StartComponentCleanup | Out-Null
Write-Host "  [√] 系统组件清理完成" -ForegroundColor Green

# 汇总
Write-Host "`n===== 清理完成!共释放: $([math]::Round($totalFreed / 1MB, 2)) MB =====`n" -ForegroundColor Cyan
pause

运行方式

# 如果遇到执行策略限制,先执行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

# 然后运行脚本
.\Clean-Windows.ps1

⚠️ 注意事项

项目 说明
权限 必须以管理员身份运行
-ErrorAction SilentlyContinue 跳过被占用/无权限的文件,避免报错中断
/ResetBase 执行后无法卸载已安装的更新
浏览器缓存 清理前需关闭浏览器
事件日志 清除后​不可恢复​,排查问题前慎用
建议频率 常规清理每月一次;DISM 每季度一次即可