【发布时间】:2014-07-20 00:42:10
【问题描述】:
我正在寻找一个可以显示 Active Directory 组层次结构的脚本。
不幸的是简单的 Get-ADGroupMember $group - 递归只列出成员,而不是组。
例子:
Group1 是主要组 - 它有 3 个名为 GroupA、B、C 的子组。所以 GroupA,B,C 是 Group1 的成员。
GroupA 没有子组
GroupB 有 2 个名为 subGroup1,2 的子组
GroupC 有 1 个名为 subGroup3 的子组
subGroup1,2,3 没有子组
理想情况下,有这样的输出会很棒:
Level1 Level2 Level3 Level4
Group1 GroupA
GroupB subGroup1
subGroup2
GroupC subGroup3
当然我已经谷歌了,我找到了两个网站:
http://powershell.com/cs/forums/p/9588/15894.aspx
http://www.experts-exchange.com/Programming/Languages/Scripting/Powershell/Q_27346526.html
我理解它们的范围不大,在第一个链接中有简单的脚本。
function Get-GroupHierarchy ($searchGroup)
{
import-module activedirectory
$groupMember = get-adgroupmember $searchGroup | sort-object objectClass -descending
foreach ($member in $groupMember)
{Write-Host $member.objectclass,":", $member.name;
if ($member.ObjectClass -eq "group")
{Get-GroupHierarchy $member.name}}
}
我在脚本前添加了$searchGroup = "Administrators",但脚本没有显示任何结果。如果我执行 Get-ADGroupMember,它有 3 个子组。可能我不知道如何使用函数。
如何使这些脚本工作或制作类似的东西?
【问题讨论】:
标签: powershell recursion hierarchy active-directory-group members