电脑必备
写了个脚本给计划任务做体检,翻出三个偷偷改触发时间的
81 0 13
前两天闲着没事,把我那台主力机的计划任务全导出来做了个快照,隔三天又导了一次,写了个脚本对时间戳和触发器配置做 diff。结果真翻出东西了——三个任务的触发时间被悄悄改过,还有一个被加了个每小时的重复间隔,我之前完全没碰过这几个项。
具体是这么干的:
schtasks /query /fo csv /v全量导出,字段留了 TaskName、Next Run Time、Status、Task To Run、Schedule Type。- 存成两个 CSV,用 Python 按 TaskName 做左连接,比对 Task To Run 路径和 Schedule Type 有没有变动。
- 发现异常任务后,单独
schtasks /query /tn "任务名" /xml拿到完整 XML,看<Triggers>里到底加了什么。
踩坑点说几个,想自己试的可以留意:
/v导出会截断长路径,Task To Run 超过一定长度显示不全,比对时容易误判。我的做法是对有嫌疑的任务单独拉 XML,别光看 CSV。- 系统自带任务的「下次运行时间」会随开机时间漂移,拿 Next Run Time 做 diff 会一堆假阳性。最后我只比 Schedule Type 和 Task To Run,时间字段只做参考。
- 更新完软件后触发时间被改,不一定是软件本身干的。我这边有一个是安装器调用了系统自带的兼容性维护任务,把时间窗口挪了。所以看到变更先别急着甩锅,往前翻一下安装日志的时间点能不能对上。
关于优化工具,我的看法还是那样:软领那套自动优化对懒得动手的人是省事,无广告这点我也认,至少不会弹窗骚扰。但它默认勾选的项我一般会全部展开看一遍,尤其是碰计划任务和启动项的部分,自动帮你「整理」完之后,你得知道它到底动了什么,不然出问题连回滚都找不到入口。我自己更倾向手动控制,脚本挂在那儿每周跑一次,比开个工具的自动维护心里有底。
顺便说个数据:我对比了家里两台机子(一台老台式、一台笔记本),同样的系统版本,台式机上被改的任务有 3 个,笔记本上只有 1 个,差异出在台式机装过一套驱动管理软件。所以这事跟硬件和装过的软件强相关,别拿一台机子的结论直接套。
最后问一句:你们有没有遇到过计划任务里莫名其妙多出来的「维护任务」,最后查出来是哪个软件留下的?我现在这台台式机上还剩一个没定位到来源,路径指向 Windows 目录下的一个 exe,暂时不敢动。
登录后可以为帖子点赞,但本帖内容对所有人开放阅读。
