如何查询自给定时间以来 LDAP(Active Directory)删除的对象?
How to query for LDAP (Active Directory) deleted objects since a given time?
我需要使用 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))
仍然没有。
我怎样才能完成这项工作?
您使用什么编程语言进行查询?它似乎是需要作为搜索属性的一部分启用的 LDAP Extended Control(特别是 LDAP_SERVER_SHOW_DELETED_OID
),而不是在 LDAP 查询字符串本身中启用。所以这取决于您搜索方式的实现。
例如,在 .NET 中,DirectorySearcher
class 有一个 Tombstone
property 可以启用此功能。
或者 PowerShell 的 Get-ADObject
命令有 -IncludeDeletedObjects
.
我需要使用 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))
仍然没有。
我怎样才能完成这项工作?
您使用什么编程语言进行查询?它似乎是需要作为搜索属性的一部分启用的 LDAP Extended Control(特别是 LDAP_SERVER_SHOW_DELETED_OID
),而不是在 LDAP 查询字符串本身中启用。所以这取决于您搜索方式的实现。
例如,在 .NET 中,DirectorySearcher
class 有一个 Tombstone
property 可以启用此功能。
或者 PowerShell 的 Get-ADObject
命令有 -IncludeDeletedObjects
.