博主曾经推荐大家使用 CCleaner
来自动清理系统垃圾,并且提供了一枚激活码,你懂的。传送门
但是从2018年开始 CCleaner
开始频繁更新,频繁程度甚至超过了 Chrome浏览器
,更新虽然让功能更强大,软件更好用,但是也修补了那个激活码的漏洞,激活之后不知不觉就失效了,博主也未能幸免。
不过好在博主我机智过人,想到利用 Windows 防火墙
来阻止 CCleaner
访问网络。这样在激活的时候也不需要断网,也不用担心授权失效。
截至此文发布时 CCleaner
已经更新到 v5.58.7209
文末提供手动更新传送门,安装后文件夹里有三个执行文件,我们需要对它们的 出站
和 入站
进行限制。
但博主也是一个懒人( ╯□╰ ),一条条添加实在太麻烦,就想到了 Windows
的 批处理
。经过调试后在 Win10
上运行正常,现在分享出来,也可以用于其它软件的联网屏蔽。
@echo off setlocal ENABLEDELAYEDEXPANSION MODE CON COLS=60 LINES=11 color 0b rem 批处理获取管理员权限 :------------------------------------- %1 mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&&exit /b CD /D "%~dp0" :-------------------------------------
::添加阻止程序出站规则 ( echo "CCUpdate","%ProgramFiles%\CCleaner\CCUpdate.exe" echo "CCleaner64","%ProgramFiles%\CCleaner\CCleaner64.exe" echo "CCleaner","%ProgramFiles%\CCleaner\CCUpdate.exe" )>list.txt FOR /F "usebackq tokens=1,2 delims=," %%i in (list.txt) do ( netsh advfirewall firewall add rule name=%%i dir=out program=%%j action=block>nul echo 阻止%%i程序出站规则已添加 ) del list.txt
::添加阻止程序入站规则 @echo off ( echo "CCUpdate","%ProgramFiles%\CCleaner\CCUpdate.exe" echo "CCleaner64","%ProgramFiles%\CCleaner\CCleaner64.exe" echo "CCleaner","%ProgramFiles%\CCleaner\CCleaner.exe" )>list.txt set svchost_exe="%%systemroot%%\system32\svchost.exe" FOR /F "usebackq tokens=1,2 delims=," %%i in (list.txt) do ( netsh advfirewall firewall add rule name=%%i dir=in program=%%j action=block>nul echo 阻止%%i程序入站规则已添加 ) del list.txt echo 操作结束,按任意键退出... pause>nul exit
上面代码里的 CCUpdate
、CCleaner64
、CCleaner
为规则名称,名称后跟的是对应程序的路径,可自行修改。
执行结果如下:
检查是否成功可以在Windows命令窗口中输入(name为规则名,大小写不敏感)
netsh advfirewall firewall show rule name="CCleaner"
或者在 Windows 防火墙
的 高级设置
里检查是否有如下信息
如果查询不到说明未添加成功,应检查当前用户是否具有管理员权限。
备注:如果规则添加成功,便限制了它们访问网络,所以以后软件的更新需要手动操作。手动更新传送门