community.windows.win_domain_user 模块 – 管理 Windows Active Directory 用户账户

注意

此模块是 community.windows 集合(版本 2.3.0)的一部分。

如果您正在使用 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.windows

要在 playbook 中使用它,请指定:community.windows.win_domain_user

已弃用

已在以下版本中移除:

3.0.0 版本

原因:

此模块已移动到 microsoft.ad 集合中。

替代方案:

请改用 microsoft.ad.user 模块。

概要

  • 管理 Windows Active Directory 用户账户。

参数

参数

注释

account_locked

布尔值

no 将在用户帐户被锁定时解锁该帐户。

请注意,没有以管理员身份锁定帐户的方法。

帐户因用户操作而被锁定;作为管理员,您只能解锁被锁定的帐户。

如果您希望以管理方式禁用帐户,请将 enabled 设置为 no

选项

  • false

  • true

attributes

字典

要在用户上设置的自定义 LDAP 属性的字典。

这可用于设置未作为模块参数公开的自定义属性,例如 telephoneNumber

请参阅示例,了解如何格式化此参数。

city

字符串

配置用户的城市。

company

字符串

配置用户的公司名称。

country

字符串

配置用户的国家/地区代码。

请注意,这是一个由两个字符组成的 ISO 3166 代码。

delegates

别名: principals_allowed_to_delegate

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

指定主体对象的数组。此参数设置计算机帐户对象的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性。

必须指定为可分辨名称 CN=shenetworks,CN=Users,DC=ansible,DC=test

description

字符串

用户的描述

display_name

字符串

在 community.windows 1.12.0 中添加

配置用户的显示名称。

domain_password

字符串

username 的密码。

domain_server

字符串

指定要连接的 Active Directory 域服务实例。

可以是 FQDN 或 NetBIOS 名称的形式。

如果未指定,则该值基于运行 PowerShell 的计算机的域。

domain_username

字符串

与 AD 交互时要使用的用户名。

如果未设置,则在使用带有凭据委派的 CredSSP 或 Kerberos 时,将改用 Ansible 用于登录的用户。

email

字符串

配置用户的电子邮件地址。

这是 AD 中的一个记录,不会执行任何操作来配置任何电子邮件服务器或系统。

enabled

布尔值

yes 将启用用户帐户。

no 将禁用该帐户。

选项

  • false

  • true ← (默认)

firstname

字符串

配置用户的名字(给定名称)。

groups

列表 / 元素=字符串

根据 groups_action 的值,在此组列表中添加或删除用户。

要删除除主要组之外的所有组,请设置 groups=<主要 名称>groups_action=replace

请注意,用户不能从其主要组(例如,“域用户”)中删除。

groups_action

字符串

如果为 add,则将用户添加到 groups 中的每个组,如果该用户还不是成员。

如果为 remove,则从 groups 中的每个组中删除用户。

如果为 replace,则将用户添加为 groups 中每个组的成员,并从任何其他组中删除。

选项

  • "add"

  • "remove"

  • "replace" ← (默认)

groups_missing_behaviour

字符串

在 community.windows 1.10.0 中添加

控制当 groups 指定的组为无效组名时会发生什么。

fail 是默认值,如果任何组不存在,则会返回错误。

ignore 会忽略任何不存在的组。

warn 会对任何不存在的组显示警告,但会继续执行,不会失败。

选项

  • "fail" ← (默认)

  • "ignore"

  • "warn"

identity

字符串

用于在 Active Directory 中查找用户的身份参数。

此值可以是 Distinguished NameobjectGUIDobjectSidsAMAccountName 的形式。

如果未设置,则默认为 name

name

字符串 / 必填

要创建、删除或修改的用户的名称。

password

字符串

可选地将用户的密码设置为此(纯文本)值。

要启用帐户(enabled),必须已经在该帐户上配置密码,或者您必须在此处提供密码。

password_expired

布尔值

yes 将要求用户在下次登录时更改其密码。

no 将清除过期密码标志。

这与 password_never_expires 互斥。

选项

  • false

  • true

password_never_expires

布尔值

yes 将设置密码永不过期。

no 将允许密码过期。

这与 password_expired 互斥。

选项

  • false

  • true

path

字符串

新用户的容器或 OU;如果您不指定此项,用户将被放置在域中用户的默认容器中。

仅当创建新用户时才能设置路径;如果您在现有用户上指定路径,则用户的路径将不会更新 - 您必须删除用户(例如,state=absent),然后使用适当的路径重新添加用户。

postal_code

字符串

配置用户的邮政编码/邮编。

sam_account_name

字符串

在 community.windows 1.7.0 中添加

配置帐户的 SAM 帐户名称 (sAMAccountName)。

由于 Windows 2000 之前的限制,这最多允许 20 个字符。

如果未设置,则默认为 upnname 中指定的 <username>

spn

别名: spns

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

指定帐户的服务主体名称。此参数设置帐户的 ServicePrincipalNames 属性。此属性的 LDAP 显示名称 (ldapDisplayName) 为 servicePrincipalName。

spn_action

字符串

在 community.windows 1.10.0 中添加

如果为 add,则 SPN 将添加到用户。

如果为 remove,则 SPN 将从用户中删除。

如果为 replace,则定义的 SPN 集将覆盖当前的 SPN 集。

选项

  • "add"

  • "remove"

  • "replace" ← (默认)

state

字符串

当为 present 时,创建或更新用户帐户。

当为 absent 时,如果用户帐户存在,则删除该帐户。

当为 query 时,检索用户帐户详细信息而不进行任何更改。

选项

  • "absent"

  • "present" ← (默认)

  • "query"

state_province

字符串

配置用户的州或省份。

street

字符串

配置用户的街道地址。

surname

别名: lastname

字符串

配置用户的姓氏。

update_password

字符串

always 将始终更新密码。

on_create 将仅为新创建的用户设置密码。

when_changed 将仅在密码更改时设置密码。

选项

  • "always" ← (默认)

  • "on_create"

  • "when_changed"

upn

字符串

配置帐户的用户主体名称 (UPN)。

这不是必需的,但对于现代版本的 Active Directory,最好进行配置。

格式为 <username>@<domain>

user_cannot_change_password

布尔值

yes 将阻止用户更改其密码。

no 将允许用户更改其密码。

选项

  • false

  • true

注释

注意

  • 适用于 Windows 2012R2 及更高版本。

  • 如果在非域控制器的服务器上运行,则必须使用通过 CredSSP 或 Kerberos 进行委派的凭据委派,或者必须设置 domain_usernamedomain_password

  • 请注意,一些人已确认在启用 AD 和 AD Web 服务的 Windows 2008R2 服务器上成功运行,但这没有像 Windows 2012R2 那样经过相同程度的测试。

另请参阅

另请参阅

ansible.windows.win_domain

确保 Windows 域的存在。

ansible.windows.win_domain_controller

管理 Windows 主机的域控制器/成员服务器状态。

community.windows.win_domain_computer

管理 Active Directory 中的计算机。

community.windows.win_domain_group

创建、修改或删除域组。

ansible.windows.win_domain_membership

管理 Windows 主机的域/工作组成员资格。

ansible.windows.win_user

管理本地 Windows 用户帐户。

community.windows.win_user_profile

管理 Windows 用户配置文件。

示例

- name: Ensure user bob is present with address information
  community.windows.win_domain_user:
    name: bob
    firstname: Bob
    surname: Smith
    display_name: Mr. Bob Smith
    company: BobCo
    password: B0bP4ssw0rd
    state: present
    groups:
      - Domain Admins
    street: 123 4th St.
    city: Sometown
    state_province: IN
    postal_code: 12345
    country: US
    attributes:
      telephoneNumber: 555-123456

- name: Ensure user bob is created and use custom credentials to create the user
  community.windows.win_domain_user:
    name: bob
    firstname: Bob
    surname: Smith
    password: B0bP4ssw0rd
    state: present
    domain_username: DOMAIN\admin-account
    domain_password: SomePas2w0rd
    domain_server: [email protected]

- name: Ensure user bob is present in OU ou=test,dc=domain,dc=local
  community.windows.win_domain_user:
    name: bob
    password: B0bP4ssw0rd
    state: present
    path: ou=test,dc=domain,dc=local
    groups:
      - Domain Admins

- name: Ensure user bob is absent
  community.windows.win_domain_user:
    name: bob
    state: absent

- name: Ensure user has spn's defined
  community.windows.win_domain_user:
    name: liz.kenyon
    spn:
      - MSSQLSvc/us99db-svr95:1433
      - MSSQLSvc/us99db-svr95.vmware.com:1433

- name: Ensure user has spn added
  community.windows.win_domain_user:
    name: liz.kenyon
    spn_action: add
    spn:
      - MSSQLSvc/us99db-svr95:2433

- name: Ensure user is created with delegates and spn's defined
  community.windows.win_domain_user:
    name: shmemmmy
    password: The3rubberducki33!
    state: present
    groups:
      - Domain Admins
      - Enterprise Admins
    delegates:
      - CN=shenetworks,CN=Users,DC=ansible,DC=test
      - CN=mk.ai,CN=Users,DC=ansible,DC=test
      - CN=jessiedotjs,CN=Users,DC=ansible,DC=test
    spn:
      - MSSQLSvc/us99db-svr95:2433

返回值

常见的返回值记录在这里,以下是此模块特有的字段

Key

描述

account_locked

布尔值

如果帐户被锁定,则为 true

返回: 总是

示例: false

changed

布尔值

如果在执行期间帐户发生了更改,则为 true

返回: 总是

示例: false

city

字符串

用户所在的城市

返回: 总是

示例: "Indianapolis"

company

字符串

用户的公司

返回: 总是

示例: "RedHat"

country

字符串

用户的国家/地区

返回: 总是

示例: "US"

created

布尔值

是否创建了用户

返回: 总是

示例: true

delegates

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

允许委派的主体

返回: 总是

示例: ["CN=svc.tech.unicorn,CN=Users,DC=ansible,DC=test", "CN=geoff,CN=Users,DC=ansible,DC=test"]

description

字符串

帐户的描述

返回: 总是

示例: "Server Administrator"

display_name

字符串

用户的显示名称

返回: 总是

示例: "Nick Doe"

distinguished_name

字符串

用户帐户的 DN

返回: 总是

示例: "CN=nick,OU=test,DC=domain,DC=local"

email

字符串

用户的电子邮件地址

返回: 总是

示例: "[email protected]"

enabled

字符串

如果帐户已启用,则为 true;如果已禁用,则为 false

返回: 总是

示例: "True"

firstname

字符串

用户的名字

返回: 总是

示例: "Nick"

groups

列表 / 元素=字符串

该帐户所属的 AD 组

返回: 总是

示例: ["Domain Admins", "Domain Users"]

msg

字符串

用户是存在还是不存在的摘要消息

返回: 总是

示例: "User nick is present"

name

字符串

帐户上的用户名

返回: 总是

示例: "nick"

password_expired

布尔值

如果帐户密码已过期,则为 true

返回: 总是

示例: false

password_updated

布尔值

如果在本次执行期间密码已更改,则为 true

返回: 总是

示例: true

postal_code

字符串

用户的邮政编码

返回: 总是

示例: "46033"

sam_account_name

字符串

在 community.windows 1.7.0 中添加

帐户的 SAM 帐户名称

返回: 总是

示例: "nick"

sid

字符串

帐户的 SID

返回: 总是

示例: "S-1-5-21-2752426336-228313920-2202711348-1175"

spn

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

服务主体名称

返回: 总是

示例: ["HTTPSvc/ws1intel-svc1", "HTTPSvc/ws1intel-svc1.vmware.com"]

state

字符串

用户帐户的状态

返回: 总是

示例: "present"

state_province

字符串

用户的州或省份

返回: 总是

示例: "IN"

street

字符串

用户的街道地址

返回: 总是

示例: "123 4th St."

姓氏

字符串

用户的姓氏

返回: 总是

示例: "Doe"

upn

字符串

帐户的用户主体名称

返回: 总是

示例: "[email protected]"

user_cannot_change_password

字符串

如果用户不允许更改密码,则为 true

返回: 总是

示例: "False"

状态

  • 此模块将在 3.0.0 版本中删除。[已弃用]

  • 有关更多信息,请参见 已弃用

作者

  • Nick Chandler (@nwchandler)

  • Joe Zollo (@zollo)