清完注册表顺手把计划任务导了,结果公司机子隔天又冒弹窗
上个月我发过一篇火绒弹窗清了又冒的帖子,当时用 sc delete 把残留服务删干净了,以为这事就结了。结果上周公司有台机子又弹广告,我打开一看,服务列表里干干净净,弹窗却照常出现。
折腾了一下午,最后在任务计划程序里找到元凶——一个叫 UpdaterTask_xxxx 的计划任务,每天开机后延时三分钟启动一个临时目录里的 exe。那个 exe 每次运行都会重新写一个服务项,所以只删服务不删任务,就是割韭菜,割完一茬又一茬。
这次我把完整流程记下来了,分享给同样管机子的朋友:
第一步,先看清单再动手
我习惯先用软领的启动项管理拉一份清单,把可疑项截图存下来,再一项项对。这次清单里除了服务,还列了三个计划任务,其中两个名字带随机后缀,一看就不对劲。
第二步,服务、任务、RunOnce 一起清
只清服务是没用的。我这次的做法是:
sc delete 服务名删服务- 任务计划程序里直接删任务,或者用
schtasks /delete /tn "任务名" /f - 检查注册表
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce和Run两个位置
第三步,导注册表留后手
每次改注册表之前,我都会把相关项导出成 .reg 文件放桌面。这里有个坑要提醒一下:软领的注册表备份功能,HKCR 那一栏默认是空的,得手动补导,不然出问题恢复不了。我现在的习惯是 HKLM、HKCU、HKCR 三处都导一遍,文件名带日期,改完确认没问题再删。
第四步,清完必须重启测试
这一步最容易被省掉。我这次特意重启了两次,第一次看弹窗还冒不冒,第二次看服务有没有被重新写回来。第一次重启后弹窗没再出现,第二次也正常,才算过关。
一个补充判断
如果清完弹窗还在,可以看看有没有进程是父进程被清了但子进程还在跑,或者有没有开机延时启动的任务。我这次遇到的就是延时三分钟启动,如果只观察开机那一分钟,根本发现不了。
另外说一句,系统自带的 taskschd.msc 其实够用了,任务计划程序里能直接看触发器和操作路径,比很多第三方工具列得还清楚。我现在倾向先用自带的看,确认了再动手,第三方工具只用来做批量抽检。
最后想问一下大家:你们遇到过那种服务删了但计划任务还在、过几天又自己长回来的情况吗?一般是怎么定位到幕后那个任务的?
