需用任务计划程序监听alarmhost日志事件id 1001触发powershell脚本发送邮件,脚本需配置smtp参数并启用remotesigned策略、闹钟通知权限及锁屏显示。

要在电脑上实现闹钟响铃后自动发送通知邮件,需将系统闹钟触发与PowerShell邮件发送能力串联起来,不能依赖图形界面应用被动响应,必须用任务计划程序作为调度中枢,让闹钟动作变成可编程事件。
用任务计划程序联动闹钟与邮件发送
第一步:按 Win + R 输入 taskschd.msc 回车,打开任务计划程序。
第二步:右侧点击【创建基本任务】→ 命名为“响铃后发邮件” → 点击下一步。
第三步:触发器选【当特定事件被记录时】→ 日志选【Application】→ 来源选【AlarmHost】→ 事件ID填1001(这是Windows闹钟成功触发后写入系统日志的标准事件码;若无此ID,说明闹钟未启用通知权限或未真正响过)。
第四步:操作选【启动程序】→ 程序或脚本栏填powershell.exe → 添加参数栏粘贴以下命令(请将邮箱、密码、SMTP等占位符全部替换成你的真实信息):
-ExecutionPolicy Bypass -File "C:\Scripts\SendAlarmEmail.ps1"
第五步:点击完成。此时任务已注册,但还不能运行——因为系统默认禁止脚本执行,且事件日志监听需手动启用。
准备PowerShell邮件脚本
新建记事本 → 粘贴以下完整代码 → 保存为 C:\Scripts\SendAlarmEmail.ps1(路径必须与上一步完全一致,且Scripts文件夹需提前手动创建):
$From = "your_email@example.com"
$To = "recipient@company.com"
$Subject = "⏰ 电脑闹钟已触发提醒"
$Body = "本地时间 $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss'),系统闹钟已响铃。"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = 587
$Username = "your_email@example.com"
$Password = "your_app_password"
Send-MailMessage -From $From -To $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer -Port $SMTPPort -Credential (New-Object System.Management.Automation.PSCredential($Username, (ConvertTo-SecureString $Password -AsPlainText -Force))) -UseSsl
注意:Gmail用户必须使用App Password(应用专用密码),不能直接填账户登录密码;Outlook/Office365用户请改用smtp.office365.com及端口587,并确保账户开启双重验证后生成App Password。
启用关键系统权限
方法一:允许脚本执行
以管理员身份运行PowerShell → 执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser → 输入Y确认。这一步不执行,脚本永远被拦截。
方法二:授权闹钟写日志
进入【设置 > 系统 > 通知】→ 找到【闹钟和时钟】→ 开启【允许通知】和【在锁屏上显示通知】→ 返回上一级,打开【通知设置】→ 关闭【仅在使用电池时关闭通知】选项。否则AlarmHost不会写入事件ID 1001。
方法三:验证事件是否真实产生
打开【事件查看器 > Windows日志 > 应用程序】→ 右侧点击【筛选当前日志】→ 在“事件来源”下拉框中选【AlarmHost】→ 点击确定。若列表为空,说明闹钟从未真正触发过,后续所有配置都无效。











