【问题标题】:get deleted AD users/groups by python-ldap通过 python-ldap 获取已删除的 AD 用户/组
【发布时间】:2015-04-02 08:05:48
【问题描述】:

如果您在 Windows AD 中删除用户或组,它将在“删除对象”中。 我想使用 python ldap lib 来获取它们。 代码:

<code>
import ldap
uri = "ldap://10.64.74.17"
user = "XXXXXXXXXX"
password = "XXXXXXXXXXXX"
ldap.set_option(ldap.OPT_REFERRALS, 0)
ldap.set_option(ldap.OPT_NETWORK_TIMEOUT, 5)
ldap.protocol_version = 3
ldapClient = ldap.initialize(uri)
ldapClient.simple_bind_s(user, password)
filter = "(&(objectclass=person)(isDeleted=true)(!(objectclass=computer)))"
results = ldapClient.search_s("DC=xx,DC=com", ldap.SCOPE_SUBTREE,filter)
for result in results:
  print result
ldapClient.unbind_s()
</code>

它无法显示已删除的对象。 这段代码有什么问题?

【问题讨论】:

    标签: python ldap


    【解决方案1】:

    您需要在搜索中添加ldap control。它看起来像这样。基本上为特定操作创建请求控件(在您的情况下,此 AD 的 OID 为 1.2.840.113556.1.4.417)。然后将一组控件作为可选参数传递给您的搜索请求。

    tombstone_control = ('1.2.840.113556.1.4.417',criticality=1)
    results = ldapClient.search_s("DC=xx,DC=com", ldap.SCOPE_SUBTREE,filter, [tombstone_control])
    

    我认为这会奏效。您还可以将搜索范围限定为CN=Deleted Objects, DC=xx,DC=com,因为这是所有已删除对象的最终位置。您应该首先确保已删除的对象在那里。可以使用ldp.exe查看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 1970-01-01
      相关资源
      最近更新 更多