用任务计划程序跑维护脚本
发布时间:2025-12-19 13:25       
更新时间:2025-12-20 10:51
每周清一次日志、每天凌晨备份一次数据库,这类到点就干的重复活,交给任务计划程序最合适。Windows 自带的这套调度器能管触发时机、运行身份和失败重试,配好一次能安心跑很久。动手前两件事要做:脚本先在命令行手动跑通,计划任务只会忠实执行、不会帮你修脚本;脚本放进固定目录如 D:\scripts\,并想好用什么身份运行。
## 第一步:建任务
运行 taskschd.msc 打开任务计划程序,右侧点"创建任务"(注意不是"创建基本任务",完整版选项多得多)。"常规"页填名称,勾上"不管用户是否登录都要运行",否则没人登录时任务不执行;"使用最高权限运行"一并勾上。
## 第二步:配触发器
触发器页新建,定期维护选"每天"或"每周",挑凌晨三点这类低峰时间;也支持事件触发,比如"开机时""某个事件 ID 出现时"。备份类任务的执行时间错开整点,避免和系统其他整点任务挤在一起抢磁盘。
## 第三步:配操作与起始于
操作页新建,程序填 powershell.exe,参数填:
```
-ExecutionPolicy Bypass -File "D:\scripts\clean.ps1"
```
"起始于"一栏填脚本所在目录,这个字段常被忽略——不填的话,脚本里用相对路径引用的文件全都找不到,任务报 0x1 错误。跑批处理就填 cmd /c 加脚本路径,同理。
## 第四步:运行身份与隐藏窗口
运行身份通常二选一:SYSTEM 权限最高,但访问网络共享和外部资源不便;专用服务账号权限可以精确控制,更推荐,密码在任务属性里管理。"不管用户是否登录都要运行"勾上之后,任务天然在后台无窗口执行,不用再折腾隐藏窗口的参数;如果任务在有人登录时弹出黑框,用的也是同一个办法。
## 失败重试与验证
"设置"页配失败重试:任务失败后每 10 分钟重试一次,1 小时后放弃,避免脚本有硬伤时无限空转。配置完右键"运行"手动触发一次,再看"上次运行结果",0x0 才算成功;脚本内部要写日志文件,出问题时翻日志比干猜快得多。批量核对用 Get-ScheduledTask 一条命令看全部任务状态。
维护任务的验收标准只有一条:故障发生时备份真的在。定期做一次恢复演练,比检查一百次"上次运行结果 0x0"都管用。