You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pyad创建密码永不过期的Active Directory用户

如何用pyad创建“密码永不过期”的AD用户

嘿,我来帮你搞定这个问题!当你用pyad创建Active Directory用户后,想要开启“密码永不过期”选项,本质是要修改用户的userAccountControl属性——这是AD里控制账户行为的位掩码属性,其中“密码永不过期”对应的标志位是65536(十六进制0x10000)。

pyad的ADUser.create()方法本身没有直接设置这个选项的参数,所以我们需要在创建用户后手动更新这个属性。这里有两种实现方式,推荐用pyad内置常量来提升代码可读性:

修改后的完整代码

from pyad import *
import pyadconstants

# 设置AD服务器和认证信息
pyad.set_defaults(ldap_server="IT-LHQ-DC1.LIFEALIKE.LAB", username="administrator", password="password")
# 定位到目标OU
ou = pyad.adcontainer.ADContainer.from_dn("ou=All_Users, dc=LIFEALIKE, dc=LAB")
# 创建新用户
new_user = pyad.aduser.ADUser.create("test.02", ou, password="password")

# 获取当前用户的userAccountControl值(转为整数格式)
current_uac = new_user.get_attribute("userAccountControl", as_integer=True)
# 按位或操作,保留原有属性的同时添加“密码永不过期”标志
new_uac = current_uac | pyadconstants.UAC_PASSWORD_NEVER_EXPIRES
# 保存属性修改
new_user.update_attribute("userAccountControl", new_uac)

代码说明

  • 导入pyadconstants模块后,直接用UAC_PASSWORD_NEVER_EXPIRES常量代替硬编码的65536,代码更直观,也避免记错数字。
  • 用get_attribute("userAccountControl", as_integer=True)获取当前属性值并转为整数,方便进行位运算。
  • 按位或操作|能确保我们在不改动原有其他账户属性的前提下,新增“密码永不过期”的设置。

如果不想导入额外模块,也可以直接用数字65536替换常量,效果完全一致:

new_uac = current_uac | 65536

这样创建出来的用户就会自动勾选“密码永不过期”选项啦!

内容的提问来源于stack exchange,提问作者ScalaMan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:59:37