在两个不同的域控制器上创建了相同的用户

Gra*_*ant 5 active-directory

假设您有 2 个域控制器,DC1 和 DC2。

无论出于何种原因,两个不同的人去创建一个新的用户帐户 - 一个在 DC1 上创建,另一个在 DC2 上创建。

据推测,这两个帐户现在具有相同的用户名,但 SID 不同。

当 DC 下次尝试同步时会发生什么?

Hop*_*00b 10

您会遇到复制冲突

其中一个帐户将保留所需的名称,另一个帐户将自动重命名为其他名称以解决冲突。

这里实际用到了这个例子,下面贴出相关部分。

考虑 contoso.com 域中 jsmith 用户对象的示例。DC1 上的管理员将 jsmith 的描述更改为“营销”。几乎同时,DC3 上的管理员将同一用户的描述更改为“销售和营销”。此时,DC1 和 DC3 关于 jsmith 的描述属性的信息比较如图 9 所示。

在此处输入图片说明

如果 DC2 同时收到这两种变化,它显然需要确定哪一个是“获胜”变化。解决冲突的决胜局顺序如下:

具有更高versionID的修改将被接受为“获胜”更改;“丢失”更改将被覆盖。在这种情况下,两条记录的 versionID 都是 2,因此我们需要进入第二个决胜局。

如果两条记录具有相同的 versionID,则具有较晚时间戳的更改将被接受为获胜更改;丢失的更改将被覆盖。在这种情况下,来自 DC3 的原始写入的时间戳较晚,因此 jsmith 的描述将设置为“销售和营销”。在 versionID 和时间戳都相同的罕见情况下,我们需要第三个决定性的决胜局:

如果两个记录具有相同的 versionID 和时间戳,则由具有较低编号 GUID 的 DC 发起的写入将获胜;来自编号较高的 GUID 的写入将被覆盖。因此,如果 DC1 的 GUID 是 1234567890,而 DC3 的 GUID 是 2345678901,那么如果 versionID 和时间戳都相同,则来自 DC1 的原始写入将获胜。

您可能在想,“让时间戳成为第一个决胜局不是更有意义吗?” 这并不像你想象的那么简单。如果时间戳是 Active Directory 冲突解决中的主要决胜局,那么恶意管理员传播他或她的更改唯一需要做的就是在一个特定的 DC 上设置时钟,以便它始终获胜时间戳。

解决冲突的对象创建

如果创建了两个具有相同名称的对象,Active Directory 将使用上一节中描述的相同的三个决胜局来确定哪个是“获胜”对象。然而,与上一节不同的是,“丢失”对象不会被覆盖。相反,丢失的对象使用字符 CNF(冲突对象)重命名,后跟冒号和“丢失”对象的 GUID。这允许管理员更有条理地确定应保留哪些对象以及应删除哪些对象。