我希望能够在AD中看到一个很好的嵌套组合。 有没有什么产品可以帮我吗?
我不确定这是不是你正在寻找的,但是我的应用程序SetACL Studio有一个非常好的用户界面,并且被devise来取代内置的Windows ACL编辑器。
它显示文件和文件夹,registry项,networking共享,打印机,服务和WMI对象的权限。 当然,更改权限和所有权也是很容易的。
如果您位于Windows计算机上,则可以使用带有-members -expand的dsget group命令通过嵌套扩展具有成员资格的组。 我不确定这是否是你想要的,但是如果你还没有find更优雅的解决scheme,我希望它能以某种方式提供帮助。 作为一个警告,这个代码已经不在我的脑海了,因为我不再能够访问Windows机器了:
$all_members = [] $nested_groups = [] dsquery group -limit 0 | ?{$_ -imatch "cn=$your_groupname,"} | dsget group -members -expand | % { # these are all the members of the group, including those groups with # membership via nesting # you could omit the users by extracting the group name from $_ # and testing that they are a group $possible_group = $_ if ( $possible_group -imatch "cn=([^,]+)," ) { $possible_group_name = $matches[1] $all_members += $possible_group_name # this condition may or may not work. if not, get sample output # from calling dsquery group on a user and use that as the condition # instead if ( dsquery group -name $possible_group_name -ne $null ) { # alternatively, you could make each member of $nested_groups # an array, make this a function, and recursively collect # the entire nesting of this and all sub-groups $nested_groups += $possible_group_name } } } write-host "groups in $your_groupname, via nesting" $nested_groups | % { write-host "`t$_" } Write-host "groups and users in $your_groupname, via nesting" $all_members | % { write-host "`t$_" }
我希望代码对你有用,如果不是的话,那可能是我的糟糕的记忆错误。
祝你好运! 🙂