Citrix Virtual Apps and Desktops

将多个站点合并到单个站点

自动化配置的多站点支持提供了一种将多个本地站点合并到单个云站点的方法。

  • 多站点支持会基于每个本地站点为组件名称添加唯一的名称前缀和后缀,从而确保在将多个本地站点合并到单个云站点后名称的唯一性。

  • 可以基于每个本地站点为以下每个组件分配前缀和后缀。

  • AdminScope
  • AdminRole
  • ApplicationAdmin
  • ApplicationFolder
  • ApplicationGroup
  • ApplicationUser
  • DeliveryGroup
  • GroupPolicy
  • HostConnection
  • MachineCatalog
  • StoreFront™
  • Tag

应用程序文件夹支持添加前缀、添加后缀和重新根目录。重新根目录会将一个额外的顶级文件夹添加到应用程序的现有文件夹结构中。

前缀和后缀规则

  1. 前缀和后缀不能包含以下任何特殊字符:\ , / ; : # . * ? = < > | ( ) " ' { } [ ]
  2. 前缀和后缀可以包含尾随空格,但不能包含前导空格。
  3. 前缀和后缀必须用双引号引起来才能包含尾随空格。
  4. 前缀和后缀在导入、合并和添加时应用。源 .yml 文件永远不会被修改。
  5. 前缀和后缀处理会自动为适用的依赖组件名称添加前缀或后缀。例如,如果计算机目录名称以“East”为前缀,引用它们的交付组也将以“East”为前缀。
  6. 如果组件名称已以前缀或后缀开头,则不添加任何前缀或后缀。组件名称不能包含两个相同的名称前缀或后缀。
  7. 前缀和后缀可以单独使用或组合使用。
  8. 在组件上使用前缀或后缀是可选的。

注意:

Studio 按字母顺序显示组件。

按站点分组组件

使用前缀来直观地对来自单个站点的组件进行分组。每个站点都列在自己的组中,前缀按字母顺序控制不同站点组的排序。

  • 按名称分组组件

使用后缀来直观地对来自多个站点的同名组件进行分组。来自不同站点的同名组件会交替显示。

前缀和后缀映射文件

站点前缀始于 SiteMerging.yml 文件,该文件包含适用于一个或多个本地站点的站点前缀和后缀映射。您可以手动管理 SiteMerging.yml 文件,或使用 合并多个本地站点 cmdlet 部分中列出的可用 cmdlet。

导出本地站点

在导出本地站点之前,无法开始合并。要导出本地站点,请参阅导出本地配置

集中导出目标文件夹

本节中描述的方法将多个站点导出放置到集中文件共享位置。SiteMerging.yml 文件、CustomerInfo.yml 文件和所有导出文件都驻留在该文件共享位置,允许您从一个独立于本地站点的位置执行导入。

云访问操作从不引用本地站点或 Active Directory,因此允许您从任何位置执行云访问操作。

  • 直接文件共享

有两种方法可以执行此操作:

  • 直接文件共享:要从直接文件共享导入、合并或添加,您必须决定要从哪台计算机执行云访问操作。
  • 使用 SiteMerging.yml 的文件共享引用:此方法使用站点的 SiteRootFolder 前缀集成员,并降低了在导出、导入、合并或添加时定位到错误文件夹的可能性。

如果您不使用集中文件共享方法,则从各个 Delivery Controller 执行导入、合并或添加。在迁移到云的每个 Delivery Controller 上创建并复制 SiteMerging.yml 文件。默认位置是 %HOMEPATH%\Documents\Citrix\AutoConfig。您必须指定 –SiteName 参数以选择正确的站点前缀。

直接文件共享

导出、导入、合并和新建/添加操作提供了一个参数来指定目标文件夹或源文件夹,而不是默认文件夹 %HOMEPATH%\Documents\Citrix\AutoConfig。以下示例使用位于 \\share.central.net 的集中文件共享,管理员已根据需要提供凭据并拥有访问权限。

要将导出目标设置为特定于站点的文件夹,请使用 –TargetFolder 参数:

从 East Delivery Controller™:

        East:
          SiteRootFolder: "" # Important: leave this empty
          AdminScopePrefix: "East_"
          AdminRolePrefix: "East_"
          ApplicationAdminPrefix: "East_"
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "East"
          ApplicationGroupPrefix: "East_"
          ApplicationUserPrefix: "East_"
          DeliveryGroupPrefix: "East_"
          GroupPolicyPrefix: "East_"
          HostConnectionPrefix: "East_"
          MachineCatalogPrefix: "East_"
          StoreFrontPrefix: "East_"
          TagPrefix: "East_"
          AdminScopeSuffix: "_east"
          AdminRoleSuffix: "_east"
          ApplicationAdminSuffix: "_east"
          ApplicationFolderSuffix: "_east"
          ApplicationGroupSuffix: "_east"
          ApplicationUserSuffix: "_east"
          DeliveryGroupSuffix: "_east"
          GroupPolicySuffix: "_east"
          HostConnectionSuffix: "_east"
          MachineCatalogSuffix: "_east"
          StoreFrontSuffix: "_east"
          TagSuffix: "_east"
        West:
          SiteRootFolder: "" # Important: leave this empty
          AdminScopePrefix: "Western "
          AdminRolePrefix: "Western "
          ApplicationAdminPrefix: "Western "
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "Western"
          ApplicationGroupPrefix: "Western "
          ApplicationUserPrefix: "Western "
          DeliveryGroupPrefix: "Western "
          GroupPolicyPrefix: "Western "
          HostConnectionPrefix: "Western "
          MachineCatalogPrefix: "Western "
          StoreFrontPrefix: "Western "
          TagPrefix: "Western "
          AdminScopeSuffix: ""
          AdminRoleSuffix: ""
          ApplicationAdminSuffix: ""
          ApplicationFolderSuffix: ""
          ApplicationGroupSuffix: ""
          ApplicationUserSuffix: ""
          DeliveryGroupSuffix: ""
          GroupPolicySuffix: ""
          HostConnectionSuffix: ""
          MachineCatalogSuffix: ""
          StoreFrontSuffix: ""
          TagSuffix: ""
<!--NeedCopy-->
          East:
          SiteRootFolder: "\\\\share.central.net\\AutoConfig\\SiteEast"
          AdminScopePrefix: "East_"
          AdminRolePrefix: "East_"
          ApplicationAdminPrefix: "East_"
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "East"
          ApplicationGroupPrefix: "East_"
          ApplicationUserPrefix: "East_"
          DeliveryGroupPrefix: "East_"
          GroupPolicyPrefix: "East_"
          HostConnectionPrefix: "East_"
          MachineCatalogPrefix: "East_"
          StoreFrontPrefix: "East_"
          TagPrefix: "East_"
          AdminScopeSuffix: "_east"
          AdminRoleSuffix: "_east"
          ApplicationAdminSuffix: "_east"
          ApplicationFolderSuffix: "_east"
          ApplicationGroupSuffix: "_east"
          ApplicationUserSuffix: "_east"
          DeliveryGroupSuffix: "_east"
          GroupPolicySuffix: "_east"
          HostConnectionSuffix: "_east"
          MachineCatalogSuffix: "_east"
          StoreFrontSuffix: "_east"
          TagSuffix: "_east"
        West:
          SiteRootFolder: "\\\\share.central.net\\AutoConfig\\SiteWest"
          AdminScopePrefix: "Western "
          AdminRolePrefix: "Western "
          ApplicationAdminPrefix: "Western "
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "Western"
          ApplicationGroupPrefix: "Western "
          ApplicationUserPrefix: "Western "
          DeliveryGroupPrefix: "Western "
          GroupPolicyPrefix: "Western "
          HostConnectionPrefix: "Western "
          MachineCatalogPrefix: "Western "
          StoreFrontPrefix: "Western "
          TagPrefix: "Western "
          AdminScopeSuffix: ""
          AdminRoleSuffix: ""
          ApplicationAdminSuffix: ""
          ApplicationFolderSuffix: ""
          ApplicationGroupSuffix: ""
          ApplicationUserSuffix: ""
          DeliveryGroupSuffix: ""
          GroupPolicySuffix: ""
          HostConnectionSuffix: ""
          MachineCatalogSuffix: ""
          StoreFrontSuffix: ""
          TagSuffix: ""
<!--NeedCopy-->

从 West Delivery Controller:

[[CODE_BLOCK_2]]

[[CODE_BLOCK_3]]

导出完成后,创建 CustomerInfo.ymlSiteMerging.yml 文件,并将其放置在 \\share.central.net\AutoConfig 中。

注意:

使用此直接文件共享引用方法时,请勿在创建 SitePrefixes.yml 时使用 SiteRootFolder 参数。

要从直接文件共享导入、合并或添加,您必须决定要从哪台计算机执行云访问操作。选项包括:

  • 已安装该工具的其中一个本地 Delivery Controller。
  • 托管文件共享的计算机。
  • 另一台计算机。

必须在访问云的计算机上安装自动化配置。既不使用本地 PowerShell SDK、Delivery Controller,也不使用 Active Directory,因此云访问执行要求比导出要求更简单。

要将 East Delivery Controller 合并到云中:

[[CODE_BLOCK_4]]

要将 West Delivery Controller 合并到云中:

Merge-CvadAcToSite –SiteName West –SourceFolder \\share.central.net\AutoConfig\SiteWest -CustomerInfoFileSpec \\share.central.net\AutoConfig\CustomerInfo.yml

以下是上一个示例中使用的 SitePrefixes.yml 示例文件。

        East:
          SiteRootFolder: "" # Important: leave this empty
          AdminScopePrefix: "East_"
          AdminRolePrefix: "East_"
          ApplicationAdminPrefix: "East_"
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "East"
          ApplicationGroupPrefix: "East_"
          ApplicationUserPrefix: "East_"
          DeliveryGroupPrefix: "East_"
          GroupPolicyPrefix: "East_"
          HostConnectionPrefix: "East_"
          MachineCatalogPrefix: "East_"
          StoreFrontPrefix: "East_"
          TagPrefix: "East_"
          AdminScopeSuffix: "_east"
          AdminRoleSuffix: "_east"
          ApplicationAdminSuffix: "_east"
          ApplicationFolderSuffix: "_east"
          ApplicationGroupSuffix: "_east"
          ApplicationUserSuffix: "_east"
          DeliveryGroupSuffix: "_east"
          GroupPolicySuffix: "_east"
          HostConnectionSuffix: "_east"
          MachineCatalogSuffix: "_east"
          StoreFrontSuffix: "_east"
          TagSuffix: "_east"
        West:
          SiteRootFolder: "" # Important: leave this empty
          AdminScopePrefix: "Western "
          AdminRolePrefix: "Western "
          ApplicationAdminPrefix: "Western "
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "Western"
          ApplicationGroupPrefix: "Western "
          ApplicationUserPrefix: "Western "
          DeliveryGroupPrefix: "Western "
          GroupPolicyPrefix: "Western "
          HostConnectionPrefix: "Western "
          MachineCatalogPrefix: "Western "
          StoreFrontPrefix: "Western "
          TagPrefix: "Western "
          AdminScopeSuffix: ""
          AdminRoleSuffix: ""
          ApplicationAdminSuffix: ""
          ApplicationFolderSuffix: ""
          ApplicationGroupSuffix: ""
          ApplicationUserSuffix: ""
          DeliveryGroupSuffix: ""
          GroupPolicySuffix: ""
          HostConnectionSuffix: ""
          MachineCatalogSuffix: ""
          StoreFrontSuffix: ""
          TagSuffix: ""
<!--NeedCopy-->

使用 SiteMerging.yml 的文件共享引用

此方法使用站点前缀集中的 SiteRootFolder 成员。虽然比直接文件共享方法更复杂,但此方法可降低在导出、导入、合并或添加时定位错误文件夹的几率。

首先,在 SiteMerging.yml 文件中为每个站点设置 SiteRootFolder。您必须在共享位置执行此操作。

New-CvadAcSiteMergingInfo –SiteName East –SiteRootFolder \\share.central.net\AutoConfig\SiteEast -SitePrefixesFolder \\share.central.net\AutoConfig

New-CvadAcSiteMergingInfo –SiteName West –SiteRootFolder SiteWest -SitePrefixesFolder \\share.central.net\AutoConfig

在此示例中,East 是完全限定的文件夹规范,West 是相对文件夹规范。

要使用 SiteMerging.yml 文件将导出目标设定为特定于站点的文件夹:

从 East 交付控制器:

mkdir \\share.central.net\AutoConfig\SiteEast

Export-CvadAcToFile -SiteName East -CustomerInfoFileSpec \\share.central.net\AutoConfig\CustomerInfo.yml

从 West 交付控制器:

mkdir \\share.central.net\AutoConfig\SiteWest

Export-CvadAcToFile -SiteName West -CustomerInfoFileSpec \\share.central.net\AutoConfig\CustomerInfo.yml

导出 cmdlet 使用 CustomerInfo.yml 文件夹位置来查找 SiteMerging.yml 文件。对于 East,SiteRootFolder 是完全限定的。它按原样使用。对于 West,SiteRootFolder 未完全限定。它与 CustomerInfo.yml 文件夹位置结合使用,以检索 West 的完全限定文件夹位置。

要将 East 交付控制器合并到云中:

Merge-CvadAcToSite –SiteName East -CustomerInfoFileSpec \\share.central.net\AutoConfig\CustomerInfo.yml

要将 West 交付控制器合并到云中:

Merge-CvadAcToSite –SiteName West -CustomerInfoFileSpec \\share.central.net\AutoConfig\CustomerInfo.yml

以下是上一个示例中使用的 SitePrefixes.yml 示例文件。

          East:
          SiteRootFolder: "\\\\share.central.net\\AutoConfig\\SiteEast"
          AdminScopePrefix: "East_"
          AdminRolePrefix: "East_"
          ApplicationAdminPrefix: "East_"
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "East"
          ApplicationGroupPrefix: "East_"
          ApplicationUserPrefix: "East_"
          DeliveryGroupPrefix: "East_"
          GroupPolicyPrefix: "East_"
          HostConnectionPrefix: "East_"
          MachineCatalogPrefix: "East_"
          StoreFrontPrefix: "East_"
          TagPrefix: "East_"
          AdminScopeSuffix: "_east"
          AdminRoleSuffix: "_east"
          ApplicationAdminSuffix: "_east"
          ApplicationFolderSuffix: "_east"
          ApplicationGroupSuffix: "_east"
          ApplicationUserSuffix: "_east"
          DeliveryGroupSuffix: "_east"
          GroupPolicySuffix: "_east"
          HostConnectionSuffix: "_east"
          MachineCatalogSuffix: "_east"
          StoreFrontSuffix: "_east"
          TagSuffix: "_east"
        West:
          SiteRootFolder: "\\\\share.central.net\\AutoConfig\\SiteWest"
          AdminScopePrefix: "Western "
          AdminRolePrefix: "Western "
          ApplicationAdminPrefix: "Western "
          ApplicationFolderPrefix: "" # Note that a new parent root folder is used instead
          ApplicationFolderRoot: "Western"
          ApplicationGroupPrefix: "Western "
          ApplicationUserPrefix: "Western "
          DeliveryGroupPrefix: "Western "
          GroupPolicyPrefix: "Western "
          HostConnectionPrefix: "Western "
          MachineCatalogPrefix: "Western "
          StoreFrontPrefix: "Western "
          TagPrefix: "Western "
          AdminScopeSuffix: ""
          AdminRoleSuffix: ""
          ApplicationAdminSuffix: ""
          ApplicationFolderSuffix: ""
          ApplicationGroupSuffix: ""
          ApplicationUserSuffix: ""
          DeliveryGroupSuffix: ""
          GroupPolicySuffix: ""
          HostConnectionSuffix: ""
          MachineCatalogSuffix: ""
          StoreFrontSuffix: ""
          TagSuffix: ""
<!--NeedCopy-->

如果未使用中央文件共享方法,并且导入、合并或添加操作是从各个交付控制器完成的,则在每个要迁移到云中的交付控制器上创建并复制 SiteMerging.yml 文件。默认位置为 %HOMEPATH%\Documents\Citrix\AutoConfig。您必须指定 –SiteName 参数以选择正确的站点前缀。

合并站点

Citrix® 建议分步执行云操作,并在执行下一个云操作之前对每个结果进行完整审查。例如,如果要将三个站点合并到一个云站点:

  1. 使用相应的 SiteName 值将初始站点合并到云中。
  2. 在 Studio 中审查结果。
  3. 如果结果不正确,请确定问题及其原因,进行更正,然后重新运行合并。如有必要,请删除云组件,并使用 Remove-CvadAcFromSite 针对选定的组件和成员从头开始。如果结果正确,请继续。
  4. 如果初始合并正确,请将第二个站点合并到单个云站点。
  5. 重复步骤 2 和 3。
  6. 如果第二次合并正确,请将第三个站点合并到单个云站点。
  7. 重复步骤 2 和 3。
  8. 从用户的角度审查资源,并验证视图是否处于所需状态。

使用站点前缀删除组件

您可以使用 Remove-CvadAcFromSite cmdlet 的 –IncludeByName 参数上的前缀选择性地删除单个站点组件。在以下示例中,West 交付控制器交付组不正确。要仅删除 West 站点的交付组:

Remove-CvadAcFromSite –DeliveryGroups –IncludeByName “Western *”

要删除所有 West 组件,请按顺序运行以下 cmdlet。

  1. Remove-CvadAcFromSite –GroupPolicies –IncludeByName “Western *”

  2. Remove-CvadAcFromSite –Applications –IncludeByName “Western *”

  3. Remove-CvadAcFromSite –ApplicationGroups –IncludeByName “Western *”

  4. Remove-CvadAcFromSite –DeliveryGroups –IncludeByName “Western *”

  5. Remove-CvadAcFromSite –MachineCatalogs –IncludeByName “Western *”

  6. Remove-CvadAcFromSite –HostConnections –IncludeByName “Western *”

  7. Remove-CvadAcFromSite –Tags –IncludeByName “Western *”

要删除 East 组件的组策略,请使用后缀:

Remove-CvadAcFromSite –GroupPolicies –IncludeByName “*_east”

将多个站点合并到单个站点