使用Ansible创建AD域组时无法更新objectClass属性如何解决

故障根因
community.windows.win_domain_group模块默认会过滤objectClass这类结构性属性的更新请求,模块设计上不支持通过attributes参数修改该属性,避免破坏AD对象的结构一致性。- 若域控制器未部署「身份管理 for UNIX」组件,
posixGroup不属于AD schema支持的对象类,提交修改请求会直接被域控制器校验驳回。 - 已存在的AD组不支持直接覆盖
objectClass的全量值,仅支持在原有值基础上追加新的对象类。
解决方案
改用支持全属性操作的community.windows.win_domain_object模块完成配置,操作如下:
- 先确认域控制器已安装「Active Directory 域服务」下属的「身份管理 for UNIX」功能,确保
posixGroup对象类存在于AD架构中。 - 确认执行Ansible任务的域账号拥有对应AD对象的属性写入权限。
- 根据场景选择对应配置:
场景1:创建新组时直接指定posixGroup属性
- name: Create AD group with posixGroup class community.windows.win_domain_object: name: "{{ item.name }}" type: group state: present attributes: sAMAccountName: "{{ item.name }}" groupScope: global groupType: -2147483646 # 对应安全组、全局作用域 gidNumber: "{{ item.gid }}" objectClass: - top - group - posixGroup with_items: - name: group1 gid: 1234
场景2:给已存在的组追加posixGroup类
- name: Add posixGroup objectClass to existing AD group community.windows.win_domain_object: name: group1 type: group state: present attributes: objectClass: add: posixGroup gidNumber: 1234
验证方法
任务执行完成后,可在域控制器上运行PowerShell命令Get-ADGroup group1 -Properties objectClass,gidNumber,查看返回的属性值是否符合预期。
内容的提问来源于stack exchange,提问作者viswam raju
相关产品推荐
相关产品推荐

