【问题标题】:How to get all members of all groups from Active Directory如何从 Active Directory 中获取所有组的所有成员
【发布时间】:2015-01-05 15:53:28
【问题描述】:

我想按照以下格式从 Active Directory 中检索所有组的所有成员的列表

Group  | Member
----------------
group1 | member1
group1 | member2
group1 | member3
group2 | member1
group2 | member4
...

实际上,我有一个使用 Quest cmdlts 检索组成员的 PowerShell 脚本,但性能非常差(最多需要 30 小时才能完成提取),因此我目前仅尝试检索主要组的成员。 我尝试使用 DSGET 命令,但它不显示组名或 ID,只显示成员列表

dsquery group -limit 0 | dsget group -members

我也尝试使用命令CSVDE,但没有成功 如果可能的话,我想要一个不使用 Quest cmdlts 或 AD cmdlet 的解决方案(Get-ADGroupMember ...)

编辑: 实际的 Quest cmdlts 脚本,我没有 Powershell 知识,所以我无法真正解释它是如何工作的......

$csv = get-content "C:\group_names.txt" 
$result = $csv | foreach-object {  $group=$_  get-qadgroupmember "$_"
-PageSize 500 -sizelimit 0 -indirect | 
select-object sAMAccountName,@{n="GroupName";e={$group}}  }  $result | 
export-csv C:\group_members.csv -Delimiter "|" -notypeinformation

【问题讨论】:

  • 使用 quest cmdlet 的 powershell 脚本是什么样的?也许我们可以优化它。您是否也只需要直接成员或间接成员(通过嵌套组)?否则,您可以使用 adsi。搜索“powershell get members adsi”之类的。
  • @FrodeF。我将实际脚本添加到问题中,我更喜欢获取直接成员,然后找到另一个解决方案来检索子成员(可能通过 SQL),因为检索子成员也需要很长时间
  • "我想要一个不使用 Quest cmdlts 和 AD cmdlet 的解决方案" 为什么?您必须像执行直接 LDAP 查询的旧 VBScript 查询一样编写它。这完全是粗暴和容易出错的,而且可能表现更差。
  • @BaconBits 这就是我添加“如果可能”的原因,原因是我没有权限导入 Active Directory 模块也没有查询 Quest,而且我怀疑 Quest 服务器管理不善并且Quest cmdlts 运行速度非常慢
  • quest cmdlet 可以使用 LDAP 直接与 DC 对话。我认为可以将它用于某种类型的 Quest 服务器(就像您可能正在做的那样),但这不是 99% 的模块用户使用它的方式。 :)

标签: powershell active-directory


【解决方案1】:

我尝试使用 Quest cmdlet 优化您的脚本。您说您只想拥有直接成员,但您的脚本仍然使用 -Indirect 开关,就像您说的那样,它运行得非常慢。试试这个:

Get-Content "C:\group_names.txt" |
Foreach-Object {
    $group = $_
    Get-QADGroupMember "$_" -PageSize 500 -SizeLimit 0 |
    Select-Object sAMAccountName,@{n="GroupName";e={$group}}, type
} | Export-CSV C:\group_members.csv -Delimiter "|" -NoTypeInformation

您必须创建自己的逻辑、sql 脚本等来将组链接在一起,以便找到间接成员。你也可以在 PowerShell 中通过使用函数和递归来做到这一点,我只是现在没有时间写一些。我在您的输出中添加了type,因此您可以轻松查看哪个成员是嵌套组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多