作为一名至今还在坚守着64位XP的XP用到死星人,因为准备升级电脑,所以准备移民外星,开始使用Windows7。其实我新电脑买来一年了,为了坚守XP,扔在一边没有装(华硕Z9PE-D8 WS主板,双E5-2637CPU,32G内存,8个SSD硬盘,4个显卡)。
为了装新机器,同时为了拾起扔了不少年的电脑技术,研究了一段时间的Windows7,也看了一下Windows8和10,真没有多少让人欢喜的功能。能值得称道的就是Windows8的任务管理器了,确实很不错,很漂亮也很人性化。
其他UAC、库等等都是学的半拉拉东西,还有很多赶流行,卖概念的东西。
说系统就不能不说安全性,理论上说这个新系统(至少比XP新),至少安全性设置上,应该更安全才对,但是Windows7中个任务计划是怎么回事呢?在Windows7中任务计划的服务也不能关,也不能禁止用户创建任务计划,这不明显的是为流氓软件大开方便之门吗?微软居心何在,牺牲广大用户的利益和软件开发商玩默契吗?
一般用户面对任务计划+流氓软件毫无还手之力,就是有一定水平的用户稍微的不注意,也只能甘拜下风。下面就以WPS为例,说说应对方法。
WPS的自动升级设置,在以前的某些版本中是很让人无语的,里面的选项不是让你选自动升级还是手动升级或者是不升级,而是让你选自动静默升级和自动升级,甚至只有一个选项,自动静默升级,后来的版本的中国特色“免费”内容也给加足了,在广大用户一片声讨声中,终于能选不自动升级了。
WPS的升级就是靠任务计划,禁用或者是删除了WPS的任务计划也没有用,每次开启WPS都会把任务计划重置,即使选择不自动升级WPS,WPS的任务计划还是要运行,估计程序确实是不负责升级程序版本,但是负责为广大的用户及时的提供最新的中国特色“免费”内容。让一般的WPS用户去应付WPS的升级和任务计划是很不现实的,就是有一定电脑使用水平的人,每次开启WPS之后都再去禁用WPS的任务计划也是很繁琐的,并且任务计划管理器打开的速度是很慢的。
如果不考虑WPS的流氓,WPS其实是个很不错的软件,但就是因为其流氓太过,让人生厌。所以很多喜欢“我的地盘我做主”或者虽然喜欢WPS不喜欢被流氓欺负的人,很干脆的抛弃了WPS,各种精简版的office就这样的大行其道了。
工具/原料
- Windows7+
- Windows任务计划管理器taskschd.msc
- Windows事件查看器eventvwr.msc
- 本地安全策略管理器secpol.msc
用任务计划管理任务计划
- 1
还好微软提供的任务计划功能足够强大,我们可以以子之矛攻子之盾。用任务计划来对付WPS一类的任务计划流氓,下面是实现流程。
首先是准备工作,Windows7的任务计划是有日志的,但是微软默认的任务计划日志是没有开启的!!微软到底想干什么,那些一般人根本看不懂,也不会去看,大多也没有用的东西哗啦哗啦的记录一大堆,但是非常重要和用户关系非常紧密且比较容易看的懂的任务计划日志却不去开启。再次望天质问,微软居心何在!
所以我们首先要打开任务计划的日志,从计算机管理—任务计划、管理工具—任务计划、运行—taskschd.msc等方法打开任务计划程序管理器。点击窗口右侧的“启用所有任务历史记录”,注意开启之后会显示为“禁用所有任务历史记录”,就是说当显示为“启用所有任务历史记录”的时候,任务计划的日志是关闭的,显示为“禁用所有任务历史记录”的时候任务计划的日志是开启的。从作用上看这启用/禁用应该是个选择按钮,但是这种显示方法和有字面上的叙述,实在是别扭偷透了。
- 2
开启了任务计划日志之后,实验的先禁用WPS的任务计划,在任务计划程序库的根目录下面,有两个,分别是“WpsNotifyTask_Administrator”和“WpsUpdateTask_Administrator”。禁用之后再打开WPS,让WPS去重置上述的两个任务计划,下面我们可以去查看任务计划日志了。从计算机管理—事件查看器、管理工具—事件查看器、运行—eventvwr.msc等方法打开事件查看器。从窗口左侧依次选择:应用程序和服务日志——Microsoft——windows——TaskScheduler/Operational,这就是任务计划日志。
- 3
看下图,其中事件ID:140就是WPS重置任务计划的ID号,这个ID号等一下有用。当然估计别的程序如果重置任务计划估计也是ID140,但是会去随意的重置任务计划的目前就遇到WPS一个,Chrome什么的,把它禁用,他就老老实实的禁用着。
准备工作做完了,我们就祭出杀器“子之矛”,任务计划程序了。
- 4
打开任务计划程序管理器,随便打开一个目录,创建一个计划任务。常规页,名字随便起,但是最好中间不要有空格,运行时的用户,当然是要权限更高的用户administrator或者system,administrator就够了,system的话不知道是否能收到消息。
- 5
重要的触发器页面,点新建触发器,在新建触发器窗口中,开始任务类型选择“发生事件时”,开始任务类型选择“发生事件时”,开始任务类型选择“发生事件时”,看我连说三遍,大家都懂哈。
- 6
选择发生事件时之后,设置对话框发生了改变,选择“基本”,日志选择“Microsoft-windows-TaskScheduler/Operational”,源选不选都可以,事件ID当然写140。如果不选择“基本”,而选择自定义,则可以填写多个事件ID,基本和自定义的差别就在这里。还有个延迟任务时间,选择任务延迟的原因是为了防止目标程序还没有执行完毕,即进行干预而产生错误,所以设置个延迟,这里可以接受输入,我输入了5秒,WPS进行140事件只是重置,并不是开始任务,wps的任务是从每小时运行一次。触发器设置完成了,一路的确定保存下来。下面的操作虽然重要,反而是最简单的。在操作页面,选择操作,应该的选择是启动程序。至于程序是什么,什么都行,程序,脚本。批处理都可以,大家可以尽情的发挥。作为测试,我选择了发送消息,这个发送消息输入框,需要用右键快捷菜单的打开ime才能使用我的谷歌拼音输入法,不能单纯的输入法切换,不知道此情况是不是通常状况。
- 7
一路的确定保存,直至关闭新建任务的对话框。好了任务计划创建完成了,我们先测试一下是否能正常的运行。老办法,先禁用两个WPS任务计划,然后打开WPS。OK,收到消息了。根据WPS重置任务计划的触发的自建任务计划创建成功。嗯,这话真别嘴,以子之矛攻子之盾就这样。
- 8
选择的任务计划还只能给出提示,想做什么干预就需要设置操作的启动程序了。要设置什么程序很简单。
schtasks /delete /tn “任务名称” /f删除此任务计划
schtasks /change /tn “任务名称” /DISABLE
禁用此任务计划schtasks /end /tn “任务名称” 停止此任务计划
schtasks /query /tn “任务名称” 检索此任务计划
schtasks /query 检索所有任务计划schtasks /query中cmd中运行需要chcp 437,中文环境下会出错。
以上命令通过批处理VBS或者JS脚本等等方法组合判断,可以自动的成功干预WPS的任务计划了。
经测试,WPS打开的情况下,禁用任务计划很快就被重置,所以禁用没有用。但是删除有用,删除了WPS的计划任务之后,不知道什么原因,我的2016版的WPS一小时之后才重新注册了任务计划。实际禁用任务之后,如果不通过命令或者查看日志,在任务计划管理器中是看不出WPS的任务计划是又重置为启用的,刷新也没有用,这是一种欺骗,让用户误认他的操作成功了,但是这种欺骗原理是什么??为什么会刷新没有用??微软在此问题上有不可推卸的责任!!以此类推那一小时之后重新注册任务计划也是欺骗,不过这就和微软没有关系了,是WPS的行为。
- 9
以上是通过任务计划程序以子之矛攻子之盾干翻WPS的流氓任务计划的。通过监测任务计划日志,触发程序执行,已经可以完成的管理计任务计划了。大家有兴趣可以看看各个软件添加计划任务的事件ID,定义触发器,自动的执行任务计划管理,或者给予提示。像windows默认设置的那样什么程序都能偷偷摸摸的添加任务计划实在是太不像话了。
END
任务计划+SACL=系统安全大杀器
-
上面的功能虽然强大,但是还是只限于任务计划范围之内的东西,Windows的权限审核SACL系统+事件触发任务计划,才是是终极大杀器。
所谓的SACL权限审核,就是大家看文件或者注册表权限,权限和所有者中间的那个东西——审核。有的朋友可能实验过,但是没有用。
我简单的说一下这个东西的使用和作用。这个东西在过打开对象访问的审核之后,再进行审核设置,符合审核设置条件的将会记入系统日志安全。在本地安全策略—高级审核策略配置—系统审核策略-本地组策略对象—对象访问中打开或关闭对象审核,文件权限中设置的审核归审核文件系统管,注册表权限设置的审核当然归审核注册表管。
-
开启了审核访问之后,再去具体的目标设置SACL,如下图我设置了审核注册表项HKLM\SOFTWARE\7-Zip用户administrator的设置数值和删除成功操作的审核。然后我再7-Zip下随便建个值,然后删除。
-
然后到事件查看器中,打开Windows日志——安全,安全日志已成功记录了administrator对HKLM\SOFTWARE\7-Zip的操作。
- 4
SACL虽然是个老东西,出现很长时间里,应用的范围不大,但是作用非常强大,可以有目的的监控目标的各种操作,比如监控HKLM\SYSTEM\CurrentControlSet\service的创建子项,可以监控是否创建了服务,监控HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run是监控启动项,还有exe文件打开类型等重要的目标,当然可以监控任务计划,HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks.。如果仅仅的监控,意义不大,但是如果再加上任务计划的触发,就是安全管理大杀器了,什么什么工具箱的都可以卸载了。因为它们的功能还不如你设置的强大和适用。