DirectAccess 脱机加入域

本指南介绍使用 DirectAccess 执行脱机域加入的步骤。 在脱机域加入期间,计算机配置为在没有物理或 VPN 连接的情况下加入域。

本指南包含以下部分:

  • 脱机域加入概述

  • 脱机加入域的要求

  • 脱机域加入过程

  • 执行脱机域加入的步骤

脱机域加入概述

在 Windows Server 2008 R2 中引入的域控制器包括一项称为“脱机域加入”的功能。 通过名为 Djoin.exe 的命令行实用程序,可以将计算机加入域,而无需在完成域加入操作的同时与域控制器进行物理连接。 使用 DJoin.exe 的一般步骤如下:

  1. 运行 djoin /provision 以创建计算机帐户元数据。 此命令的输出是一个包含 base-64 编码 blob 的.txt 文件。

  2. 运行 djoin /requestODJ 以将.txt 文件中的计算机帐户元数据插入目标计算机的 Windows 目录中。

  3. 重新启动目标计算机,该计算机将加入域。

使用 DirectAccess 策略脱机域加入方案概述

DirectAccess 离线域加入是一个进程,运行 Windows Server 2016、Windows Server 2012、Windows 10 和 Windows 8 的计算机可以使用该进程加入域,而无需物理加入公司网络或通过 VPN 连接。 这样,就可以将计算机从没有连接到企业网络的位置加入域。 DirectAccess 的脱机域加入为客户端提供 DirectAccess 策略,以允许远程预配。

域加入创建计算机帐户,并在运行 Windows 操作系统的计算机与 Active Directory 域之间建立信任关系。

准备脱机加入域

  1. 创建计算机帐户。

  2. 清点计算机帐户所属的所有安全组的成员身份。

  3. 收集要应用于新客户端的所需计算机证书、组策略和组策略对象。

以下各节介绍了使用 Djoin.exe 执行 DirectAccess 脱机域加入的操作系统要求和凭据要求。

操作系统要求

只能在运行 Windows Server 2016、Windows Server 2012 或 Windows 8 的计算机上为 DirectAccess 运行 Djoin.exe. 运行 Djoin.exe 以将计算机帐户数据设置到 AD DS 的计算机必须运行 Windows Server 2016、Windows 10、Windows Server 2012 或 Windows 8。 要加入域的计算机还必须运行 Windows Server 2016、Windows 10、Windows Server 2012 或 Windows 8。

凭据要求

要执行脱机域加入,必须具有将工作站加入域所必需的权限。 默认情况下,“域管理员”组的成员具有这些权限。 如果你不是“域管理员”组的成员,则“域管理员”组的成员必须完成以下操作之一才能将工作站加入域:

  • 使用组策略授予所需的用户权限。 此方法允许你在“默认计算机”容器和以后创建的任何组织单位 (OU) 中创建计算机(如果未添加拒绝访问控制项 (ACE))。

  • 编辑域的“默认计算机”容器的访问控制列表 (ACL),以便为你委派正确的权限。

  • 创建 OU 并编辑该 OU 上的 ACL,以授予你“创建子项 - 允许”权限。 将 /machineOU 参数传递给 djoin /provision 命令。

下面的过程显示了如何通过组策略授予用户权限以及如何委派正确的权限。

授予用户将工作站加入域的权限

你可以使用组策略管理控制台 (GPMC) 来修改域策略,或创建具有授予用户将工作站添加到域的权限的设置的新策略。

“域管理员”成员身份或同等身份是授予用户权限的最低要求。 若要查看有关使用适合的帐户和组成员身份的详细信息,请参阅本地默认组和域默认组 (https://go.microsoft.com/fwlink/?LinkId=83477)。

授予将工作站加入域的权限
  1. 单击“开始”、“管理工具”,然后单击“组策略管理”。

  2. 双击林的名称,双击“域”,双击要加入计算机的域的名称,右键单击“默认域策略”,然后单击“编辑”。

  3. 在控制台树中,依次双击“计算机配置”、“策略”、“Windows 设置”、“安全设置”、“本地策略”、“用户权限分配”。

  4. 在详细信息窗格中,双击“将工作站添加到域”。

  5. 选中“定义这些策略设置”复选框,然后单击“添加用户或组”。

  6. 键入要向其授予用户权限的帐户的名称,然后单击“确定”两次。

脱机域加入过程

在提升的命令提示符下运行 Djoin.exe 以预配计算机帐户元数据。 运行预配命令时,将在指定为命令一部分的二进制文件中创建计算机帐户元数据。

有关在脱机加入域期间用于预配计算机帐户的 NetProvisionComputerAccount 函数的详细信息,请参阅 NetProvisionComputerAccount Function (https://go.microsoft.com/fwlink/?LinkId=162426)。 有关在目标计算机上本地运行的 NetRequestOfflineDomainJoin 函数的详细信息,请参阅 NetRequestOfflineDomainJoin Function (https://go.microsoft.com/fwlink/?LinkId=162427)。

执行 DirectAccess 脱机加入域的步骤

脱机加入域的过程包括以下步骤:

  1. 为每个远程客户端创建新的计算机帐户,并使用 Djoin.exe 命令从企业网络中已加入域的计算机生成预配包。

  2. 将客户端计算机添加到 DirectAccessClients 安全组

  3. 将配置包安全地传输到将要加入域的一个或多个远程计算机。

  4. 应用预配包并将客户端加入域。

  5. 重新启动客户端以完成域加入并建立连接。

为客户端创建预配数据包时,有两个选项需要考虑。 如果使用入门向导在没有 PKI 的情况下安装 DirectAccess,则应使用下面的选项 1。 如果使用高级安装向导同时安装 DirectAccess 与 PKI,则应使用下面的选项 2。

完成以下步骤以执行脱机域加入:

选项 1:为没有 PKI 的客户端创建预配包
  1. 在远程访问服务器的命令提示符处,键入以下命令来预配计算机帐户:

    Djoin /provision /domain <your domain name> /machine <remote machine name> /policynames DA Client GPO name /rootcacerts /savefile c:\files\provision.txt /reuse
    
选项 2:使用 PKI 为客户端创建预配包
  1. 在远程访问服务器的命令提示符处,键入以下命令来预配计算机帐户:

    Djoin /provision /machine <remote machine name> /domain <Your Domain name> /policynames <DA Client GPO name> /certtemplate <Name of client computer cert template> /savefile c:\files\provision.txt /reuse
    
将客户端计算机添加到 DirectAccessClients 安全组
  1. 在域控制器上的“开始”屏幕中,键入“活动”,然后从“应用”屏幕中选择“Active Directory 用户和计算机”。

  2. 展开域下的树,然后选择“用户”容器。

  3. 在详情窗格中,右键单击 DirectAccessClients,然后单击“属性”。

  4. 在“成员”选项卡上,单击“添加”

  5. 单击“对象类型”,选择“计算机”,然后单击“确定”。

  6. 键入要添加的客户端名称,然后单击“确定”。

  7. 单击“确定”关闭“DirectAccessClients 属性”对话框,然后关闭“Active Directory 用户和计算机”。

复制预配包并将其应用到客户端计算机
  1. 将预配包从远程访问服务器上的 c:\files\provision.txt(保存位置)复制到客户端计算机上的 c:\provision\provision.txt。

  2. 在客户端计算机上,打开提升的命令提示符,然后键入以下命令以请求域加入:

    Djoin /requestodj /loadfile C:\provision\provision.txt /windowspath %windir% /localos
    
  3. 重新启动客户端计算机。 计算机将加入域。 重新启动后,客户端将加入域,并使用 DirectAccess 连接到公司网络。

另请参阅

NetProvisionComputerAccount 函数NetRequestOfflineDomainJoin 函数