注:我们在此不讨论脚本本身有没有用以及破解和道德相关的话题,而是关注它本身带来的潜在危害
注:本文首发于知乎,但是由于知乎于今年禁止了搜索引擎爬取其平台内容,故特意在CSDN上再次发表,以便传播
这个脚本在网上有很多流传的版本,比如下面这几种:
体验Navicat Premium 16,无限重置试用14天方法(附源码)
需要关注一下这些脚本的具体内容,其中对于 HKEY_CURRENT_USER\Software\PremiumSoft\ 那部分的处理问题不大,麻烦的是有的脚本会带类似下面的这一部分:
echo Delete Info and ShellFolder under HKEY_CURRENT_USER\Software\Classes\CLSID
for /f "tokens=*" %%a in ('reg query "HKEY_CURRENT_USER\Software\Classes\CLSID"') do (
for /f "tokens=*" %%l in ('reg query "%%a" /f "Info" /s /e ^| findstr /i "Info"') do (
echo Delete: %%a
reg delete %%a /f
)
for /f "tokens=*" %%l in ('reg query "%%a" /f "ShellFolder" /s /e ^| findstr /i "ShellFolder"') do (
echo Delete: %%a
reg delete %%a /f
)
)
这个部分的逻辑是,如果 HKEY_CURRENT_USER\Software\Classes\CLSID 的子项中有任何出现了 Info 和Shellfolder 的子项的话,就把整个项都删了;这个脚本有很多版本,但是部分其他的脚本中也有类似的逻辑,而上面这段是我从认为流传最广的版本中截取的
Info里面具体都是些什么我没搜到,自己看了一部分注册表项也没看出什么头绪;但是Shellfolder很好搜也很好理解,就是文件资源管理器里面显示的特殊文件夹那一类的东西
ShellExView v2.01 - Shell Extensions Manager
我不知道为什么会这个脚本有这种处理逻辑,但是很显然这种执行逻辑是很容易误伤的,因为这个文件夹下面很显然大多数都是和Navicat无关的项目,而它没有任何明确检测Navicat相关的逻辑,Info 和 Shellfolder也不是Navicat独有的东西(实际上Navicat相关的注册表项本身有没有这种东西都存疑)
另外我能在网上搜到手动清理注册表的教程,这些教程中指出,如果这些注册表项的子项中只包含 Info 、或者包含 DefaultIcon和ShellFolder 而不含其他子项,那么这个项目才是应该被删除的
Navicat 16 for MySql 16.2.10 注册表无限试用
但是他们同样没有解释为什么要这么做,这些项目是什么,是谁创建的,它们和Navicat有什么关系,以及删除它们有没有可能带来的潜在后果;
另外这个删除逻辑和上面那些脚本的实现显然是不同的,因为如果其中除了提到的项还出现了其他的项的话就不应该删除,但是脚本的执行逻辑是只要出现了提到的项就会进行删除,而这有可能造成危害
比如说,下面是我在从来没有安装过Navicat的一台Windows 10虚拟机上测试的运行结果:
执行脚本前:
执行脚本后:
可以看到它因为含有Shellfolder子项就把我Windows自带的OneDrive的项给扬了,这很显然是不给被删除的项,然后很自然地文件资源管理器里的OneDrive文件夹就打不开了(虽然我在这台机器上没登陆微软账户,但是正常情况下点击这个栏目也会跳转到OneDrive页面的)
当然,实际测试中,我重新启动OneDrive后,这个项被重新创建了回来,并且文件管理器也能正常跳转界面;
对于某些重要的注册表项,Windows和部分第三方软件可能会有能力重建它们;
但是那也不代表你应该在不了解的情况下乱动它们,毕竟重建之后大概率会恢复到默认设置导致可能的设置更改,而如果被删除的项目不是Windows自带的项目的话那也可能就再也无法恢复了
到目前为止我仍然不清楚这个脚本会影响除了OneDrive以外多少的软件和系统设置,表面上来看影响不大,除了OneDrive以外我也暂时没遇到其他影响,但这不代表影响不存在,也许就会在哪一天暴雷
每个人都要记住,自己作为计算机的管理员,拥有相当高的权限,需要对自己计算机的环境负责,对于外来引入的任何可执行的文件,都要谨慎研究三思后行,不要等到造成严重后果再追悔莫及;
并且要谨记备份的重要性,除了定期备份以外,在进行潜在的破坏性操纵之前也要有意识地进行备份
另外对于撰写和传播脚本的人来说,我并无责备之意,我了解想要造福大众和分享好物的心情,但是也要记住,这些东西在经过传播后可能在任何计算机上被执行,稍有不慎就可能造成严重后果,因此也应当尽到责任,谨慎核查三思后行