Active directory LDAP&;Active Directory结果某些结果缺少字段

Active directory LDAP&;Active Directory结果某些结果缺少字段,active-directory,ldap,Active Directory,Ldap,当使用LDAP查询Active Directory结构以查找用户帐户时,某些记录(但不是全部)缺少某些关键字段,特别是memberOf和userAccountControl(其中有一个位标志指示帐户是否被禁用) 以下是一些细化细节: 如果查询设置为在任何 这些字段(例如获取 中的非禁用帐户列表 市场营销部(集团),他们 从结果集中消失(自 就广告而言,他们是 失踪) 如果执行了查询 拥有高度特权的域名 管理员帐户,查询工作正常 好的 有问题的记录约占用户记录总数的1/4-1/3。大多数似乎是较

当使用LDAP查询Active Directory结构以查找用户帐户时,某些记录(但不是全部)缺少某些关键字段,特别是memberOf和userAccountControl(其中有一个位标志指示帐户是否被禁用)

以下是一些细化细节:

  • 如果查询设置为在任何 这些字段(例如获取 中的非禁用帐户列表 市场营销部(集团),他们 从结果集中消失(自 就广告而言,他们是 失踪)

  • 如果执行了查询 拥有高度特权的域名 管理员帐户,查询工作正常 好的

  • 有问题的记录约占用户记录总数的1/4-1/3。大多数似乎是较新的记录(我们曾一度认为这可能与在域控制器服务器上升级到2003有关),尽管一些较旧的记录似乎也受到了影响

  • 粗略查看两个相似的记录,一个记录的整个记录可以被任何帐户查看,另一个记录没有显示任何明显的差异

因此,我最好的猜测是,存在某种权限拒绝集(可能在模式级别?),这使得某些字段受到限制。我应该注意到,域管理员从未有意设置任何此类权限

更新/解决方案:ADSI编辑(in)帮助我确定身份验证用户角色默认权限的更改。对于某些人来说,该角色包含读取帐户限制(其中包含userAccountControl)和读取组成员资格(memberOf),而对于其他人来说则没有

造成差异的原始原因仍然不清楚,尽管大多数“坏”记录是在域控制器切换到Windows 2003后创建的,这可能是一个因素


解决方案:这仍然有点悬而未决,但很可能是一个更新的组策略,结合一个脚本来更新现有帐户。

您可以使用adsi edit检查特定用户在特定字段上的权限。不知何故,它们一定已经被改变了,你必须将它们恢复为默认值。也许他们改变了一些用户的ou级别。在这种情况下,您可以批量修复它们。

有趣的是,您建议的两个属性都是只读的。成员(组上的属性)在Active Directory中维护。用户上的MemberOf值是基于查询计算的,实际上并不是静态存储在用户对象上

我非常确定userAccountControl也是一个只读属性,通过LDAP。(需要其他方法来直接操纵它。)

不确定这是否有帮助,但可能是一个正确方向的提示。(或者完全错了……)