簡體   English   中英

使用 python-ldap 在 AD 中搜索已刪除的用戶/組

[英]Search deleted users/groups in AD with python-ldap

如果您在 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>

它無法顯示已刪除的對象。 這段代碼有什么問題?

您需要將ldap 控件添加到您的搜索中:為特定操作創建請求控件,然后將控件集合作為可選參數傳遞給您的搜索請求。

在您的情況下,此 AD 的 OID 是1.2.840.113556.1.4.417

LDAP_SERVER_SHOW_DELETED_OID:1.2.840.113556.1.4.417

與 LDAP 操作一起使用,以指定邏輯刪除和刪除對象對操作可見。

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])

您也可以 scope 您的搜索基礎為CN=Deleted Objects, DC=xx,DC=com因為這是所有已刪除對象的最終位置。 您應該首先確保已刪除的對象在那里。 您可以使用ldp.exe進行檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM