Windows - 仅在文件夹上设置权限,而不递归子对象(对于大型目录树来说速度很慢)

Windows - 仅在文件夹上设置权限,而不递归子对象(对于大型目录树来说速度很慢)

很多时候我只想设置文件夹的权限,但我试过的所有程序都会在此过程中递归遍历所有子文件和文件夹。由于这很慢,有什么方法可以避免这种情况吗?

我尝试过的事情:

  • 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

相关内容