【问题标题】:Avoiding Active Directory Uniqueness Constraint Violation During Rename在重命名期间避免违反 Active Directory 唯一性约束
【发布时间】:2015-08-25 01:08:17
【问题描述】:

我们的环境有 2 个 Windows 域控制器在 W2k12 上成功复制。在该域中,与其他所有人一样,我们有大量帐户,其中一些帐户属性必须是唯一的。出于不值得在这里访问的业务原因,我们有时需要在帐户之间交换属性。也就是说,user1 可能拥有 foo@domain.com 的(强制唯一)邮件,但我们很多人需要将其交换到 bar@domain.com 以便为 user2 提供邮件属性 foo@domain.com。

如果我执行 LDAP 更新以将 user1 的邮件设置为 bar@domain.com,获得成功的结果,然后将 foo@domain.com 分配给 user2,我经常(但不总是)遇到唯一性约束违规.即使我在操作之间关闭会话;最多暂停 2 秒;等等。如果我给它 5-10 秒,它似乎可以通过,但是我有一个 HTTP 响应,所以我真的很想在那之前得到一个结果。

这给我留下了两个问题:

  1. 尽管 MOD 成功,但导致违规的原因是什么?
  2. 是否有一种合理的方式来交换这些电子邮件,而无需线程化操作并希望它成功(或让用户等待 10-15 秒)?

【问题讨论】:

  • 大概是复制延迟。确保您针对特定域控制器执行这两项操作。如果这不起作用,您可能必须强制复制并等待它完成 - 我相信这是可能的,但我不知道细节。
  • 谢谢@HarryJohnston;不幸的是,这发生在同一个 DC 上,交替使用相同的 LDAP 会话或使用顺序会话。我将研究复制问题,看看是否有任何方法可以远程强制它。
  • 我冒险进一步猜测它与全局目录有关,但我不知道这是否有帮助。
  • 确实如此,谢谢@HarryJohnston。每次都可以连接到托管 GC 的节点。用于动态查找的用例有点 PITA,但可以轻松避免 non-expired-cached-constraint 问题。

标签: windows active-directory ldap windows-server-2012 windows-server


【解决方案1】:

回想起来,很明显,为了检查唯一性,AD 会查询全局目录,要求您等待与您的 DC 正在检查的任何全局目录服务器进行复制。正如您所说,解决方案是在本身托管全局目录副本的 DC 上执行操作。

在您的特定场景中,只有两个 DC,我建议您将它们都设为全局目录服务器。除了重命名问题之外,您目前没有任何冗余操作需要 GC。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2020-04-01
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 2020-07-22
    相关资源
    最近更新 更多