闽人
以管理员身份启动Windows PowerShell,输入“Get-ScheduledTask | ? state -eq running”命令并回车(每输入一条命令均需回车确认,下同),即可看到当前正在运行的所有计划任务(图1)。
除了正常的计划任务外,很多病毒、木马也会通过创建计划任务的方式实现自启动。比如在图1所示的窗口中可以看到名为“9854623”的任务比較可疑,如果需要查看该任务的详细信息,依次输入并执行“schtasks /query /tn "9854623" /xml > "d:\cfan.xml"”和“type "d:\cfan.xml"”命令,打开“cfan.xml”文件后在“”字段可以看到该任务执行的程序是“C:\Windows\9856423.exe”(图2)。通过进一步排查确定它是一个病毒文件,这样我们可以通过命令行快速地找到可疑的病毒计划任务。
在Power Shell窗口中输入并执行“Get -ScheduledTask|Format-Table-AutoSize”命令(参数“AutoSize”表示显示任务的完整名称),接着按住Alt键并复制“Taskname”列的内容(图3)。然后将其粘贴到Excel新建文档的A列中,保存为“1.xl sx”,放置在桌面上备用。
以后需要找出新增的计划任务时,再次执行上述的命令,复制“Taskname”列的内容并粘贴到“1.xlsx”的B列中。然后选中A、B列,依次点击“开始→条件格式→重复值→不重复值”,就可以通过颜色快速地找到新增的计划任务了(图4)。
使用“任务计划程序”组件创建的任务的执行周期只能选择每天、每周或每月,但有时需要创建更灵活的计划任务。比如笔者为孩子制定了一个每周六、周日的22:00点定时关机的任务,但由于6月6日(周一)要参加考试,现在需要将6月4日、6月5日(对应周六、周日)的关机时间更改为20:00点。
在PowerShell窗口中输入并执行“SCHTASKS /Create /SC DAILY/ tn "更改自动关机" /ST 20:00 /SD2022 /06/0 4 /ed 2022 /06/05/ TR"shutdown -s -t 30"”命令,即可创建一个名为“更改自动关机”的计划任务,从6月4日的20:00点开始,到6月5日的0:00点结束(图5)。
随后打开“任务计划程序”组件,在列表中可以看到该任务,切换到“触发器”选项卡可以看到它的详细信息,和上述命令行中的参数完全一致(图6)。这样到了6月4日的20:00点电脑就会自动关机,6月5日的0:00点后任务失效(后续的周末仍然是22:00点自动关机)。
为了方便以后使用,我们还可以把上面的命令放置在一个批处理文件中,这样在指定时间(如月考、期中考试、期末考试等)需要使用时,更改命令中的起始日期即可。
使用PowerShell命令行还可以快速地导出和导入计划任务。比如需要导出上述的“自动关机”任务,在PowerShell窗口中输入并执行“Export-ScheduledTask "自动关机" | out-file d:\gj.xml”命令,即可将其导出为“D:\gj.xml”保存。用新核心的Edge浏览器打开可以查看到具体内容(图7)。
需要导入上述的任务时,在PowerShell窗口中输入并执行“Register-ScheduledTask-Xml (Get-Content "d:\gj.xml"|out-string) -TaskName "自动关机"”命令就可以了。或者打开“任务计划程序”组件使用图形化界面导入(图8)。