当成员属性不起作用时,从活动目录中检索组成员/成员资格
Posted
技术标签:
【中文标题】当成员属性不起作用时,从活动目录中检索组成员/成员资格【英文标题】:retrieving group members/membership from active directory when members attrib doesn't work 【发布时间】:2012-06-29 12:46:05 【问题描述】:我正在尝试从“域用户”中获取所有组成员。使用 AD 用户 MMC 选项卡时,我得到了很多结果。当使用 ADSI - 不是。以下内容无法按预期工作:
通过 LDAP/ADSI 查看组条目的成员属性。当有更多成员时,它只返回 56 个成员。 按 memberOf 搜索(仅返回几个条目) 按primaryGroup搜索(不是主要组) 通过tokenGrops搜索(它是一个构造属性)任何想法表示赞赏。
【问题讨论】:
也许您可以发布您的代码,以便我们可以看到您在做什么。 您确定您的用户的主要组不是Domain Users
?通常情况下,除非您故意更改它,否则就是这种情况。另请注意,Domain Users
的 primaryGroupToken 是 513。因此,执行此 LDAP 查询应该为您提供所有主组设置为 Domain Users
(&(objectCategory=person)(objectClass=user)(primaryGroupID=513))
的用户
因此,域用户的 objectSID 是“1234567890-513”,我知道根据 ADUC 属于它的用户的 primaryGroup 是“513”。根据 ADUC,不属于域用户的控制用户是 123940。primaryGroup 的值由 ADSIedit 检索。这是否意味着在域情况下 - RID 513 是 SID“1234567890-513”?
【参考方案1】:
(我只是更仔细地阅读并看到你提到它不是主要群体......但我怀疑这就是答案:))
还有另一种机制可以让用户成为组的成员,它由组中用户的 primaryGroupID 属性控制。
如果用户的 primaryGroupID 设置为某个组的某个 RID,则该用户在功能上属于该组,即使他们没有出现在该组的成员属性中。像 ADUC 这样的工具足够明智地寻找这一点。当您在堆栈中稍低一些并通过 LDAP 访问目录时,您需要足够聪明地去寻找它。
您可以对此进行搜索,也可以使用目录中考虑到这一点的构造属性。
【讨论】:
埃里克和@Harvey_Kwok 是对的。本质上,当您查看域用户 SID 时,它不是“513”,而是整个 S-1-5-21-3623811015-3361044348-30300820-513。虽然 SAM 帐户的 primaryGroupID 属性在通过 LDAP 查询时仅返回 RID 部分,但搜索 (primaryGroupID=S-1-5-21-3623811015-3361044348-30300820-513) 将失败,而 (primaryGroupID= 513) 将成功。谢谢大家!以上是关于当成员属性不起作用时,从活动目录中检索组成员/成员资格的主要内容,如果未能解决你的问题,请参考以下文章