[英]How to force user to change password at next logon with ldap3 python module?
我正在使用 ldap3 通過 python 腳本在 Active Directory (Win 2012R2) 中創建一個用戶帳戶。 我唯一無法設置的屬性是“用戶下次登錄時必須更改密碼”。 您能否建議一種在使用創建后立即標記此復選框的方法? 我試圖更改 UserAccountControl 和 pwdLastSet 屬性但沒有運氣(
-1 是唯一一個有效參數
password_expire = {"pwdLastSet": (MODIFY_REPLACE, [-1])}
connect.modify(dn=user_dn, changes=password_expire)
密碼過期 0x800000 8388608
password_expire = {"UserAccountControl": (MODIFY_REPLACE, [8388608])}
connect.modify(dn=user_dn, changes=password_expire)
注意:下面給出的解決方案可能只有在即將發布的 LDAP3 庫版本 (v2.5) 之后才有效。 目前,我不知道可以為 OP 提供所需解決方案的解決方法。
檢查此處列出的變更日志:
對於版本 v2.5,AD 中的 pwdLAstSet 對 0 和 -1 有效。
---暫時沒有發布,只是評論(感謝Anton Belov的通知)。
如果pwdLastSet
的值設置為 0,並且 UAC 屬性不包含標志UF_DONT_EXPIRE_PASSWD
,則用戶將在下次登錄時被要求更改密碼。 在 MSDN 上查看Pwd-Last-Set 屬性以獲取更多信息。
按照上面的建議修改您的代碼將在用戶帳戶的復選框中顯示用於更改密碼的勾號。
僅使用您的第一個代碼,並將值設置為 0,如下所述。
password_expire = {"pwdLastSet": (MODIFY_REPLACE, [-1])} # // use 0 instead of -1.
connect.modify(dn=user_dn, changes=password_expire)
# // you don't need to play with UserAccountControl further...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.