活动目录之USN-原创译文

对象的元数据在复制过程中如何被更改

让我们看一下4步骤的一个例子:

1.server A上一个对象(一个用户)被创建

2.对象被复制到B

3.对象接着在B上被修改

4.在B上的修改被复制给A

整个过程如图:

How metadata is modified during replication

Step1:A上用户的建立

当在A上建立一个用户对象时,A就是原始DC,在建立新用户的活动目录事务动作中,一个USN (1000)被分配

给该事务,用户对象的usnCreated和usnChanged属性自动被设置为1000.所有该用户对象的其他属性

被一些数据初始化,如下:(注:对象初次建立所有的属性都有相同的USN

对象属性值根据系统的缺省值或者在建立过程中提供的参数被设置

对象属性的USN被设置为1000

对象属性的版本号被设置为1

对象属性的时间戳被设置为对象创建时的时间

对象的原始写Server的GUID属性被设置为server A的GUID

对象的原始写server USN属性被设置为 1000 (该事务的USN号)

 你可以从中知道这个用户对象在事务处理1000中被建立。--usnCreated=1000

这个用户对象最后一次修改是在事务处理1000中。  --usnChanged=1000

这个用户对象从来没有被更改过原始值 version number=1

这个用户对象的每个属性的值被设置的原始出处是server A,事务号1000(原始serverGuid,原始server USN)

对象的属性值可以用repadmin,ADSIEdit,LDP等工具查看

Step2.复制原始写到server B

对象被复制到server B, B增加用户对象到活动目录副本--以复制写的方式。

在这个事务中,USN 2500被分配。用户对象的usnCreated和usnChanged属性值被修改为server B上相应的事务USN 2500.

由此可知这个用户是在事务2500中被建立在serverB上的。对象从来没有被修改过,应为version number =1

还可以看出对象的每个属性的原始写server和原始USN.

Step3. server B上修改用户密码

Originating write原始写(密码修改)发生在server B上的replicated-write复制写用户对象上,该事务的USN为3777,用户对象的usnChanged属性也改为3777.

同时:

密码的版本号由1变为2

密码usn被设置为3777

密码时间戳被修改

密码的原始写server从A改为B,原始USN改为3777

 

Step4.密码修改被复制给server A

注意更新发生在属性级别而非对象级别。因此仅仅密码属性被复制。

类似于step2. A上被分配usn 1333,对象的usnChanged属性值被修改为A上的事务号1333

 

 在真实的DC复制过程中,有2处不同:

1.从A复制到B,CN属性会显示原始写来自B而不是A,这牵涉到后台的实现细节,

仅此一处发生这样的差异

2.密码的修改实际上更新了好几个属性,而非仅仅1处,这涉及到dBCSPwd,unicodePwd,ntPwdHistory,lmPwdHistory等属性。

这也牵涉到后台的实现细节。对于其他属性,单个的修改只会影响单个属性和复制。密码只是一个特殊的例子。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值