可通过powershell脚本定期检查磁盘使用率,当剩余空间低于阈值时自动邮件/弹窗/写日志提醒;核心步骤为:用get-wmiobject win32_volume获取本地硬盘信息,计算使用率,按百分比或绝对值判断阈值,再触发响应动作,并通过任务计划程序定时执行。
可以通过 powershell 脚本定期检查磁盘使用率,当剩余空间低于设定阈值时,自动发送邮件、弹窗或写入事件日志来提醒。核心在于获取磁盘信息、判断条件、触发响应动作。
获取磁盘使用状态
使用 Get-PSDrive 或 Get-WmiObject Win32_Volume(推荐后者,支持更多属性如总空间、已用空间、标签)获取各卷信息。例如:
Get-WmiObject Win32_Volume -Filter "DriveType=3" | Select-Object DriveLetter, Capacity, FreeSpace, Label
其中 DriveType=3 表示本地硬盘(排除光驱、网络驱动器等),FreeSpace 是字节数,需换算为 GB 并计算使用率。
设置并判断阈值条件
定义剩余空间百分比阈值(如 15%)或剩余容量阈值(如 10GB)。建议两者结合更稳妥——尤其对系统盘(C:)优先按百分比,对大容量数据盘可设绝对值。
计算逻辑示例(以百分比为例):
- $UsedPercent = [math]::Round((($vol.Capacity - $vol.FreeSpace) / $vol.Capacity) * 100, 1)
- 若 $UsedPercent -ge 85(即已用 ≥85%,等效剩余 ≤15%),则触发告警
实现自动提醒方式
根据使用场景选择一种或多种提醒方式:
- 发邮件:用 Send-MailMessage,需提前配置 SMTP 服务器、发件人、收件人;建议在脚本开头加 -Credential 参数或使用安全凭据文件
- 弹窗提示:用 [System.Windows.Forms.MessageBox]::Show(),适合交互式桌面环境(需加载 Add-Type -AssemblyName System.Windows.Forms)
- 写入 Windows 事件日志:用 Write-EventLog 或 Write-Warning,便于集中监控和后续用 Event Viewer 查看
- 播放声音或记录到文件:简单辅助手段,如 [console]::beep(500,300) 或 Out-File -Append
部署为定时任务
把脚本保存为 Check-DiskSpace.ps1 后,用 Windows 任务计划程序定期运行:
- 操作设置为启动程序:powershell.exe
- 参数填:-ExecutionPolicy Bypass -File "C:\Scripts\Check-DiskSpace.ps1"
- 建议每 30 分钟或 1 小时运行一次,避免过于频繁影响性能
- 勾选“不管用户是否登录都要运行”,并启用“不存储密码时只在用户登录时运行”外的兼容选项(如配置为 SYSTEM 用户或指定账户)











