【发布时间】:2017-04-20 15:03:12
【问题描述】:
我是这个网站的新手,对 PowerShell 也很陌生。到目前为止,我都喜欢!
我目前正在尝试编写一个 PowerShell 脚本,该脚本将查看某个共享或文件夹的所有子文件夹中的所有 ACL,然后将这些 ACL 与用户组成员身份进行比较。因此,假设 Tom 说“我希望 Jerry 拥有与我相同的访问权限,但仅适用于 CONSTRUCTION 共享及其所有子文件夹,不包括 CONSTRUCTION 文件夹之外的其他区域。然后我想查看所有组Tom 是 CONSTRUCTION 文件夹的 subs 中的成员,因此我可以将 Jerry 添加到这些组中。
到目前为止,我有一些我认为我需要的部分,但不太确定如何将它们拼凑在一起以提供我需要的东西:
Get-Acl -Path "\\\share\construction" | Format-List 会给我一个 ACL 列表,但仅限于此文件夹
get-childitem -Path \\\share\construction -dir -Recurse | format-list -Property name 会给我一份 CONSTRUCTION 中所有子文件夹的列表
Get-ADPrincipalGroupMembership Tom 会给我一份 Tom 所属的所有组的列表
现在最难的部分是将它们串在一起,这样我就可以说“好的,这些是我需要将 Jerry 添加到的组,以便让他的访问权限与汤姆在 CONSTRUCTION 文件夹中的访问权限相同,并且仅它的子文件夹(因为某些子文件夹的 acl 可能与父文件夹不同,我希望他也添加到这些文件夹中)。
正如我所说,我是 PowerShell 的新手,所以如果我对这些 cmdlet 不太了解,请告诉我。任何可以提供的帮助将不胜感激。提前致谢!
【问题讨论】:
-
将 Jerry 与 Tom 放在同一个组中可能会给他比您想要的更多的访问权限(如果一个组允许 Tom 访问另一个共享中的另一个文件夹),并且不一定会给他相同的权限Tom 拥有的访问权限(如果 Jerry 在另一个组中拒绝覆盖某些内容,那么将他添加到 Tom 的允许组不会有任何影响)。您的组和文件夹共享 ACL 设计是否涵盖了这两种可能性?
-
感谢您的评论。在大多数情况下,“con”或“construction”这个词会出现在 ACL 名称本身中,但并非总是如此,但我仍然希望看到组名。在我的公司中,我们不会拒绝访问,您要么被授予访问权限,要么没有。不使用否认。我一直在追求这样的剧本。
标签: powershell permissions active-directory directory