Re 4楼
显然,只要是能读取的文件夹都不能逃过压缩文件的魔爪,即使是像带点的和一些特殊文件夹都不能,何况是这么个小小的设置。
不过,结合NTFS文件系统的权限能丰富它的花样。
Re 7楼
我想让你看的就是他没有属性,而且右键菜单很简洁是吧,我的7-zip并没有出现在其中。
这个帖子的初衷只是想让大家了解一下 desktop.ini ,虽然技术方面可能用处不大,但是有了它能使你的电脑更美观、更个性。
关于外观方面的例子就不举了,之前的附件,或者去网上查都能找到很多。
下面就是在NTFS文件系统中,在一般设置下,结合它的CLSID一项和安全权限改变文件夹的两个例子:
先将权限改为拒绝访问。显然处理后不能再用压缩程序来破解。
一个是利用 7楼说的那个,处理后的特点:
无法进入文件夹;
属性中只有创建时间,所以在UI界面无法修改安全;
就明着说“我不让你进,你怎么着吧。”,只有会DOS命令行才可能解决。
另一个是利用 4楼说的那个,处理后特点:
能进入文件夹;
各基本属性都有,但是因为实际无法访问,文件夹大小和文件数都是0;
样子跟普通文件夹一样,达到浑水摸鱼的效果;
如果不去看安全,基本不会发现它和空文件夹有何不同。
注意在
NTFS文件系统的磁盘上才有效果。
附件里面给了本例的测试,顺便附带一个外观的实例,以及我自己总结的一点资料,不保证在任何机器上有效。
:::::::::::::::::::::::::::::::::::::::::
:: ::
:: CACLS 与 desktop.ini 结合实例 ::
:: ::
:: (C)20009 qinchun36 cn-dos.net ::
:: ::
:::::::::::::::::::::::::::::::::::::::::
@echo off
set clsidCabFile={0CD7A5C0-9F37-11CE-AE65-08002B2E1262}
set clsidFolderShortcut={0AFACED1-E828-11D1-9187-B532F1E9575D}
:: 如果是直接打开则显示用法
set arg1="%1"
if "%arg1:"=%"=="" goto usage
:: 获取文件夹路径,并据此生成配置文件的路径
set dirPath="%arg1:"=%"
set iniPath="%arg1:"=%\desktop.ini"
set iniBack="%arg1:"=%\desktop.ini.log"
goto chooseOperate
:usage
echo.
echo 把要处理的文件夹拖到我上面来!
goto end
:chooseOperate
echo.
echo 选择要对此文件夹进行的设置
echo ----------------------------
echo 1 不显示属性,拒绝访问,UI界面不能修改安全
echo 2 看起来是个空文件夹
echo 其他 恢复成原形
echo ----------------------------
set /p op=
if "%op%"=="1" (
set clsid=%clsidFolderShortcut%
goto work
) else (
if "%op%"=="2" (
set clsid=%clsidCabFile%
goto work
) else (
goto reset
)
)
:work
:: 设置访问权限为允许所有
echo y|cacls %dirPath% /g everyone:f 1>nul
:: 备份配置文件,如果有的话。
if exist %iniPath% (
attrib %iniPath% -s -h -r
:: 防止重复修改备份文件
if not exist %iniBack% (type %iniPath% > %iniBack%)
)
:: 写入信息
echo>%iniPath%
echo>>%iniPath% CLSID=%clsid%
:: 添加系统属性以使设置生效
attrib %dirPath% +s
attrib %iniPath% +s +h
:: 设置访问权限为拒绝所有
echo y|cacls %dirPath% /d everyone 1>nul
echo 已处理文件夹:
echo %dirPath%
goto end
:reset
:: 设置访问权限为允许所有
echo y|cacls %dirPath% /g everyone:f 1>nul
attrib %dirPath% -s
attrib %iniPath% -s -h -r
:: 删除配置文件。恢复原配置文件(如果有的话)。
del /f /q %iniPath%
if exist %iniBack% (
type %iniBack% > %iniPath%
attrib %iniPath% +s +h
del /f /q %iniBack%
)
echo 已恢复文件夹:
echo %dirPath%
goto end
:end
pause>nul
Last edited by qinchun36 on 2009-10-22 at 20:26 ]