代码之家  ›  专栏  ›  技术社区  ›  Nicholas DiPiazza

如何查询自给定时间以来已删除的LDAP(Active Directory)对象?

  •  1
  • Nicholas DiPiazza  · 技术社区  · 6 年前

    我需要使用LDAP查询Active Directory林中的增量更改。

    简单的部分是查询对象的增量更新,以及创建新对象。为此,您可以使用 whenChanged 所有物

    示例:

    (&(objectClass=user)(whenChanged>=20180501000000.0Z))
    

    到目前为止,一切顺利。

    但查询已删除的记录又如何呢。是否有某种方法可以查询自给定时间以来删除的所有项目的LDAP?

    我确实知道Active Directory会将对象标记为删除(实际上不会删除内容)。我知道有一些方法可以删除对象:( See this msdn post )

    但是,我还没有很好地创建一个LDAP查询,在一个非常普通的active directory服务器上,它可以获得一个已删除帐户的列表。

    相关: LDAP query for deleted users

    我也尝试过这个建议:

    (&(isDeleted=TRUE)(userAccountControl:1.2.840.113556.1.4.803:=512))
    

    还是没什么。

    我怎样才能做到这一点?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Gabriel Luci    6 年前

    您使用什么编程语言进行查询?这似乎是一个 LDAP Extended Control (特别是 LDAP_SERVER_SHOW_DELETED_OID )这需要作为搜索属性的一部分启用,而不是在LDAP查询字符串本身中启用。因此,这取决于搜索方式的实现。

    例如,在中。NET,则 DirectorySearcher 类具有 Tombstone property 这将实现这一点。

    或PowerShell的 Get-ADObject 命令已 -IncludeDeletedObjects