高级概念

基于 Active Directory OU 的控制器发现

支持此 Delivery Controller 发现方法主要是为实现向后兼容性,这种方法仅适用于 Virtual Delivery Agent (VDA) for Windows Desktop OS,而不适用于 VDA for Windows Server OS。

有关可以配置的其他方法以使 VDA 能够向 Controller 注册(包括推荐的方法)的信息,请参阅向 Controller 注册 VDA。

进行基于 Active Directory 的发现时,要求站点中的所有计算机都是域的成员,并且在控制器所使用的域与桌面所使用的域之间存在相互信任的关系。如果您使用此方法,则必须在每个桌面注册表中配置 OU 的 GUID。

要执行基于 OU 的控制器检测,请运行控制器的 Set-ADControllerDiscovery.ps1 PowerShell 脚本(每个控制器都包含此脚本,位于 $Env:ProgramFiles\Citrix\Broker\Service\Setup Scripts 文件夹中)。要运行脚本,必须对父 OU 具有 CreateChild 权限,以及完全的管理权限。

如果希望桌面通过 Active Directory 发现站点中的控制器,在创建站点时,必须在 Active Directory 中创建相应的组织单位 (OU)。可以在包含您计算机的林的任何域中创建该 OU。最佳做法是,将站点中的控制器也包含在该 OU 内,但这不是强制或必需的条件。具有适当权限的域管理员可以创建 OU 作为一个空容器,然后通过该 OU 将管理权限委派给 Citrix 管理员。

该脚本会创建多个关键的对象。仅创建和使用标准 Active Directory 对象。扩展架构是没有必要的。

  • 一个控制器安全组。站点中所有控制器的计算机帐户必须是此安全组中的成员。只有当控制器是此安全组的成员时,站点中的桌面才会接受来自这些控制器的数据。

    确保所有 Controller 在运行 VDA 的所有虚拟桌面上都具有“从网络访问此计算机”权限。为此,您可以向控制器安全组授予此权限。如果控制器没有此权限,VDA 将不会注册。

  • 一个服务连接点 (SCP) 对象,包含有关站点的信息(例如站点名称)。如果使用 Active Directory 用户和计算机管理工具检查站点 OU,则可能需要在“视图”菜单中启用“高级功能”才能查看 SCP 对象。

  • 一个名为 RegistrationServices 的容器,该容器在站点 OU 中创建。容器中针对站点内的每个控制器包含一个 SCP 对象。每次启动控制器时,都会验证其 SCP 内容并根据需要进行更新。

如果多个管理员可能在初始安装后添加和删除 Controller,他们需要在 RegistrationServices 容器上创建和删除子项的权限,以及 Controller 安全组上的写入属性。这些权限自动授予运行 Set-ADControllerDiscovery.ps1 脚本的管理员。域管理员或原始安装管理员可以授予这些权限,Citrix 建议您设置安全组来执行此任务。

如果使用站点 OU:

  • 只有在安装或卸载此软件,或者控制器启动并需要更新其 SCP 中的信息时(例如,由于重命名了控制器或更改了通信端口),信息才会写入 Active Directory。默认情况下,Set-ADControllerDiscovery.ps1 脚本对站点 OU 中的对象设置适当的权限,授予每个控制器对其 SCP 的写入访问权限。站点 OU 中对象的内容用于在桌面与控制器之间建立信任关系。请确保:
    • 只有经过授权的管理员才可以使用安全组的访问控制列表 (ACL) 在控制器安全组中添加或删除计算机。
    • 只有经过授权的管理员和各自的控制器才可以更改控制器 SCP 中的信息。
  • 如果您的部署使用复制,请注意潜在的延迟。有关详细信息,请参阅 Microsoft 文档。如果要在域控制器位于多个 Active Directory 站点的域中创建站点 OU,这一点尤其重要。如果您在最初创建站点 OU 时、安装或卸载控制器时或者更改控制器名称或通信端口时,对 Active Directory 进行了更改,则在信息被复制到适当的域控制器之前,这些更改可能对桌面不可见,具体取决于桌面、控制器和域控制器的位置。此类复制延迟的表现包括桌面无法与控制器建立通信,因此不可用于用户连接。
  • 此软件在 Active Directory 中使用多个标准的计算机对象属性来管理桌面。根据您的部署,存储于桌面的 Active Directory 记录中的计算机对象完全限定的域名,可以包含在返回给用户用以建立连接的连接设置中。请确保此信息与 DNS 环境中的信息一致。

要使用基于 OU 的 Controller 发现将 Controller 移动到另一个站点,请按照上述说明移动 Controller。从旧站点中删除 Controller(步骤 2)后,运行 PowerShell 脚本 Set-ADControllerDiscovery –sync。该脚本会将 OU 与控制器的当前设置进行同步。加入现有站点(步骤 3)后,在新站点中的所有控制器上运行相同的脚本。

基于 OU 的发现所需的权限

要创建站点,运行脚本的 Citrix 管理员必须具有在整个站点 OU 中创建对象(SCP、容器和安全组)的权限。

如果站点 OU 不存在,管理员也必须有权创建该站点 OU。Citrix 建议 AD 域管理员预先创建该 OU,并将权限委派给 Citrix 站点管理员。此外,脚本还可以创建站点 OU。要允许执行此操作,管理员需要具有在新 OU 的父 OU 上“创建 OU”的权限。但是,如前所述,Citrix 不建议这样做。

稍后,要从站点中添加或删除 Controller,Citrix 管理员必须具有从安全组中添加/删除计算机以及创建/删除 SCP 的权限。

在正常操作过程中,Controller 和 VDA 需要对 OU 及子 OU 中的所有对象具有读取权限。VDA 将 OU 作为其自己的计算机标识进行访问;该计算机标识至少需要该 OU 的读取权限,从而能够发现 Controller。Controller 也需要具有在容器中自己的 SCP 对象上设置属性的权限。

通过将 Citrix 管理员完整权限授予子 OU,可准许所有这些操作。但是,如果您的部署有更严格的安全要求(例如限制谁可以使用脚本执行哪些操作),则可以使用“控制委派”向导来设置特定权限。以下示例过程授予了创建站点的权限。

  1. 创建一个 OU 以包含子对象(服务连接点 (SCP)、容器和安全组)。
  2. 选择 OU,然后右键单击并选择委派控制
  3. 在“控制委派”向导中,指定可为该 OU 委派控制的域用户。
  4. 在“要委派的任务”页上,选择“创建要委派的自定义任 务”。
  5. Active Directory 对象类型页面上,接受默认的此文件夹、此文件夹中的现有对象以及在此文件夹中创建新对象
  6. 在“权限”页上,选中“写入和创建所有子对象”复选框。
  7. 完成向导以确认权限。
基于 Active Directory OU 的控制器发现