Windows系统默认仅在磁盘剩余空间低于10%时弹出一次提醒,且不显示占用构成;需通过注册表启用低磁盘空间检查(设NoLowDiskSpaceChecks为0),并在资源监视器中实时监控进程级磁盘IO,或用PowerShell脚本实现定时阈值预警。

当Windows系统检测到某个磁盘分区剩余空间低于10%,会自动弹出“低磁盘空间”提醒,但该提醒默认仅触发一次且不显示具体占用构成——你需要主动启用并配置资源占用实时监控路径,才能让系统持续提示关键阈值变化、定位膨胀源头。
开启并自定义磁盘空间不足提醒
Windows本身不提供可调阈值的弹窗提醒,但可通过注册表启用基础预警机制:按Win+R输入regedit→导航至HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Explorer→右键新建DWORD(32位)值,命名为NoLowDiskSpaceChecks→将其数值数据改为0(启用检查);若为1则彻底禁用所有磁盘空间提示。
这一步操作后,系统会在剩余空间跌至约5%时再次触发原生提醒,但【该提醒无日志记录、不可关闭单次弹窗、也不标注哪个文件夹导致空间告急】。
用资源监视器实现进程级实时占用监控
当你需要知道“此刻是谁在疯狂写入磁盘”,而不是等空间耗尽才被通知,资源监视器是唯一原生可查的动态工具。
第一步:Ctrl+Shift+Esc打开任务管理器→切换到“性能”选项卡→点击右下角“打开资源监视器”。
第二步:切换到“磁盘”标签页→观察顶部“磁盘活动”图表下方的“读取(KB/sec)”和“写入(KB/sec)”实时曲线,任一曲线持续高于5000 KB/sec即属异常高负载。
第三步:在下方“磁盘活动”列表中,按“写入(KB/sec)”列降序排列→重点关注“C:\Windows\System32\svchost.exe”“MsMpEng.exe”(Defender扫描)或“SearchIndexer.exe”(索引重建)等进程,它们常在后台突发性占满IO带宽。
注意:此处显示的是当前秒级读写速度,不是空间占用总量;它解决的是“为什么电脑变卡”,而非“为什么C盘只剩2GB”。
设置PowerShell脚本定时检查并弹窗预警
把人工检查变成自动报警,只需一段可复用的脚本,它会在你设定的阈值(如剩余
方法一:创建警报脚本
右键开始菜单→选择“终端(管理员)”→粘贴执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force; $thresholdGB = 8; $drive = "C:"; $free = (Get-PSDrive $drive).Free / 1GB; if ($free -lt $thresholdGB) { [System.Windows.Forms.MessageBox]::Show("⚠️ $drive 剩余空间仅 $($free.ToString('F1')) GB!请检查:`n1. C:\Users\YourName\AppData\Local\Temp`n2. C:\Windows\Temp`n3. C:\$Recycle.Bin", "磁盘空间告警", "OK", "Warning") }
方法二:设为每日启动项
将上述命令保存为check_disk.ps1→在任务计划程序中新建基本任务→触发器设为“登录时”→操作设为“启动程序”,程序路径填powershell.exe,参数填 -ExecutionPolicy Bypass -File "D:\scripts\check_disk.ps1"。
这一步的关键在于【脚本中YourName需手动替换成你账户名,否则AppData路径无效】;若你不确定,先运行whoami命令查看当前用户名。










