AD-LDS上locking时间属性的复制并不紧急

我在同一个子网上有两台LDS服务器。 他们很好地复制。 如果我改变一个属性,它会在15秒后被复制。

LDS被configuration为遵守密码策略。 当用户进行了太多错误的密码尝试时,他的账户被locking,并且相应地设置用户的lockoutTime属性。

但是lockoutTime不会被复制为紧急的 。 事实上,除非在目录中有其他改变,否则不会被复制。 lockoutTime属性将被复制。

这是一个(编辑的Wireshark)跟踪。 它显示正常复制trafic

 No. Time Protocol Length Info 133 16:23:02 DRSUAPI 562 DsGetNCChanges request 134 16:23:02 DRSUAPI 3042 DsGetNCChanges response 152 16:23:17 DRSUAPI 562 DsGetNCChanges request 157 16:23:17 DRSUAPI 242 DsGetNCChanges response 230 16:24:57 DRSUAPI 562 DsGetNCChanges request 231 16:24:57 DRSUAPI 2930 DsGetNCChanges response 246 16:25:12 DRSUAPI 562 DsGetNCChanges request 

在那之后,我locking了用户(用FOR循环和ldifde )。 没有任何反应,直到我放弃并更改用户的description属性,然后大约15秒钟后,我看到复制通过。

  1984 16:31:05 DRSUAPI 562 DsGetNCChanges request 1985 16:31:05 DRSUAPI 2930 DsGetNCChanges response 

locking时间和描述被复制。 如上所述,如果我设置lockoutTime=0 ,则在15秒后进行常规复制!

我已启用复制诊断 。 实例日志中没有任何内容显示,因为没有复制。 当复制触发时,我看到一堆事件1239为最新的属性,两个1240事件。 一个用于属性lockoutTime和一个用于description (我用来触发复制)。

我已经启用了网站之间的更改通知 ,重新启动了这两个服务,但没有任何区别。 也许是因为这两台服务器在同一个子网上。

Active Directory技术规范明确列出了lockoutTime作为要复制的紧急属性之一 。

什么可以防止lockoutTime属性的紧急复制?

(通过给微软的支持电话回答我自己的问题)

这是AD-LDS中的一个错误(错误检查ID 354126)。 它影响Windows Server 2008,我不知道Server 2012。

问题是没有通知发送到副本(既不紧急也不正常)。 当帐户locking存储在数据库中时,LDS不会更新全局通知列表。 因此,只有在计划的复制启动之后复制才会发生。

在解决方法是创build一个调用的计划任务

 repadmin /syncall localhost:389 

如果没有任何东西需要复制,这个调用将会产生约42k的networkingstream量。

解决问题的另一种方法是……什么也不做。 这个错误可以让攻击者在猜测密码的时候增加一倍的机会。 这很难被利用,因为用户通常不直接调用LDS。 即使他们这样做,这个错误也只会增加一倍。