community.windows.win_domain_user 模块 – 管理 Windows 活动目录用户帐户

注意

此模块是 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 活动目录用户帐户。

参数

参数

注释

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

字符串

指定要连接到的活动目录域服务实例。

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

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

domain_username

字符串

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

如果未设置此项,则在使用 CredSSP 或 Kerberos 和凭据委托时,将改用 Ansible 用于登录的用户名。

email

字符串

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

这是 AD 中的记录,不会对任何电子邮件服务器或系统进行任何配置。

enabled

布尔值

yes 将启用用户帐户。

no 将禁用帐户。

选项

  • false

  • true ← (默认)

firstname

字符串

配置用户的姓名(名字)。

groups

列表 / 元素=字符串

根据 groups_action 的值,将用户添加到或从此组列表中移除。

要移除除主要组之外的所有组,请设置 groups=<principal group name> 并将 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" ← (默认)

  • "忽略"

  • "警告"

标识

字符串

用于在活动目录中查找用户的标识参数。

此值可以采用以下形式 Distinguished NameobjectGUIDobjectSidsAMAccountName

如果未设置,则默认为 name

名称

字符串 / 必需

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

密码

字符串

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

要启用帐户 - *已启用* - 必须已在帐户上配置密码,或者您必须在此处提供密码。

密码过期

布尔值

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

no 将清除过期的密码标志。

这与 *password_never_expires* 互斥。

选项

  • false

  • true

密码永不过期

布尔值

yes 将设置密码永不过期。

no 将允许密码过期。

这与 *password_expired* 互斥。

选项

  • false

  • true

路径

字符串

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

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

邮政编码

字符串

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

sam_account_name

字符串

community.windows 1.7.0 中添加

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

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

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

spn

别名:spns

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

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

spn_action

字符串

在 community.windows 1.10.0 中添加

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

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

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

选项

  • "add"

  • "remove"

  • "replace" ← (默认)

状态

字符串

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

absent 时,如果用户帐户存在,则将其删除。

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

选项

  • "不存在"

  • "存在" ← (默认)

  • "查询"

州/省

字符串

配置用户的州或省份。

街道

字符串

配置用户的街道地址。

姓氏

别名:姓氏

字符串

配置用户的姓氏。

更新密码

字符串

always 将始终更新密码。

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

when_changed 仅在更改时设置密码。

选项

  • "always" ← (默认)

  • "创建时"

  • "已更改时"

用户主体名称

字符串

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

这不是必需的,但对于现代版本的活动目录来说是最佳实践。

格式为 <username>@<domain>

用户无法更改密码

布尔值

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

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

选项

  • false

  • true

备注

注意

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

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

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

另请参见

另请参见

ansible.windows.win_domain

确保 Windows 域的存在。

ansible.windows.win_domain_controller

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

community.windows.win_domain_computer

管理活动目录中的计算机。

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

返回值

常用返回值已在 此处 记录,以下是此模块特有的字段

描述

account_locked

布尔值

如果帐户被锁定,则为 true

返回:始终

示例:false

已更改

布尔值

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

返回:始终

示例:false

city

字符串

用户城市

返回:始终

示例:"Indianapolis"

company

字符串

用户公司

返回:始终

示例:"RedHat"

country

字符串

用户国家/地区

返回:始终

示例:"US"

已创建

布尔值

是否创建了用户

返回:始终

示例:true

委托人

列表 / 元素=字符串

在 community.windows 1.10.0 中添加

允许委托的委托人

返回:始终

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

description

字符串

帐户说明

返回:始终

示例:"服务器管理员"

display_name

字符串

用户显示名称

返回:始终

示例:"Nick Doe"

可分辨名称

字符串

用户帐户的 DN

返回:始终

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

email

字符串

用户电子邮件地址

返回:始终

示例:"[email protected]"

enabled

字符串

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

返回:始终

示例:"True"

firstname

字符串

用户名字

返回:始终

示例:"Nick"

groups

列表 / 元素=字符串

帐户所属的 AD 组

返回:始终

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

消息

字符串

用户是否存在情况的摘要消息

返回:始终

示例:"用户 nick 存在"

名称

字符串

帐户上的用户名

返回:始终

示例:"nick"

密码过期

布尔值

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

返回:始终

示例:false

密码已更新

布尔值

如果密码在此次执行期间发生更改,则为 true

返回:始终

示例:true

邮政编码

字符串

用户邮政编码

返回:始终

示例:"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"]

状态

字符串

用户帐户的状态

返回:始终

示例:"present"

州/省

字符串

用户州或省份

返回:始终

示例:"IN"

街道

字符串

用户街道地址

返回:始终

示例:"123 4th St."

姓氏

字符串

用户的姓氏

返回:始终

示例:"Doe"

用户主体名称

字符串

帐户的用户主体名称

返回:始终

示例:"[email protected]"

用户无法更改密码

字符串

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

返回:始终

示例:"False"

状态

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

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

作者

  • Nick Chandler (@nwchandler)

  • Joe Zollo (@zollo)