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

时间:2018-05-08 04:30:09

标签: active-directory ldap incremental-search

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

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

示例:

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

到目前为止,这么好。

但是查询已删除的记录呢。有没有办法在LDAP中查询自给定时间以来删除的所有项目?

我确实知道Active Directory标记要删除的对象(实际上并没有删除东西)。我知道有一些方法可以删除对象:(See this msdn post

但我还没有多少运气创建一个LDAP查询,对于一个非常普通的活动目录服务器,可以获得已删除帐户的列表。

相关:LDAP query for deleted users

我也试过了这个建议:

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

仍然没什么。

我该如何使这项工作?

1 个答案:

答案 0 :(得分:1)

您使用什么编程语言进行查询?它似乎是LDAP Extended Control(具体为LDAP_SERVER_SHOW_DELETED_OID),需要作为搜索属性的一部分启用,而不是在LDAP查询字符串本身中启用。所以这取决于你如何搜索的实现。

例如,在.NET中,DirectorySearcher类有一个Tombstone property来启用此功能。

或PowerShell的Get-ADObject命令有-IncludeDeletedObjects