LDAP和Active Directory会导致缺少某些结果的字段

Otu*_*tus 7 ldap active-directory

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

这里有一些提炼细节:

  • 如果将查询设置为对任何这些字段进行过滤(例如在市场营销部门组中获取未禁用的帐户列表),它们将从结果集中消失(因为就AD而言,它们已丢失) .

  • 如果使用具有高权限的域管理员帐户执行查询,则查询工作正常.

  • 有问题的记录大约是总用户记录的1/4 - 1/3.大多数似乎是较新的记录(我们认为一段时间,这是可能涉及到升级到2003的域控制器服务器上),但也有一些较旧的记录似乎受到影响.

  • 粗略地查看两个类似的记录,其中一个记录可以通过任何帐户查看,另一个记录不会显示任何明显的差异.

所以我最好的猜测是,有一些权限拒绝设置(可能在模式级别?),这使得某些字段受到限制.我应该注意,域管理员永远不会故意设置任何此类权限.

更新/解决方案: ADSI Edit(在Windows 2003支持工具中)帮助我将其归结为Authenticated User角色的默认权限更改.对于某些人来说,该角色包含读取帐户限制(包含userAccountControl)和读取组成员身份(memberOf),而对于其他人则不包含.

差异的原因仍然不明确,尽管大多数"坏"记录是在切换到域控制器的Windows 2003 之后创建的,这可能是一个因素.

解决方案: 这仍然有点未定,但最有可能是更新的组策略,并结合更新现有帐户的脚本.

Iga*_*ban 3

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