如何将权限从一个文件夹复制到具有不同内容的另一个文件夹

如何将权限从一个文件夹复制到具有不同内容的另一个文件夹

感谢这里的答案——我知道如何使用icacls /save & /restore或复制相同文件夹的权限robocopy /MIR。但是,我无法让它们将同一个用户权限从一个文件夹带到具有不同内容的目标文件夹。使用时ìcacls /restore,目标文件夹仍会从其父文件夹继承用户权限(尽管我已经明确禁用继承)。

我的用例是,我有一个便携式应用程序文件夹,当我将其放入这个有问题的子文件夹中时,它会运行不正常,但当我将其放入同一个 D:\ 驱动器的根目录中时,它就可以正常工作。我的文件夹路径没有任何“禁用”字符% ^ etc.,只有字母,而且路径也不是很长。

有没有办法快速将权限从已知的良好位置复制到目标文件夹?请帮忙。

非常感谢。

插图

答案1

编辑:

抱歉,我这么急发帖。

再次检查后,我发现了以下所有内容:

  • robocopy命令不会为其中的文件或子文件夹分配权限。因此,需要执行此额外步骤(在 Windows 10 上): Folder properties > Security tab > Advanced > Permission = Check the box at "Replace all child object permission entries with inheritable permission entries from this object"
  • Icacls /save那么Icacls /restore实际上也可以工作。但它应用了文件夹继承状态。如果“源”启用了继承,则目标文件夹也会启用继承(从其父级,而不是从源的父级)。因此,“源”需要暂时禁用文件夹继承。

*)我认为最好不要这样做,因为如果出现问题或忘记撤销“源”上的所有更改,可能会破坏源。

  • 我没有用 powershell 进一步测试get-acl -path | set-acl -path,但之前我发现它的工作方式如下icacls /restore

对于我的用例,我选择了 robocopy 命令。特别是在发现这个之后https://serverfault.com/questions/475612/replace-permission-entries-on-all-child-objects-using-icacls。我没有测试这个,只是想象它们可以组合成一行 cmd 命令,例如:

robocopy d:\source_folder_permission destination_folder_permission /e /sec /secfix /xc /xn /xo /xx /xl & icacls "destination_folder_permission\*" /q /c /t /reset

就这些了。干杯 :)


终于!我找到了梦想的答案。感谢这个家伙仅使用 Robocopy 复制权限

这是示例robocopy命令:

robocopy d:\source_folder_permission destination_folder_permission /e /sec /secfix /xc /xn /xo /xx /xl

我以管理员身份运行它。

希望这对每个人都有价值。祝大家有个愉快的一天!

相关内容