3

使用python-ldap,我想删除我的 LDAP 树的整个子树。

我想出了:

def ldap_recursive_delete_s(con, base_dn):
    search = con.search_s(base_dn, ldap.SCOPE_SUBTREE)
    delete_list = [dn for dn, _ in search]
    delete_list.reverse()

    for dn in delete_list:
        con.delete_s(dn)

我想知道是否有任何类型的“递归”选项,如ldaprmCLI 工具。

4

2 回答 2

5

对于那些以后可能会偶然发现这个问题的人,这是我为自己写的一篇又快又脏的文章(基本上是@navendu 所说的):

def recursive_delete(conn, base_dn):
    search = conn.search_s(base_dn, ldap.SCOPE_ONELEVEL)

    for dn, _ in search:
        recursive_delete(conn, dn)

    print "Deleting: ", base_dn
    conn.delete_s(base_dn)
于 2015-03-31T14:54:28.820 回答
2

我不认为有这样的选择。

您将不得不迭代和删除条目。我想提一下的一个问题是,您不能删除下面有对象的 OU,除非您在 AD 中有不同的设置。

于 2014-02-09T14:55:13.587 回答