LDAP 过滤器:仅获取自给定日期以来更新的用户

Rac*_* B. 5 php ldap active-directory

我在设置 Active Directory 过滤器来同步包含所有用户的 MySQL 数据库时遇到问题。我无法创建一个仅检索更新日期大于给定日期的用户的过滤器。

我尝试在过滤器上使用 uSNChanged 属性,但它返回 0 结果。

有什么建议欢迎留言,谢谢大家

Gab*_*uci 7

您将按whenChanged属性进行搜索。像这样的东西:

(&(whenChanged>=20180425150000.0-0400)(objectClass=user)(objectCategory=person))
Run Code Online (Sandbox Code Playgroud)

格式非常简单:

{year}{month}{date}{hour}{minute}{seconds}.{milliseconds}-{timezone}
Run Code Online (Sandbox Code Playgroud)

例如,在上面的示例中,我使用了今天东部时间下午 3:00 的日期。

有一些注意事项需要记住:

  1. 每个域控制器上的属性whenChanged并不完全相同,但它们会很接近(半小时内)。原因是因为复制 - 时间设置为每个 DC 收到更改的时间。
  2. 当用户登录时,lastLogon时间会更新,从而触发whenChanged属性更新。因此,仅仅因为whenChanged更改,并不意味着有人修改了帐户。这也意味着此搜索将返回比您预期更多的帐户。