很多时候我只想设置文件夹的权限,但我试过的所有程序都会在此过程中递归遍历所有子文件和文件夹。由于这很慢,有什么方法可以避免这种情况吗?
我尝试过的事情:
Windows 资源管理器:失败,正如您在 GUI 中看到的,它将循环遍历所有子对象。
设置Acl工具来自 Helge Klein:失败了,正如一个叫做进程监控器
SetACL.exe -on "PATH" -ot file -actn ace -ace "n:USER;p:read_ex;i:np;m:set" -rec no
对于那些不知道的人来说,“i:np”子句意味着权限仅适用于“此文件夹”。
icacls:失败(进程监视器)
icacls "PATH" /grant USER:(NP)RX
(与上面的 setacl 命令功能相同)
(命令行仅作为示例)
答案1
这现代Windows API当程序更改目录权限时,Windows 会自动遍历目录树,没有选项可以阻止这种情况发生。Windows 也不够聪明,无法意识到某个更改何时对子对象没有影响。
然而,如果一个程序使用较旧的SetFileSecurity 函数这不会发生。
因此,您可以尝试寻找旧的实用程序,例如为 Windows 2000 或更早版本编写的实用程序。
或者您可以使用内置的cacls
命令行工具,它使用起来并不那么方便,并且icacls
已被官方弃用,但除非您传递该选项,否则它不会影响子对象/t
。