Windows性能监控器(PerfMon)需结合任务计划程序与命令行邮件工具实现邮件告警:可选SmtpMailSender(绿色单文件,配置SMTP及授权码)或PowerShell Send-MailMessage(原生支持,需安全传入凭据并启用SSL),通过性能计数器阈值触发脚本发送邮件。
windows 自带性能监控器(perfmon)本身不支持直接发邮件,但可结合任务计划程序与命令行邮件工具实现完整预警链路。核心思路是:用性能计数器警报触发任务计划,由任务执行脚本调用邮件发送程序。
选择并配置命令行邮件工具
推荐两种轻量、免安装方案:
- SmtpMailSender:绿色单文件,适合快速部署。下载后双击运行,进入 Settings 配置 SMTP 服务器(如 QQ 邮箱用 smtp.qq.com:587)、发件邮箱、第三方授权码(非登录密码)。配置成功后生成 config.conf,可后续修改;测试发送无误即表示可用。
- PowerShell Send-MailMessage:系统原生支持,无需额外下载。需确保 PowerShell 版本 ≥3.0。脚本中需明文或安全方式传入凭据,建议使用 ConvertTo-SecureString + PSCredential 构造认证对象,并启用 -UseSsl 参数。
创建可执行的邮件发送脚本
脚本必须能被任务计划程序稳定调用,注意路径和编码:
- 若用 SmtpMailSender,新建 alert.cmd,内容示例:
smtpmailsender.exe -f "admin@domain.com" -t "ops@domain.com" -s "【磁盘告警】C盘剩余不足10%" -b "当前可用空间:8.2GB" -send
保存为 ANSI 编码(避免中文乱码),且“起始于”字段须填脚本所在完整目录(如 D:\mail\)。 - 若用 PowerShell,新建 sendalert.ps1,首行加 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(仅首次运行需手动确认),再调用 Send-MailMessage。脚本需右键“使用 PowerShell 运行”单独测试通过。
设置性能计数器警报并绑定任务
在“性能监视器 → 数据收集器集 → 用户定义”中新建:
- 类型选“性能计数器警报”,添加计数器如 LogicalDisk → % Free Space(磁盘空闲百分比)或 Processor → % Processor Time(CPU 使用率)。
- 阈值按需设定:例如 C 盘空闲低于 10% 触发,或 CPU 持续 5 分钟超 95% 触发。
- 右键该数据收集器 → 属性 → 警报 → 警告操作 → 勾选“运行此程序”,浏览选择上面准备好的 .cmd 或 .ps1 文件。
- 关键细节:任务计划中“操作”页的“起始于”路径必须准确;若脚本依赖环境变量或当前目录,应在脚本开头用 cd /d 显式切换路径。
验证与维护要点
配置完成后务必全流程验证:
- 手动运行脚本,确认邮箱能收到测试邮件;
- 临时调高警报阈值(如设为 99%),观察是否触发;
- 检查 Windows 事件查看器 → 应用程序和服务日志 → Microsoft → Windows → Diagnosis-PLA,确认有无“Data Collector Set Started/Stopped”或错误事件;
- 授权码、SMTP 端口、SSL 设置需与邮箱服务商要求一致(如 Gmail 必须用 App Password,163 需开启 SMTP 服务)。











