跳转至

自动加域

自动加域功能允许云桌面在创建过程中自动加入企业的 Active Directory (AD) 域环境。加入后,该云桌面将受域控制器统一管理,用户可以使用域帐号登录。

自动加域的核心优势:

  • 效率提升:避免运维人员在桌面批量交付时手动执行加域操作,极大降低工作量。
  • 一致性保障:通过自动化流程确保所有桌面均成功入域,防止漏加导致的安全或权限纰漏。

一、 限制条件与准备工作

在配置自动加域前,请确认满足以下限制条件:

  • 系统支持:目前仅支持 Windows 10Windows 11 的桌面。
  • 池类型支持:仅 专用桌面池动态桌面池 支持自动加域。
  • 关键组件:自动加域高度依赖 Mole 代理端与管理端的协作,必须确保镜像内 Mole 版本符合要求并正常指向管理端。

二、 操作步骤

2.1 环境准备

  1. 上传 Mole 代理:登录系统控制台,进入“系统 -> 代理端版本”页面,上传版本号 >=6.17.4 的 Mole,并将其设置为默认版本。 上传mole版本

  2. 配置 AD 域:登录租户控制台,进入“资源”->“用户”页面,确保 AD 域配置正确,检测通过并保存。 检查AD域配置

2.2 制作加域专用镜像

制作一个能够自动加域的镜像是最关键的环节。请按照以下步骤在一台专用桌面(母版机)上完成:

如果对应云平台不支持镜像,此处的镜像概念等同于模板。

  1. 创建母版桌面:在租户控制台创建一台 Win10 或 Win11 桌面(不设置为自动加域),用于准备制作镜像。 创建不加域桌面

  2. 母版桌面内部配置

    • 网络配置

      • 桌面必须能够动态获取 IP 地址(DHCP)。
      • 重要:桌面的 DNS1 地址(不能是 DNS2)必须指向 AD 域控(静态配置或通过 DHCP 获取)。
    • 系统状态

      • 确保桌面处于未加域状态。
      • Windows 更新保持清洁,无待处理的安装项。

      检查更新

    • 代理端配置

      • Mole 版本升级至 >=6.17.4。

      检查mole版本

      • 配置 Mole 正确指向管理端。

      配置mole

    • Win11 特殊处理:如果是制作 Windows 11 镜像,必须以管理员权限打开命令提示符(CMD),执行以下命令以移除可能导致 Sysprep 失败的预装包:

      powershell -ExecutionPolicy Bypass -Command "Get-AppxPackage -AllUsers | Where-Object { $_.Name -like \"*Microsoft.Ink.Handwriting.Main*\" } | Remove-AppxPackage"

  3. 创建镜像:配置完成后,有以下两种方式生成镜像:

    • 租户侧创建:直接在租户控制台基于该桌面创建“自定义镜像”。
    • 系统侧创建:在底层云平台基于该虚拟机制作为镜像,然后回到系统控制台的云平台处执行“同步镜像”,将新制作的镜像同步为“系统镜像”,供多个租户使用。

三、 创建云桌面自动加域

在使用上述镜像创建云桌面或模板时,勾选“自动加域”选项。

3.1 主机名 (Hostname)

  • 单台创建:支持手动指定主机名。建议点击“检测”按钮查看是否格式正确或冲突。
  • 批量创建:不支持手动指定。系统将自动生成 WIN-xxxxxDESKTOP-xxxxx 格式的主机名(长度不超过 15 字符)。
  • 创建模板:不支持指定主机名。

单台创建时: 创建自动加域云桌面

批量创建时: 创建多个自动加域云桌面

3.2 组织单位 (OU)

  • 可选填。若不填,系统默认将桌面加入 AD 域的 Computers 容器中。
  • 填写后可点击“检测”查看 OU 路径是否存在。

3.3 加域成功确认

云桌面创建成功后,过段时间进入云桌面的控制台查看系统信息,显示类似如下说明自动加域成功: 加入域

注意:自动加域的启动过程、执行过程都需要耗费一定的时间,期间系统会自动重启,需耐心等待。


四、 帮助支持与故障排查

若桌面创建后长时间未成功入域,请按以下步骤排查:

4.1 模拟 Sysprep 检查

自动加域依赖 Windows 的 Sysprep 机制。请在母版机以管理员权限执行:

C:\Windows\System32\Sysprep\sysprep.exe`

注意:是sysprep.exe,不是 sysprep.bat。

选择“进入系统全新体验 (OOBE)”,勾选“通用 (Generalize)”,选择“重新启动”:

运行sysprep.exe

若报错,请分析日志 C:\Windows\System32\Sysprep\Panther\setupact.log

4.2 模拟脚本检查

尝试手动运行加域脚本看是否报错: 执行 C:\Program Files\Mole\scripts\joinDomain.bat,样例参数:

# 基本加域
joinDomain.bat -d example.com -u Administrator -p password

# 指定主机名与OU
joinDomain.bat -d example.com -u Administrator -p password -c myhostname -m "ou=test,dc=example,dc=com"

4.3 提取 Mole 日志

在管理后台桌面操作处点击 “提取日志”,内容选择 Mole,下载并查看内部执行逻辑。 提取日志 提取mole日志


五、 常见问题 (FAQ)

  • 错误 1:Reserved storage in use

setupact.log 中报错:

Error                 SYSPRP Sysprep_Clean_Validate_Opk: Audit mode cannot be turned on if reserved storage is in use. An update or servicing operation may be using reserved storage.; hr = 0x800F0975

解决方法:登录 Windows 控制台,进行完整的Windows系统更新并重启,重新制作镜像。

  • 错误 2:AppxPackage 移除失败(常见于 Win11)

setupact.log 中报错:

Error                 SYSPRP Package Microsoft.Ink.Handwriting.Main.en-US.1.0.1_0.850.1840.0_x64__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.
Error                 SYSPRP Failed to remove apps for the current user: 0x80073cf2.
Error                 SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.
Error                 SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
Error                 SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
Error                 SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2
Error      [0x0f0070] SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2
Error      [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80073cf2

解决方法:登录 Win11 母版机,以管理员权限在命令提示符执行以下命令后重新制作镜像:

powershell -ExecutionPolicy Bypass -Command "Get-AppxPackage -AllUsers | Where-Object { $_.Name -like \"*Microsoft.Ink.Handwriting.Main*\" } | Remove-AppxPackage"