ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

C盘空间清理实战:用PowerShell脚本安全释放磁盘缓存

2026/9/4 4:44:48 拓冰建站 浏览量
C盘空间清理实战:用PowerShell脚本安全释放磁盘缓存 C 盘又快红了这可能是 Windows 用户一年会碰到好几次的经典问题。打开“此电脑”一看C 盘剩余空间变成了红色安装新软件不敢装游戏更新包下载不动浏览器缓存一天比一天大。很多人的第一反应是下载一个“电脑清理工具”或者“一键优化小工具”结果装完之后磁盘不但没干净多少反而多出来几个全家桶软件、弹窗广告和开机自启项。我写过很多次类似结论这次再说一遍磁盘清理的关键不是“哪个工具清理能力强”而是“你知不知道哪些文件可以安全删除、哪些只是看起来可以删、哪些绝对不能碰”。优秀的一键清理小工具本质是把一套经过验证的清理规则封装成脚本或程序不靠谱的清理工具本质是拿几个高风险命令加上捆绑推广换你的空间。这篇文章会把磁盘清理这件事讲透。从 Windows 磁盘空间占用到系统自带清理工具从手动清理到底层思路最后给你一套可以自己掌控、带安全边界的“一键清理”脚本并解释它为什么比盲目下载一个“清理大师”更可靠。读完你可以直接把它保存为 PowerShell 脚本以后每次 C 盘变红双击运行一次就知道空间去哪了也能安全释放出一批可重建的缓存文件。1. Windows 磁盘空间为什么会悄悄消失先说一个基本判断大多数人的 C 盘空间不是“消失”了而是被系统和软件写到了你看不见的地方。你天天看的“桌面”可能只有几个电影但你不知道系统更新补丁的缓存、软件解压包残留、Windows 错误报告、浏览器缓存、缩略图库这些内容正在不断累积。为了理解磁盘清理工具到底在清什么我们先把 Windows 里常见的磁盘占用源分个类。常见位置有哪些内容能不能直接清理%TEMP%和C:\Windows\Temp系统与用户临时缓存通常由安装程序或软件运行产生可以建议关闭正在运行的软件后清理C:\Windows\SoftwareDistribution\DownloadWindows Update 下载的更新包临时文件可以清理但系统正在更新时不要动C:\Windows.old旧系统备份残留一般出现在大版本升级后通过系统工具“清理系统文件”删除尽量不手动删C:\Windows\WinSxSWindows 组件存储包括系统文件备份和旧组件不要手动删只能用 DISM 组件清理C:\Windows\Installer已安装软件的 MSI 安装源补丁不要直接删清理不当会导致软件无法卸载用户浏览器的 Cache、Cookies网页缓存和历史数据可以在浏览器设置里更快hiberfil.sys休眠/快速启动使用的系统文件如果确定不用休眠和快速启动可关闭pagefile.sys虚拟内存分页文件不建议直接删建议移动到其他盘回收站已删除文件占位可以但请先确认没有要恢复的文件缩略图缓存资源管理器生成的图片/视频预览缓存可以Windows 会自动重建这里真正容易踩坑的地方在于像C:\Windows\WinSxS这种目录看起来动辄十几个 GB于是网上有人说“把它删掉可以救急”但直接删除组件存储会破坏系统更新能力和文件修复能力。系统在安装补丁时依赖 WinSxS 里的旧版本文件一旦损坏后续更新会反复报错。磁盘清理工具如果把这些高风险目录也开发成“一键删除”的菜单项那不是在帮你清理是在帮你重装系统。理解了这一点再看各种“磁盘满”问题就有个判断框架优先清理的产品一定是可重建缓存、临时文件、下载缓存和日志而需要谨慎处理的是系统文件、程序安装源和个人数据。任何宣称“什么都敢清”的工具本质上都是让你替它的鲁莽逻辑买单。2. Windows 自带清理能力到底够用吗很多用户不知道Windows 系统其实自带了两套磁盘清理能力一套是传统的“磁盘清理”一套是现代的“存储感知”。传统磁盘清理工具叫cleanmgr从 Windows 98 时代一路走到 Windows 11。打开方式很简单按Win R输入cleanmgr或者直接开始菜单搜索“磁盘清理”。它可以让用户勾选要清理的类别例如 Windows 更新清理、回收站、临时文件、缩略图等。如果你点击磁盘清理窗口里的“清理系统文件”按钮它还会多扫描出一批系统级项目其中就包括 Windows 更新清理、Windows 升级日志、旧的 Windows 安装文件等。这些项目常常是几个 GB 到十几个 GB 的大块头。命令行方式也同样可用:: 打开 C 盘磁盘清理图形窗口 cleanmgr /d C: :: 打开磁盘清理并保存预设配置弹窗勾选后配置会保存 cleanmgr /sageset:65535 :: 使用已保存的预设配置执行静默清理 cleanmgr /sagerun:65535/sageset:65535是关键它会弹出一个需要逐项勾选的窗口你勾选完毕后这次选择的项目会被记录到注册表里。之后再用/sagerun:65535系统会按上次勾选的配置直接执行不需要你再点窗口。这就是 Windows 自带能力里比较接近“一键”的机制。另一个现代功能是“存储感知”。路径在“设置 - 系统 - 存储 - 存储感知”。开启之后Windows 会在磁盘空间不足时自动清理临时文件、回收站内容以及长时间未使用的 Windows 更新清理文件。你还可以配置“自动清理时间”和“临时文件清理计划”。但系统自带能力有一个明显短板它很安全但不够主动覆盖也不完整。用户临时目录里某些大型软件产生的缓存在磁盘清理的中文界面下并不会全部暴露例如 Electron 应用、开发工具、包管理器的缓存目录而且系统自带清理需要人工打开几次甚至手动勾选不像一个小工具那样可以“一键完成”。这也解释了一个现象很多 GitHub 上被广泛使用的 Windows 清理小工具并不是发明了什么新清法而是把系统清理策略做成了一套白名单脚本。它们会自动扫描用户临时文件、崩溃转储、更新缓存和日志目录先计算每个目录占用大小再按类别执行清理并且把执行过程输出到日志里。这种做法本质上是在解决“Windows 自带清理不够透明、不够集中、不够自动化”的痛点。3. 磁盘清理小工具的核心理念安全边界想自己写或者挑选一个磁盘清理小工具先别急着看它清理速度有多快而要看边界在哪儿。我给这个“边界”定义了五个原则第一只清理可重建或可下载的数据。临时文件、缩略图、崩溃转储、更新缓存、错误报告日志都属于这一类删了最多重新缓存不会造成义数据丢失。个人文档、软件安装源、项目代码、配置目录默认不在清列清单中。第二必须预计算。一个靠谱的小工具在执行删除前应该先列出“每个目录当前占用了多少空间、将要清理哪些文件”而不是上来就Remove-Item *。用户看到空间数字估算才敢放心执行。第三不能清理正在被占用的关键文件。运行中的软件都会锁定临时文件或目录脚本应静默跳过失败项而不是反复报错或强制结束用户进程。强制杀进程再清理是很多“猛优化”工具的骚操作也是电脑蓝屏事故的重要来源。第四必须有日志。哪怕是一行行输出到控制台也要让用户看到每一步做了什么、哪些目录不存在、哪些文件因占用而跳过。看不到执行结果的清理工具等于黑盒风险难以追溯。第五高危项目默认不参与。默认情况下“一键清理”应该只清理系统临时目录、用户临时目录、缩略图缓存、崩溃转储、错误报告队列等低风险项。像 Windows 更新缓存、磁盘清理系统更新、旧系统备份可以通过专门参数或额外动作显式触发而不是默认伴随一键完成。理解这套边界之后你会发现一个反直觉的事实越专业的磁盘清理工具菜单设计越保守。真正危险的清理程序恰恰是那些把“深度清理”“强力清理”“清理全部可回收垃圾”做大按钮的产品因为你根本不知道它会把哪些文件判成“垃圾”。4. 环境准备管理员权限 还原点 执行策略在运行任何清理脚本之前必须先做好三件环境准备。第一以管理员身份运行。清理C:\Windows\Temp、Windows 更新下载目录很多操作需要管理员权限。普通用户的 PowerShell 没有权限访问部分系统目录即使脚本逻辑没问题也会在每一步都得到“访问被拒绝”的结果。第二创建系统还原点。清理过程虽然只针对缓存但没有人能保证所有软件的缓存逻辑都是一样的万一你自己扩展了清理项风险就会进来。在第一次运行脚本前建议手动创建一个还原点打开控制面板选择“系统和安全 - 系统 - 系统保护”选择“创建”。弹出窗口为还原点起个名字例如“C盘清理前备份”点击创建等待系统完成即可。也可以用管理员 PowerShell 创建Checkpoint-Computer -Description C盘清理前备份 -RestorePointType MODIFY_SETTINGS注意创建系统还原点需要系统保护功能已经开启。如果你之前用“减肥”工具关闭了系统保护这个命令会直接报错这也是很多优化工具埋下的坑之一。第三检查系统版本并决定脚本如何执行。按Win R输入winver回车你会看到一个“关于 Windows”弹窗。本文的清理思路适用于 Windows 10/Windows 11不需要精确到具体构建号但如果是老旧系统版本路径可能略有不同。PowerShell 脚本还有一个执行策略问题。打开 PowerShell 后如果直接运行脚本文件可能会收到“禁止运行脚本”的报错。解决办法有两种一种是在当前终端临时放行脚本执行不改变系统设置Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass另一种是把脚本直接粘贴到 PowerShell 窗口里逐行执行。对于一次性清理任务这个办法最简单也最能看清每一步输出。清理类操作还有一个容易被忽略的注意事项先关闭正在运行的重量级软件。浏览器、微信、Office、开发工具都在运行时会频繁写临时文件脚本在删除时大概率会跳过一部分被锁定的文件导致清理效果不佳。更稳妥的顺序是先保存工作内容关闭无关软件再运行清理脚本。5. 动手实现一个带安全边界的 PowerShell 磁盘清理工具很多人下载小工具的真正顾虑是“不确定它会不会顺便删掉有用的东西”。解决方案其实很简单自己写一个小工具或者至少要能把脚本读一遍。这里我提供一个思路清晰的清理脚本它默认只做“预扫描”不加-Clean参数就不会删除任何文件。这能保证你在了解它将做什么之前它绝对不能伤害你。5.1 先做一个磁盘目录占用统计脚本动手清理前最好先知道空间去哪了。下面的 PowerShell 函数可以统计一个目录的实际占用大小它遍历文件夹下的所有文件并累加长度能跳过无权限访问的目录适合在磁盘清理前快速摸一遍底。# 文件路径C:\Scripts\Get-DirSize.ps1 function Get-DirSize { param( [string]$Path ) if (-not (Test-Path -LiteralPath $Path)) { return 0 } $totalBytes 0 $files Get-ChildItem -LiteralPath $Path -Recurse -Force -File -ErrorAction SilentlyContinue foreach ($file in $files) { $totalBytes $file.Length } return $totalBytes } # 使用示例列出常见高占用目录的大小 $targetPaths ( $env:TEMP, $env:SystemRoot\Temp, $env:SystemRoot\SoftwareDistribution\Download, $env:LOCALAPPDATA\Microsoft\Windows\Explorer, $env:LOCALAPPDATA\CrashDumps, $env:ProgramData\Microsoft\Windows\WER ) foreach ($p in $targetPaths) { $size Get-DirSize -Path $p $sizeMB [math]::Round($size / 1MB, 2) Write-Host ({0,-65} {1,10} MB -f $p, $sizeMB) }把这个文件保存为Get-DirSize.ps1在 PowerShell 里运行powershell -ExecutionPolicy Bypass -File C:\Scripts\Get-DirSize.ps1输出大致是这样的C:\Users\test\AppData\Local\Temp 1523.12 MB C:\Windows\Temp 345.78 MB C:\Windows\SoftwareDistribution\Download 2145.90 MB C:\Users\test\AppData\Local\Microsoft\Windows\Explorer 23.56 MB C:\Users\test\AppData\Local\CrashDumps 107.42 MB C:\ProgramData\Microsoft\Windows\WER 542.13 MB输出里的每一项并不都应该立即删除。例如SoftwareDistribution\Download是 Windows 更新下载缓存虽然可以清理但如果你正处在系统更新流程中清理它可能导致更新重新下载。这里的价值是先确认“空间在哪个目录”再决定动哪一块。5.2 安全的一键清理脚本主体下面的清理脚本会把“预扫描”和“执行清理”分成两个模式。不带任何参数运行它只会统计并列出不同清理项的大小带上-Clean参数才真正执行删除操作。默认的清理范围只包括低风险、可重建、可再生成的缓存内容。# 文件路径C:\Scripts\Safe-DiskClean.ps1 param( [switch]$Clean, [switch]$IncludeUpdateCache ) $ErrorActionPreference Continue # 清理项清单 $cleanupTargets ( { Name 用户临时文件夹 Path $env:TEMP }, { Name Windows 临时目录 Path $env:SystemRoot\Temp }, { Name 资源管理器缩略图缓存 Path $env:LOCALAPPDATA\Microsoft\Windows\Explorer }, { Name 崩溃转储目录 Path $env:LOCALAPPDATA\CrashDumps }, { Name 程序错误报告队列 Path $env:ProgramData\Microsoft\Windows\WER\ReportQueue }, { Name 程序错误报告存档 Path $env:ProgramData\Microsoft\Windows\WER\ReportArchive } ) # 是否显式要求清理 Windows 更新下载缓存 if ($IncludeUpdateCache) { $cleanupTargets { Name Windows 更新下载缓存 Path $env:SystemRoot\SoftwareDistribution\Download } } # 计算目录大小 function Get-FolderSize { param([string]$FolderPath) if (-not (Test-Path -LiteralPath $FolderPath)) { return 0 } $bytes 0 Get-ChildItem -LiteralPath $FolderPath -Recurse -Force -File -ErrorAction SilentlyContinue | ForEach-Object { $bytes $_.Length } return $bytes } # 清空目录内容但保留目录本身 function Clear-DirectoryContents { param([string]$FolderPath) if (-not (Test-Path -LiteralPath $FolderPath)) { return } Get-ChildItem -LiteralPath $FolderPath -Force -ErrorAction SilentlyContinue | ForEach-Object { Remove-Item -LiteralPath $_.FullName -Recurse -Force -ErrorAction SilentlyContinue } } Write-Host if ($Clean) { Write-Host 当前模式执行清理 } else { Write-Host 当前模式仅扫描预览模式 Write-Host 如确认要清理请加 -Clean 参数重新运行 } Write-Host $totalCleanable 0 foreach ($target in $cleanupTargets) { $path $target.Path if (-not (Test-Path -LiteralPath $path)) { Write-Host ([跳过] {0} - 目录不存在: {1} -f $target.Name, $path) continue } $size Get-FolderSize -FolderPath $path $sizeMB [math]::Round($size / 1MB, 2) $totalCleanable $size Write-Host ([项目] {0} -f $target.Name) Write-Host ( 路径: {0} -f $path) Write-Host ( 大小: {0} MB -f $sizeMB) if ($Clean) { Clear-DirectoryContents -FolderPath $path Write-Host 已清理 } Write-Host } $totalGB [math]::Round($totalCleanable / 1GB, 2) Write-Host (预计可释放空间: {0} GB -f $totalGB)几个关键点需要解释清楚。第一-Clean参数承担安全开关的职责。没有它脚本只统计并展示不做任何破坏性动作。你在第一次运行时可以放心看到每一项目录路径和大小确认无误后再加参数第二次运行。第二Clear-DirectoryContents函数删除的是目录下的内容而不是目录自身。例如用户临时文件夹路径C:\Users\tom\AppData\Local\Temp本身会被保留里面可能正在被某个软件引用的临时文件会被清理但系统不会因为临时目录消失而报错。目录本身往往是软件创建和依赖的。第三文件夹大小计算和清理是两个阶段但共用了同一个路径清单。这意味着脚本显示的数字是真实路径计算出来的不是估算出来的。对于像C:\Windows\Temp这类目录大小通常能到几百 MB但如果你从来不清理部分机器甚至已经存在几个 GB 的日志和安装缓存。5.3 把系统磁盘清理命令也接入一键流程除了 PowerShell 脚本你也可以把系统自带的磁盘清理命令整合到一个小工具里让“一键清理”兼顾系统更新残留。先手工在第一次运行时配置一次清理项cleanmgr /sageset:65535弹窗里勾选你想要的项目例如“Windows 更新清理”“临时文件”“缩略图”“回收站”等。确认后这套设置会写入注册表。之后的“一键清理”只需要运行cleanmgr /sagerun:65535这条命令不会弹出交互窗口而是按保存的设置直接执行。适合放到批处理脚本里和上述 PowerShell 脚本配合使用。一个很常见的做法是先运行 PowerShell 脚本清普通缓存再运行cleanmgr /sagerun处理系统级清理项。但这里要提醒一个容易忽略的问题/sageset保存后这台机器上的用户使用同样的配置运行是一次性的只对当前用户的配置生效。如果你在管理员账户下配置那么管理员运行批次任务时才有效。换句话说在给不同机器做清理时需要重复一次配置步骤。5.4 如何把它变成真正“一键”的小工具日常使用中每次打开 PowerShell 去cd到脚本目录再敲命令仍然不够“一键”。有两个改进方向。第一个方向创建一个批处理文件一键清理.bat放在桌面或者常用目录echo off chcp 65001 nul powershell -ExecutionPolicy Bypass -File C:\Scripts\Safe-DiskClean.ps1 -Clean echo 清理完成按任意键退出。 pause nul第二个方向把脚本固定为右键菜单操作。按下Win R输入shell:sendto打开“发送到”目录把脚本的快捷方式放进去。之后在任何文件上右键“发送到 - Safe-DiskClean.ps1”就能快速带参数执行。这个方案比较适合管理多台电脑的运维人员日常交付桌面支持时也很快。改成右键菜单或快速启动后仍然要把安全开关留在脚本内部。也就是说批量执行时依然先用无参模式预扫真正检查过目录路径才加-Clean。否则“一键”只代表方便不代表可以失去判断。6. 运行结果与效果验证第一次运行Safe-DiskClean.ps1时建议先用扫描模式预期输出类似 当前模式仅扫描预览模式 如确认要清理请加 -Clean 参数重新运行 [项目] 用户临时文件夹 路径: C:\Users\tom\AppData\Local\Temp 大小: 1523.12 MB [项目] Windows 临时目录 路径: C:\Windows\Temp 大小: 345.78 MB ... 预计可释放空间: 3.12 GB看到这个输出说明脚本能正确识别目录和文件。接着关闭正在运行的大型软件再执行powershell -ExecutionPolicy Bypass -File C:\Scripts\Safe-DiskClean.ps1 -Clean执行结束后脚本会再次输出各项状态并在清理完成后打印预计可释放空间。不过要注意这个数字是“预计可释放”实际是否真的释放取决于是否有文件因为被占用而被跳过。对于低风险目录正常情况下大部分文件都能删除。验证是否成功最简单的方法是查看 C 盘的可用空间。可以在文件资源管理器里看也可以用命令fsutil volume diskfree C:输出中的Avail字段就是当前可用字节数。把它换算成 GB$drive Get-PSDrive C {0:N2} GB -f ($drive.Free / 1GB)清理前后各执行一次对比可用空间变化就能知道这次清理到底释放了多少。如果运行脚本后 C 盘可用空间没有明显变化先检查三件事。第一是否真的开启了-Clean参数扫描模式不会删除任何文件。第二脚本里的目录是否存在且确实有文件部分系统因为默认不开启崩溃转储CrashDumps目录可能不存在。第三空间大概率不在临时目录而在系统更新残留、休眠文件或某个用户数据目录需要回到 5.1 的目录占用统计脚本继续排查。这里还要提到 Windows 重启之后再清理一次的重要性。某些文件在系统运行期间一直处于占用状态脚本没法删除重启后没有再运行的软件锁定它们第二次清理往往能多释放几百 MB。常见的是 Windows 临时目录和更新下载目录。7. 常见问题与排查方法可以把磁盘清理过程中可能遇到的问题整理成一张表格先快速定位再针对性解决。问题现象可能原因排查方式解决方案清理后空间没有明显变化实际大文件在个人目录、休眠文件或系统更新残留中用目录占用统计脚本扫描一级目录检查用户文件夹下的下载、桌面、虚拟机文件盘符删除文件时不断出现“正在使用”软件仍在运行并锁定了临时文件打开任务管理器查看占用的进程先退出相关软件再清理必要时重启后二次清理SoftwareDistribution\Download清理后系统更新反复失败系统正在下载或安装更新包缓存被破坏查看 Windows 更新界面错误清理前先确认没有进行中的更新必要时运行wuauclt /detectnow系统还原点创建失败系统保护未开启或磁盘空间不足打开系统保护设置查看状态开启保护后重新创建或调整最大使用量脚本报“禁止运行脚本”PowerShell 执行策略限制查看报错提示用-ExecutionPolicy Bypass参数启动当前进程杀毒软件拦截脚本清理脚本被误报查看安全中心历史记录从源码审查确认无恶意逻辑后添加信任C 盘明明还有很多空间但系统提示空间不足分区空间紧张但可用空间存在碎片检查休眠文件和页面文件大小合理配置休眠文件和虚拟内存不要依赖“压缩空间”工具其中最容易被忽视的是休眠文件hiberfil.sys。如果电脑开启了休眠和“快速启动”系统会在 C 盘根目录下保存一个等同于物理内存大小的休眠文件很多机器上这个文件能占到 6 GB 到 16 GB。普通磁盘清理工具不会帮你清掉它因为关闭休眠会影响“快速启动”的功能。如果你能接受开机速度略有变化确实可以关闭休眠来立即释放空间:: 管理员身份打开终端执行立即删除 hiberfil.sys powercfg /h off如果想在保留休眠能力的同时减少体积可以把休眠文件压缩比率调低powercfg /h /type reduced这属于系统级的空间调整和清理缓存是两码事。做之前要考虑功能取舍不要仅仅为了让 C 盘数字好看就禁掉所有功能。另一个常见的“空间黑洞”是C:\Windows\WinSxS。如果你发现这个目录非常大不要直接删正确方法是使用 DISM 组件清理Dism.exe /Online /Cleanup-Image /StartComponentCleanup这条命令会删除组件存储中已被替换的旧版本组件同时不影响当前系统运行。执行过程可能持续几分钟到十几分钟期间不要强制关机。8. 最佳实践与工程建议到这里其实你已经可以自己控制磁盘清理了。但想减少以后重复清理的频率还需要从维护层面调整几个习惯。第一不要总把“一键清理”当救火队员而要把 Windows 的自动恢复能力用起来。进入“设置 - 系统 - 存储”开启“存储感知”把“释放空间”设置为“每天”。再勾选“自动清理我的临时文件”和“如果回收站中的文件存在超过 30 天则删除它们”。这样系统会在后台默默处理不少低风险垃圾你只需要在 C 盘真的紧张时手动跑一次白名单脚本。第二强烈建议把个人内容目录迁移到非系统盘。Windows 10/11 允许用户把“桌面”“文档”“下载”“图片”等个人文件夹的存储位置换到 D 盘或其他数据盘。操作方法是右键相应文件夹 - 属性 - 位置修改路径。很多人 C 盘变红的头号原因是桌面、虚拟机或视频编辑工程文件直接放在 C 盘用户目录。迁移之后无论系统盘还有多少缓存问题个人数据都不会反噬 C 盘。第三把“预扫描”养成习惯。每次执行清理前先花 10 秒运行统计脚本看看主要占用空间到底是不是临时目录。如果是个人文件就手动移动如果是休眠文件就考虑调整电源设置如果是系统更新残留就交给系统磁盘清理。磁盘满的根因不会永远相同千万不要一套脚本一年到头无脑执行。第四日志和版本管理。给脚本加一个追加日志功能很简单在Safe-DiskClean.ps1里追加$logPath $env:LOCALAPPDATA\DiskCleanHistory.log $logEntry [{0}] 模式: {1}; 预计释放: {2} GB -f (Get-Date), $(if ($Clean) {清理} else {扫描}), $totalGB Add-Content -Path $logPath -Value $logEntry这样你就能回看每次清理的时间、模式和预计释放空间也给排查留下证据。第五把这个脚本放到 Git 仓库里管理。如果是在团队或实验室环境同一个清理需求可能会因为不同机器的软件环境不同而微调。用 Git 保存脚本版本可以避免“昨天还能用的脚本今天改了哪里”这种问题。给脚本标注适用系统版本、测试日期和负责人是比写一堆炫技代码更有效的工程习惯。第六保持最小权限原则。清理系统文件时不要直接申请 System 权限也不要用管理员账号做日常操作。即使是在个人电脑上也建议平时使用标准账号清理时右键以管理员身份运行终端。这样做可以降低误操作和恶意脚本带来的风险。第七关于下载网上的“一键清理小工具”的甄别建议。不是说网上所有小工具都不能用而是你要有一套鉴别标准优先看开源项目源码至少确认它能让你看到清理目标列表尽量选择更新频繁的项目避免十年不维护的老古董缺少新版系统兼容不要使用“清理后需要重启才能生效”的捆绑软件尤其要拒绝那些附带“全家桶”安装行为的优化工具。一个有安全意识的小工具核心逻辑一定敢以脚本形式展示给你而不是藏在编译后的 exe 里。9. 总结与后续方向现在回到开头那个问题C 盘红了怎么办我不建议你马上去下载某个“一键清理工具”而是先做三件事用最小的代价查清 C 盘空间去了哪里、明确哪些目录属于低风险缓存、用脚本或经过源码审查的小工具把清理动作标准化。本文提供的 PowerShell 脚本已经实现了预设的安全策略默认扫描、显式清理、只清理可重建的缓存、删除后保留目录结构、不对正在使用的文件强杀进程。你可以把这三件套用在日常维护里每年做一次目录占用统计判断是否有大型缓存目录在快速增长。每次系统大版本更新后用系统磁盘清理处理 Windows.old 和更新残留。只在 C 盘空间紧张时运行白名单清理脚本且运行前先关闭软件、记录日志。下一步可以继续延伸的方向包括通过任务计划程序让清理脚本在每天凌晨自动执行、写一个更完整的目录白名单机制、把清理日志推送到统一日志平台。对大多数个人用户来说更推荐先学会看Get-PSDrive C的可用空间和用本文脚本做安全清理。磁盘清理的本质从来不是“多强的工具”而是“对自己的 C 盘有哪些内容足够了解”。把能安全删除的文件交给规则和脚本把不能乱动的系统组件留给 Windows 自己管理这才是一个磁盘清理小工具真正该做的事情。