重命名期间避免Active Directory唯一性约束冲突

时间:2015-06-10 00:39:03

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

我们的环境有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秒)?

1 个答案:

答案 0 :(得分:1)

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

在您的特定场景中,只有两个DC,我建议您同时使用这两个DC全局编录服务器。除了重命名问题之外,您目前没有任何需要GC的操作的冗余。