如何在ldap3中删除用户的属性?

时间:2016-07-01 05:10:03

标签: python active-directory ldap ldap-query

我知道如何修改属性。

c.modify('cn=user1,ou=users,o=company',
         {'userWorkstations': [(MODIFY_REPLACE, ['Win-7'])]})

link显示了如何删除条目。

但是如何在ldap?

中删除用户的属性(例如:'userWorkstations'

2 个答案:

答案 0 :(得分:2)

LDAP修改请求有各种" Modification Types"可以执行。

你可以"添加"属性的值。 你可以"删除"属性的值。 你可以" REPLACE"属性的值。 你可以" INCREMENT"属性的值。 (仅限整数类型)

如果修改类型为" 删除"并且存在没有任何值的属性描述,然后将从条目中删除指定属性的所有值。在正常情况下,修改操作不能与删除修改类型一起使用以删除尚不存在的属性(尽管可以使用" replace"修改类型来完成此操作)。

精确的编程语言可能会简化这些修改类型的API。

答案 1 :(得分:1)

Giovanni在评论中说:

  ldap3中的

:c.modify(' cn = user1,ou = users,o = company',{' userWorkstations':   [(MODIFY_DELETE,[' Win-7'])]}) - cannatag 7月3日和16日15:22

我只想指出,在ldap3中还有一个与LDAP的ORM风格交互,看起来会略有不同:

UserObj.userWorkstations - =' Win-7'

或删除属性,无论它可能具有什么值:

UserObj.userWorkstations.remove()

更改后将其提交回LDAP: UserObj.entry_commit_changes()

将UserObj创建为适合进行这些调用的Writer对象。