我已成功为我管理的一个 Active Directory 林设置了 Google Apps Directory Sync (GADS)。此林创建时的功能级别为 2012R2。现在,我正在为第二个林设置 GADS。此林以前处于 2003 功能级别,但后来提升到了 2008 功能级别。
在 GADS 中,我使用了一对用户帐户搜索规则,这些规则会暂停在 AD 中被禁用的 Google Apps 用户,并取消暂停在 AD 中被启用的用户。这种安排在我设置的第一个林中运行良好。但在我的新林中,它返回的数据不完整。
以下是我正在使用的查询:
不暂停 (&(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
暂停 (&(objectCategory=person)(userAccountControl:1.2.840.113556.1.4.803:=2))
问题在于:如果我在 GADS 界面上针对该暂停查询运行“测试 LDAP 查询”,它只会返回两个用户。但总共应该返回 36 个用户。由于查询未找到已禁用用户的完整列表,因此当我在 AD 中禁用某个用户并运行同步时,GADS 不会在 Google Apps 中禁用该用户。
当我在非 GADS LDAP 查询工具(VTLDAPQuery)中运行相同查询时,它会返回完整列表。
当我测试查询时,GADS 返回的两个用户是在 2003 天内创建的。另外 34 个用户是我相信,在功能级别提升后创建。
答案1
好吧,我终于搞清楚了,现在我对自己很生气。问题在于用于运行 LDAP 查询的服务帐户权限不足。在还没有像我们这样混乱的森林中,可能不需要特殊权限,但在我的特定域中,将 LDAP 查询帐户添加到“域管理员”立即解决了问题。我必须继续尝试找到所需的最低权限级别,但显然权限才是问题所在。
答案2
我刚刚遇到了一个类似的问题,Google Cloud Directory Sync 中的 LDAP 查询将返回 109 个用户,但 Microsoft 的 LDP 工具中的相同查询返回 118 个用户。两种情况下的 BaseDN 相同,使用相同的 BindDN 用户帐户登录。查询非常简单:(objectclass=user)
事实证明这是可以想象到的最简单的解决方案 - GCDS 会自动过滤结果,仅选择那些具有正确填写的“邮件”属性的结果。如果您的用户在其 AD 属性中没有电子邮件地址,或者电子邮件地址的格式无效,则 GCDS 会将该用户从搜索结果中删除。
这可能不是每种情况下结果不完整的问题,但这是我的问题,所以我希望这个答案对某些人有帮助。