通过 Powershell 获取 NTFS 权限并通过管道输出以在不同位置设置相同的权限

Getting NTFS permissions through Powershell and piping the output to set the same permissions in a different location

我正在将 CIFS 共享文件和子文件夹从一个系统移动到另一个系统,我想将目标位置的顶级文件夹设置为与源位置的顶级文件夹具有相同的 ACL。在某些情况下,最多 25 个用户和组。

有没有办法从源顶级文件夹获取 ACL,并通过管道输出,以便将其应用于顶级目标文件夹?

您可以非常轻松地复制 ACL:

Get-Acl -Path <SourceFolder> | Set-Acl -Path <DestinationFolder>

但这不是很 eloquent。它只会从一个文件夹中获取 ACL 并将其应用于另一个文件夹。鉴于您要复制整棵树,您的里程数可能会有所不同。

Robocopy 通常在这些情况下与 /COPYALL 参数一起使用。您可以在不使用 /CREATE 进行复制的情况下创建树。您可能需要修改才能让它只执行一个文件夹。不知道你的项目的细节很难说,但如果你有兴趣检查帮助文件。

我还要指出,有一个很棒的 NTFS 模块 here。我一直在使用它,它非常强大,而且很容易编写脚本。

如果有帮助请告诉我。