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

如何用Python ldap3模块在指定OU中创建带描述的AD组

没问题!我来帮你搞定用ldap3在指定OU创建AD组并添加描述的操作,基于你已有的代码,咱们直接完善出可运行的版本:

完整代码示例

# import class and constants
from ldap3 import Server, Connection, ALL

# define the server
s = Server('servername', get_info=ALL)

# define the connection and bind to AD (必须先绑定才能执行写入操作)
c = Connection(s, user='user_dn', password='user_password')
# 执行绑定验证
if not c.bind():
    print(f"绑定失败: {c.result}")
    exit()

# 定义目标OU和组信息
ou = "OU=Staff,OU=RU,DC=DOMAIN,DC=LOCAL"
groupname = "ADM_Local"
description = "local group for access to IPA"

# 构造组的完整DN (AD组的DN格式是 CN=组名,OU路径)
group_dn = f"CN={groupname},{ou}"

# AD组需要的核心属性
group_attributes = {
    'objectClass': ['top', 'group'],  # AD组必须的对象类
    'sAMAccountName': groupname,      # AD中组的账号标识,通常和组名一致
    'description': description,       # 你需要的描述信息
    'groupType': 0x80000000           # 标识这是一个**安全组**(通讯组用0x00000004)
}

# 执行创建组的操作
try:
    c.add(group_dn, attributes=group_attributes)
    if c.result['result'] == 0:
        print(f"组 {groupname} 已成功创建在OU {ou} 中")
    else:
        print(f"创建失败: {c.result['message']}")
except Exception as e:
    print(f"发生异常: {str(e)}")

# 最后关闭连接
c.unbind()

关键细节说明

  • 绑定操作:原代码只定义了Connection,但必须调用c.bind()完成身份验证,否则没有权限创建AD条目。
  • 组DN构造:AD中组的条目DN必须以CN=组名开头,再拼接指定的OU路径,这是LDAP条目命名的标准规则。
  • groupType参数:这是AD特有的属性,0x80000000代表安全组(用于权限控制),如果是仅用于邮件分发的通讯组则用0x00000004。
  • objectClass:AD组至少需要top和group这两个对象类,这是LDAP定义组对象的基础要求。

如果创建过程中遇到错误,可以通过c.result查看详细的错误信息,常见问题包括:用户权限不足、OU路径拼写错误、组名已存在等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:32:49