community.windows.win_domain_computer 模块 – 管理 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_computer

已弃用

已在以下版本中删除:

版本 3.0.0

原因:

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

替代方案:

请改用 microsoft.ad.computer 模块。

概要

  • 使用 Windows 桥接计算机启动 New-ADComputer、Get-ADComputer、Set-ADComputer、Remove-ADComputer 和 Move-ADObject powershell 命令,在 Active Directory 中创建、读取、更新和删除计算机。

参数

参数

注释

description

字符串

指定对象的描述。

此参数设置对象的 Description 属性的值。

此属性的 LDAP 显示名称 (ldapDisplayName) 为 description。

默认值: ""

dns_hostname

字符串

指定计算机的完全限定域名 (FQDN)。

此参数设置计算机对象的 DNSHostName 属性。

此属性的 LDAP 显示名称为 dNSHostName。

当 *state=present* 时为必需。

domain_password

字符串

*username* 的密码。

domain_server

字符串

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

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

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

domain_username

字符串

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

如果未设置此项,则在使用 CredSSP 或 Kerberos 进行凭据委派时,将使用 Ansible 用于登录的用户。

enabled

布尔值

指定是否启用帐户。

启用的帐户需要密码。

此参数设置帐户对象的 Enabled 属性。

此参数还会设置 Active Directory 用户帐户控制 (UAC) 属性的 ADS_UF_ACCOUNTDISABLE 标志。

选项

  • false

  • true ← (默认)

managed_by

字符串

在 community.windows 1.3.0 中添加

要分配给 LDAP managedBy 属性的值。

此值可以是 Distinguished NameobjectGUIDobjectSidsAMAccountName 的形式,有关更多详细信息,请参阅示例。

name

字符串 / 必需

指定对象的名称。

此参数设置 Active Directory 对象的 Name 属性。

此属性的 LDAP 显示名称 (ldapDisplayName) 为 name。

odj_blob_path

字符串

将保存 BLOB 的文件的路径。如果省略,将使用临时文件。

如果 *offline_domain_join=output*,则文件将在返回其内容后被删除。

BLOB 文件的父目录必须存在;不会创建中间目录。

offline_domain_join

字符串

在目录中配置计算机并提供一个 BLOB 文件,该文件可以在目标计算机/映像上用于在脱机时将其加入域。

none 值不执行任何脱机加入操作。

output 在输出中返回 BLOB。BLOB 应视为机密(它包含机器密码),因此在使用此选项时请使用 no_log

path 将脱机域加入 BLOB 文件保留在目标计算机上以供以后使用。将返回路径。

如果计算机已存在,则不会创建/返回 BLOB,并且该模块将像没有脱机域加入一样运行。

选项

  • "none" ← (默认)

  • "output"

  • "path"

ou

字符串

指定创建新对象的组织单位 (OU) 或容器的 X.500 路径。当 *state=present* 时为必需。

必须转义特殊字符,有关详细信息,请参阅 Distinguished Names

sam_account_name

字符串

指定计算机的安全帐户管理器 (SAM) 帐户名称。

最大长度为 256 个字符,为了与旧版操作系统兼容,建议使用 15 个字符。

此属性的 LDAP 显示名称 (ldapDisplayName) 为 sAMAccountName。

如果省略,则该值与 name 相同。

请注意,所有计算机的 SAMAccountName 都需要以 $ 结尾。

如果省略 $,则会在末尾添加。

state

字符串

指定计算机在 Active Directory 中应为 present (存在) 还是 absent (不存在)。

选项

  • "absent" (不存在)

  • "present" ← (默认)

说明

注意

  • 有关脱机域加入的更多信息,请参阅分步指南

  • 当使用 ODJ BLOB 将计算机加入域时,必须将其写入文件。

  • 该文件必须使用 UTF-16 编码(在 PowerShell 中,此编码称为 Unicode),并且必须以空字符结尾。请参阅示例。

  • 脱机域加入过程的 djoin.exe 部分不会使用 domain_serverdomain_usernamedomain_password

  • 这必须在安装了 ActiveDirectory powershell 模块的主机上运行。

另请参阅

另请参阅

ansible.windows.win_domain

确保 Windows 域的存在。

ansible.windows.win_domain_controller

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

community.windows.win_domain_group

创建、修改或删除域组。

ansible.windows.win_domain_membership

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

community.windows.win_domain_user

管理 Windows Active Directory 用户帐户。

示例

- name: Add linux computer to Active Directory OU using a windows machine
  community.windows.win_domain_computer:
    name: one_linux_server
    sam_account_name: linux_server$
    dns_hostname: one_linux_server.my_org.local
    ou: "OU=servers,DC=my_org,DC=local"
    description: Example of linux server
    enabled: true
    state: present
  delegate_to: my_windows_bridge.my_org.local

- name: Remove linux computer from Active Directory using a windows machine
  community.windows.win_domain_computer:
    name: one_linux_server
    state: absent
  delegate_to: my_windows_bridge.my_org.local

- name: Provision a computer for offline domain join
  community.windows.win_domain_computer:
    name: newhost
    dns_hostname: newhost.ansible.local
    ou: 'OU=A great\, big organizational unit name,DC=ansible,DC=local'
    state: present
    offline_domain_join: true
    odj_return_blob: true
  register: computer_status
  delegate_to: windc.ansible.local

- name: Join a workgroup computer to the domain
  vars:
    target_blob_file: 'C:\ODJ\blob.txt'
  ansible.windows.win_shell: |
    $blob = [Convert]::FromBase64String('{{ computer_status.odj_blob }}')
    [IO.File]::WriteAllBytes('{{ target_blob_file }}', $blob)
    & djoin.exe --% /RequestODJ /LoadFile '{{ target_blob_file }}' /LocalOS /WindowsPath "%SystemRoot%"

- name: Restart to complete domain join
  ansible.windows.win_restart:

返回值

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

描述

djoin

字典

有关调用 djoin.exe 的信息。

返回: 当 offline_domain_join 为 True 且计算机不存在时

invocation

字符串

用于调用 djoin.exe 的完整命令行

返回: 总是

示例: "djoin.exe /PROVISION /MACHINE compname /MACHINEOU OU=Hosts,DC=ansible,DC=local /DOMAIN ansible.local /SAVEFILE blobfile.txt"

rc

整数

djoin.exe 的返回代码

返回: 当不是检查模式时

示例: 87

stderr

字符串

djoin.exe 的 stderr 输出

返回: 当不是检查模式时

示例: "Invalid input parameter combination."

stdout

字符串

djoin.exe 的 stdout 输出

返回: 当不是检查模式时

示例: "Computer provisioning completed successfully."

odj_blob

字符串

脱机域加入 BLOB。当处于检查模式或 offline_domain_join 为 ‘path’ 时,这是一个空字符串。

此字段包含脱机域加入 BLOB 文件的 base64 编码的原始字节。

返回: 当 offline_domain_join 不是 ‘none’ 且计算机不存在时

示例: "<a long base64 string>"

odj_blob_file

字符串

目标主机上脱机域加入 BLOB 文件的路径。如果指定了 odj_blob_path,则此路径将与该路径匹配。

返回: 当 offline_domain_join 为 ‘path’ 且计算机不存在时

示例: "C:\\Users\\admin\\AppData\\Local\\Temp\\e4vxonty.rkb"

状态

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

  • 有关详细信息,请参阅 已弃用

作者

  • Daniel Sánchez Fábregas (@Daniel-Sanchez-Fabregas)

  • Brian Scholer (@briantist)