microsoft.ad.user 模块 – 管理 Active Directory 用户
注意
此模块是 microsoft.ad 集合(版本 1.7.1)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install microsoft.ad
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求。
要在 playbook 中使用它,请指定: microsoft.ad.user
。
概要
管理 Active Directory 用户及其属性。
要求
执行此模块的主机需要满足以下要求。
ActiveDirectory
PowerShell 模块
参数
参数 |
注释 |
---|---|
请注意,没有办法以管理员身份锁定帐户。 帐户因用户操作而被锁定;作为管理员,您只能解锁被锁定的帐户。 如果您希望以管理方式禁用帐户,请将 *enabled* 设置为 选项
|
|
要在 AD 对象上添加、删除或设置的属性。 每个属性选项的值应该是一个字典,其中键是 LDAP 属性,例如 属性值可以是原始字符串、整数或布尔值,以在相关属性上添加、删除或设置。 该值也可以是一个字典,其中 *type* 键设置为
字符串属性值使用在被管理的 AD 对象上区分大小写的匹配进行比较。 有关更多信息,请参阅LDAP 属性帮助。 默认值: |
|
如果要添加的属性及其值(s)的字典,如果它们尚未存在于被管理的 AD 对象中。 这用于可以包含多个值的属性,如果该属性仅允许单个值,请改用 *set*。 默认值: |
|
如果要从被管理的 AD 对象中删除的属性及其值(s)的字典,如果它们存在。 这用于可以包含多个值的属性,如果该属性仅允许单个值,请改用 *set*。 默认值: |
|
要在被管理的 AD 对象上设置的所有属性及其值(s)的字典。 如果现有值与请求的值不匹配,这将替换任何现有值。 不检查属性值的顺序,仅检查请求的值是否是对象属性上的唯一值。 将此设置为 null 或空列表以清除该属性的任何值。 默认值: |
|
配置用户的城市。 这是在 |
|
配置用户的公司名称。 这是在 |
|
配置用户的国家/地区代码。 请注意,这是一个双字符的 ISO 3166 代码。 这是在 |
|
当前 AD 对象可以信任委派以添加、删除或设置的主体对象。 每个子键值都是一个值列表,格式为 这是在 这是一个高度敏感的属性,因为它允许指定的主体在与被管理的 AD 计算机对象进行身份验证时模拟任何帐户。 要清除所有主体,请使用带有空列表的 set。 有关 DN 查找如何工作的更多信息,请参阅 DN 查找属性。 有关如何添加/删除/设置列表选项的更多信息,请参阅 设置列表选项值。 |
|
将指定的主体添加为允许委派的主体。 除非由 remove 指定或不在 set 中,否则任何未由 add 指定的现有主体都将保持不变。 |
|
控制在查找失败而找不到 DN 时要采取的操作。
选项
|
|
删除指定为允许委派的主体。 除非定义了 set,否则任何未由 remove 指定的现有主体都将保持不变。 |
|
将指定的主体设置为允许委派的主体。 如果此列表中未指定任何现有主体,则将删除这些主体。 指定一个空列表以删除所有允许委派的主体。 |
|
要设置的 AD 对象的描述。 这是在 |
|
要设置的 AD 对象的显示名称。 这是 |
|
指定在使用 name 指定的服务器时应使用的凭据。 要指定默认域服务器的凭据,请使用不带 name 键的条目或使用 domain_username 和 domain_password 选项。 这可以在 play 的模块默认值 中的 有关更多信息,请参阅 模块中的 AD 身份验证。 默认值: |
|
这些凭据所针对的服务器的名称。 此值应与在其他指定要使用的自定义服务器的选项中使用的值相对应,例如引用位于不同 AD 服务器上的 AD 身份的选项。 可以在一个条目中省略此键,以指定在未指定服务器时要使用的默认凭据,而不是使用 domain_username 和 domain_password。 |
|
连接到 name 指定的服务器时要使用的密码。 |
|
连接到 name 指定的服务器时要使用的用户名。 |
|
domain_username 的密码。 不带 name 键的 domain_credentials 子条目也可用于指定默认域身份验证的凭据。 这可以在 play 的模块默认值 中的 |
|
指定要连接的 Active Directory 域服务实例。 可以是 FQDN 或 NetBIOS 名称的形式。 如果未指定,则该值基于运行 PowerShell 的计算机的默认域。 可以使用不带 name 键的 domain_credentials 条目或通过 domain_username 和 domain_password 指定自定义凭据。 这可以在 play 的模块默认值 中的 |
|
与 AD 交互时要使用的用户名。 如果未设置,则用于身份验证的用户将是连接用户。 除非使用 Kerberos 与凭据委派或 CredSSP 进行身份验证,或者在任务中使用 become,否则 Ansible 将无法使用连接用户。 不带 name 键的 domain_credentials 子条目也可用于指定默认域身份验证的凭据。 这可以在 play 的模块默认值 中的 |
|
配置用户的电子邮件地址。 这是 AD 中的记录,不会执行任何操作来配置任何电子邮件服务器或系统。 这是在 |
|
如果指定了 password,则创建新帐户时的默认值为 选项
|
|
配置用户的名字(给定名称)。 这是在 |
|
指定用户要添加、删除或设置为的组成员身份。 要清除所有组成员身份,请使用带有空列表的 set。 请注意,无法从其主要组(例如,“域用户”)中删除用户。 尝试这样做将显示警告。 从组中添加和删除用户是在组 AD 对象上完成的。 如果组是不同域中的对象,则可能需要显式的 server 和 domain_credentials 才能使其正常工作。 每个子键都设置为要添加、删除或设置为此 AD 用户成员身份的组对象列表。 组可以是 每个子键值都是组对象列表,格式为 有关 DN 查找如何工作的更多信息,请参阅 DN 查找属性。 有关如何添加/删除/设置列表选项的更多信息,请参阅 设置列表选项值。 |
|
要将用户添加到的组。 |
|
控制当
选项
|
|
要从中删除用户的组。 |
|
用户是其成员的唯一组。 如果不在指定列表中,则这将清除所有现有组。 设置为一个空列表以清除该用户的所有组成员身份。 |
|
用于查找要管理的 AD 对象的 AD 对象的标识。 如果未设置 name,当尝试使用新的 name 重命名对象,或者当尝试将对象移动到不同的 path 时,则必须指定此项。 标识可以是表示 如果省略,则要管理的 AD 对象将使用 当使用 microsoft.ad.computer 模块时,如果提供的 |
|
要管理的 AD 对象的 如果指定了 identity,并且通过该标识找到的对象的名称与此值不匹配,则将重命名该对象。 如果未设置 identity,则必须指定此项。 |
|
可选地将用户的密码设置为此值(纯文本)。 要启用帐户 - enabled - 必须已在帐户上配置密码,或者您必须在此处提供密码。 使用 update_password 选项来控制如何检查密码的幂等性。 |
|
这与 password_never_expires 互斥。 选项
|
|
这与 password_expired 互斥。 选项
|
|
新对象应存在的 OU 或容器的路径。 如果创建新对象,则新对象将在指定的路径中创建。如果未指定路径,则域的 如果管理由 identity 找到的现有对象,则找到的对象的路径将移动到此选项指定的路径。如果未指定路径,则不会移动对象。 模块 microsoft.ad.computer, microsoft.ad.user, 和 microsoft.ad.group 都有自己的默认路径,该路径在 Active Directory 域控制器上配置。 可以将其设置为字面值 |
|
配置用户的邮政编码/邮政编码。 这是在 |
|
将对象标记为受保护,防止意外删除。 这会应用拒绝访问权限,禁止正常删除对象,并且需要先删除保护,然后才能通过 GUI 或 Ansible 之外的任何其他工具删除该对象。 即使 AD 对象被标记为受保护防止删除,使用 state=absent 仍会删除该对象。 选项
|
|
要为用户设置的 如果省略,则在创建新用户时使用 name 值。 |
|
指定要添加、删除或设置的帐户的服务主体名称。 这是在 要清除所有服务主体名称,请使用 set 和空列表。 有关如何添加/删除/设置列表选项的更多信息,请参阅 设置列表选项值。 |
|
要添加到 |
|
要从 |
|
设置为 如果不在指定的列表中,这将清除任何现有的 SPN。 设置为一个空列表,以清除 AD 对象上的所有 SPN。 |
|
设置为 设置为 当 state=present 时,必须设置选项 name。 使用 选项
|
|
配置用户的州/省份。 这是在 |
|
配置用户的街道地址。 这是在 |
|
配置用户的姓氏(姓氏)。 这是在 |
|
如果帐户未启用或已过期,则使用 选项
|
|
配置帐户的用户主体名称 (UPN)。 这不是必需的,但最好为现代版本的 Active Directory 配置它。 格式为 这是在 |
|
选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 完整 |
可以在 check_mode 中运行并返回更改状态预测,而无需修改目标,如果不支持,则会跳过操作。 |
|
支持: 完整 |
当处于 diff 模式时,将返回有关已更改的内容(或在 check_mode 中可能需要更改的内容)的详细信息 |
|
平台: windows |
可以对其进行操作的目标操作系统/系列 |
备注
注意
有关从 community.windows.win_domain_user 迁移到此模块的帮助,请参阅 win_domain_user 迁移。
此模块必须在安装了
ActiveDirectory
模块的 Windows 目标主机上运行。某些 LDAP 属性只能设置一个值,而另一些属性可以有多个值。某些属性也是只读的,无法更改。建议查看属性的架构元数据,其中
System-Only
是只读值,而Is-Single-Value
是仅具有 1 个值的属性。尝试为
Is-Single-Value
属性设置多个值会导致未定义的行为。如果在不是域控制器的服务器上运行,则必须使用通过 CredSSP 或 Kerberos 的委派进行凭据委派,或者必须设置 domain_username,domain_password。
另请参阅
另请参阅
- microsoft.ad.domain
确保 Windows 域的存在。
- microsoft.ad.domain_controller
管理 Windows 主机的域控制器/成员服务器状态。
- microsoft.ad.group
管理 Active Directory 组对象。
- microsoft.ad.object
管理 Active Directory 对象。
- microsoft.ad.object_info
收集 Active Directory 对象的信息。
- microsoft.ad.computer
管理 Active Directory 计算机对象。
- 迁移指南
此模块替代
community.windows.win_domain_user
。有关详细信息,请参阅迁移指南。- community.windows.win_domain_user
管理 Windows Active Directory 用户帐户。
示例
- name: Ensure user bob is present with address information
microsoft.ad.user:
identity: bob
firstname: Bob
surname: Smith
company: BobCo
password: B0bP4ssw0rd
state: present
groups:
set:
- Domain Admins
street: 123 4th St.
city: Sometown
state_province: IN
postal_code: 12345
country: US
attributes:
set:
telephoneNumber: 555-123456
- name: Ensure user bob is created and use custom credentials to create the user
microsoft.ad.user:
identity: 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
microsoft.ad.user:
identity: bob
password: B0bP4ssw0rd
state: present
path: ou=test,dc=domain,dc=local
groups:
set:
- Domain Admins
- Domain Users
- name: Ensure user bob is absent
microsoft.ad.user:
identity: bob
state: absent
- name: Ensure user has only these spn's defined
microsoft.ad.user:
identity: liz.kenyon
spn:
set:
- MSSQLSvc/us99db-svr95:1433
- MSSQLSvc/us99db-svr95.vmware.com:1433
- name: Ensure user has spn added
microsoft.ad.user:
identity: liz.kenyon
spn:
add:
- MSSQLSvc/us99db-svr95:2433
- name: Ensure user is created with delegates and spn's defined
microsoft.ad.user:
identity: shmemmmy
password: The3rubberducki33!
state: present
groups:
set:
- Domain Admins
- Domain Users
- Enterprise Admins
delegates:
set:
- 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:
set:
- MSSQLSvc/us99db-svr95:2433
# The name option is the name of the AD object as seen in dsa.msc and not the
# sAMAccountName. For example, this will change the sAMAccountName of the user
# CN=existing_user,CN=Users,DC=domain,DC=com to 'new_sam_name'.
# E.g. This will change
- name: Change the user's sAMAccountName
microsoft.ad.user:
name: existing_user
sam_account_name: new_sam_name
state: present
# This will rename the AD object that is specified by identity to 'new_name'.
# The identity value can be the object's GUID, SecurityIdentifier, or
# sAMAccountName. It is important to use the identity value when renaming or
# moving a user object to ensure the object is moved/renamed rather than a new
# one being created.
- name: Rename user LDAP name
microsoft.ad.user:
name: new_name
identity: '{{ user_obj.object_guid }}'
state: present
# Like changing the name example above, the identity option is needed to ensure
# the existing user object specified is moved rather than a new one created at
# the path specified.
- name: Move user object to different OU
microsoft.ad.user:
name: user
path: OU=Admins,DC=domain,DC=com
identity: '{{ user_obj.sid }}'
state: present
返回值
常用返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
已创建、删除或编辑的 AD 对象的 返回: 总是 示例: |
|
已创建、删除或编辑的 AD 对象的 如果在检查模式下创建新对象,则将返回 0 的 GUID。 返回: 总是 示例: |
|
被管理的帐户的安全标识符 (SID)。 如果在检查模式下创建新用户,则 SID 将为 返回: 总是 示例: |