ACL监控和报告

我需要一个工具/脚本来报告给定path的当前定义的权限。

  • 如果子树的权限与其父级相同,则应该省略整个子树。
  • 只有当权限与其包含的目录不同时才应列出文件。
  • 输出应该是紧凑的(不像cacls / icacls)和纯文本,所以我可以提交给SVN。

有这样的事情吗?

这听起来好像这可能会做你以后的事情。 这不是PowerShell代码,但我喜欢sysinternals玩具。

setacl实用程序将执行您正在查找的内容,还可以select将文件中保存的ACL“还原”到实时文件系统。 我已经以类似于您所描述的方式使用了setacl,包括将ACL作为脚本的一部分自动恢复,以便从版本控制中检出和部署应用程序。

setacl的命令行语法可以说是令人困惑和困难的。 要将文件夹层次结构中的ACL保存到文件中,请执行以下操作:

SetACL.exe -on "\\server\share\source-folder" -ot file -actn list -lst "f:sddl;w:d,s,o,g" -rec cont -bckp "output-file.txt" 

从其父对象inheritance所有ACL的对象(文件或文件夹)将不会在输出中列出(因此只会报告具有ACL设置的对象)。