最近有一个场景需要监控家里的电脑的开机情况,远程操作开机并启动一些服务,需要知道开机状态。实现开机之后自动发送邮件通知。(七月更新增加:采用Windows任务计划完成开机发送邮件,高效快捷。
网上有很多大神都是直接自己手撸代码,实现一个Windows服务,或者VB写的,过于专业。
小白只想偷懒,于是找到了一个工具 Blat官网 可以直接实现邮件功能
- 首先下载Blat
工具下载地址 https://sourceforge.net/projects/blat/files/ 。解压放到C盘创建的全英文目录下 - 创建bat文件
在当前目录新建一个 send.bat 文件,因为电脑开机连接网络需要时间,所以发送20次ping做延迟发送
可以根据自己的实际网络情况调整, C:\quickStart\blat3222\full\blat.exe 替换成你自己的路径
填入以下内容。
BAT文件内容
::chcp 65001 设置编码,防止中文乱码
::最后加入 pause 可显示窗口用于排查问题,可删除
chcp 65001
rem ----延时执行----
@echo off
ping www.baidu.com -n 20
f:
rem ----邮件主题----
set s="%time% %computername% 开机"
rem ----邮件内容-----
set body="%date% %time% %computername% %username% 开机"
rem ----收件邮箱-----
set t=xxx@qq.com
rem ----发件邮箱-----
set f=xxx@163.com
rem ----邮箱秘钥-----
set pw=xxx
rem ----执行发送-----
C:\quickStart\blat3222\full\blat.exe -body %body% -s %s% -t %t% -server smtp.163.com -f %f% -u %f% -pw %pw%
::pause
配置说明
%date%
会显示为电脑日期%time%
会显示为电脑时间%computername%
会显示为电脑名称%username%
会显示为电脑用户名- server
参数 如果用QQ邮箱发送填 smtp.qq.com;163邮箱发送填smtp.163.com
- 测试运行
双击send.bat
即可触发运行
收到邮件
- 设置自启发送
方法一:配置window任务计划程序(开机就触发,推荐)
找到任务计划程序。创建一个文件夹,然后右键 创建基本任务。输入任务名称(随意名称)
脚本选择创建好的send.bat
勾选 打开此任务属性对话框
配置不管用户是否登录都要运行、最高权限(会需要输入账户密码)
编辑触发器设置延迟执行(防止启动时电脑还未完成联网,导致发送邮件失败)
条件栏-去掉电源选项,勾选网络选项
点击确定-输入密码-重启验证即可
方法二:加入Windows自启项目录(需要用户登录之后,才能触发)
win+R打开运行窗口 -> 输入shell:startup
选中 send.bat
右键创建快捷方式,将快捷方式移动到启动目录
添加之后,可以在应用-启动中看到
设置windows执行计划任务隐藏弹窗
使用VBS脚本执行,
脚本内容:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C D:\Files\APPService\AppReader.exe", 0, TRUE)
【D:\Files\APPService\AppReader.exe】为要执行的exe文件
隐藏窗口只需要设置Run的第二个参数为0即可,显示则设置为1;
在计划任务中把vbs脚本设置为开机启动程序
设置完成,重启测试即可!