Citrix Virtual Apps and Desktops

将配置迁移到 思杰云™

自动化配置工具 (ACT) 允许将 Citrix Virtual Apps and Desktops™ 配置(策略、应用程序、目录、管理员角色、范围等)从一个或多个本地站点迁移到 Citrix Cloud 上托管的 Citrix DaaS。它还可以用于在不同的云区域或租户之间迁移信息。

此工具可发现并导出一个或多个本地站点作为配置文件的集合,您可以选择编辑这些文件。然后,这些文件的配置可以导入到 Citrix DaaS 中。 迁移分阶段进行,通过多次运行该工具,使您能够轻松实现所需的配置状态。

ACT 不仅仅是一个一次性迁移工具。您可以使用它来管理日常云操作,例如:

  • 实现从测试或暂存云帐户到生产云帐户的自动化传输
  • 对您的配置进行备份和还原
  • 将单个云环境拆分为多个云环境

以下 2 分钟 视频提供了自动化配置的快速概览。

有关自动化配置的其他信息,请参阅 Tech Zone 上的 概念验证:自动化配置工具。

要深入了解如何移动部署以及为迁移准备本地配置,请参阅 Tech Zone 上的 部署指南:将 Citrix Virtual Apps and Desktops 从本地迁移到 Citrix Cloud。

已知局限性

迁移您的配置所需的先决条件

要从 思杰虚拟应用和桌面 导出 您的配置,您需要:

  • Citrix Virtual Apps and Desktops: current release and its immediate predecessor or Citrix Virtual Apps and Desktops, XenApp and XenDesktop® LTSRs: all versions
  • 一台已加入域的计算机,安装了 .NET Framework 4.7.2 或更高版本以及 Citrix PowerShell 软件开发工具包。此软件会自动安装在交付控制器上。(要在本地交付控制器以外的计算机上运行,必须安装 Citrix Studio,因为 Studio 会安装正确的 PowerShell 管理单元。Studio 安装程序可在 Citrix Virtual Apps and Desktops 安装介质 上找到。)

要将配置导入到 Citrix DaaS 中,您需要:

  • 一台可以访问 Citrix Cloud 的计算机。这不必是 Delivery Controller™ 或已加入域的计算机。
  • Citrix DaaS provisioned.
  • 一个已安装 Connector 并已加入与本地设置相同域的活动资源位置。
  • 必须允许并提供访问 Citrix Cloud 的站点的连接。有关详细信息,请参阅 系统和连接要求。

注意:

自动化配置无法安装在 Cloud Connector 系统上。

主要步骤

  1. 下载自动化配置工具并查看系统要求。请参阅 下载自动化配置。
  2. 使用从 Citrix Cloud 门户生成的 CustomerName、CustomerID 和 SecretKey 值填充 CustomerInfo.yml 文件。请参阅 生成客户 ID、客户端 ID 和密钥 和 填充客户信息文件。
  3. 如果本地站点包含多个区域,请更新 ZoneMapping.yml 文件以将区域映射到 Citrix DaaS 资源位置。请参阅 填充区域映射文件。
  4. 如果站点包含多个托管连接,请使用每个迁移到 Citrix DaaS 的主机类型的连接信息更新 CvadAcSecurity.yml 文件。如果只有一个主机连接,请使用该主机连接的连接信息更新 CvadACSecurity.yml 文件。请参阅 更新主机连接的安全文件。
  5. 打开 ACT 并使用 Export-CvadAcToFile 命令导出您的本地站点。有关支持迁移的组件列表,请参阅 支持的迁移对象。有关导出步骤的信息,请参阅 导出本地配置。
  6. 使用 Merge-CvadAcToSite 命令分阶段导入组件。或者,一次性迁移整个站点。确保按照 组件迁移顺序 中列出的顺序迁移组件。有关导入步骤的信息,请参阅 运行导入。
  7. 激活云站点。请参阅 激活站点。

下载自动化配置工具

从 Citrix 下载 下载并安装自动化配置工具。

升级自动化配置工具

为防止功能出错,请始终使用 ACT 的最新可用版本。

要了解您的工具版本,请执行以下操作:

  1. 双击 Auto Config 图标。将显示一个 PowerShell 命令行界面窗口。
  2. 运行以下命令以检查您的版本号。

    Get-CvadAcStatus
    <!--NeedCopy-->
    
  3. 将您的工具版本与 Citrix 下载 中列出的版本进行比较。最新版本的工具位于该处。
  4. 下载并安装最新版本的工具。您无需卸载旧版本即可升级自动化配置工具。

注意:

在自动化配置中运行 cmdlet 以访问云时,如果有可供下载的新版本,该工具会提醒您。有关 cmdlet 的更多信息,请参阅 自动化配置工具 cmdlet。

生成客户 ID、客户端 ID 和密钥

要将本地站点迁移到 Citrix DaaS,请使用 Citrix Cloud 门户中的客户 ID、客户端 ID 和密钥填充 CustomerInfo.yml 文件。

要检索客户 ID:

  1. 登录您的 Citrix Cloud 帐户并选择客户。
  2. 单击网格图标并选择 身份和访问管理。
  3. 导航到 API 访问 > 安全客户端。客户 ID 将显示在该页面上。

要检索客户端 ID 和密钥:

  1. 在 安全客户端 页面上,在框中输入一个名称。此名称用于区分多个客户端 ID 和密钥。
  2. 单击“创建客户端”以创建客户端 ID 和密钥。
  3. 将客户端 ID 和密钥复制到安全位置,并下载包含此信息的 .csv 文件。使用 .csv 文件填充 CustomerInfo.yml 文件。

注意:

  • 客户端 ID 和密钥不会过期。如果它们遭到泄露,请立即使用 垃圾桶 图标将其删除并创建新的。
  • 如果密钥丢失或遗忘,则无法检索;必须创建新的客户端 ID 和密钥。

填充客户信息文件

CustomerInfo.yml 文件消除了每次运行 cmdlet 时提供客户信息参数的需要。任何客户信息都可以通过使用 cmdlet 参数进行覆盖。

使用 New-CvadAcCustomerInfoFile cmdlet 创建 CustomerInfo.yml 文件。

重要提示:

不要手动编辑 CustomerInfo.yml 文件。这样做可能会导致意外的格式错误。

New-CvadAcCustomerInfoFile cmdlet 具有以下必需参数。

  • 客户 ID: 客户的 ID。
  • 客户端 ID: 客户在 Citrix Cloud 上创建的客户端 ID。
  • 密钥:在 Citrix Cloud 上创建的客户密钥。

示例:

New-CvadAcCustomerInfoFile -CustomerId markhof123 -ClientId 6813EEA6-46CC-4F8A-BC71-539F2DAC5984 -Secret TwBLaaaaaaaaaaaaaaaaaw==
<!--NeedCopy-->

您还可以使用指向下载的 security.csv 文件的 SecurityCsvFileSpec 参数创建 CustomerInfo.yml。您还必须指定 CustomerId。

New-CvadAcCustomerInfoFile -SecurityCsvFileSpec C:\Users\my_user_name\downloads/security.csv -CustomerId markhof123
<!--NeedCopy-->

使用 Set-CvadAcCustomerInfoFile cmdlet 更新 CustomerInfo.yml 文件。此 cmdlet 仅更改客户端 ID。

Set-CvadAcCustomerInfoFile -ClientId C80487EE-7113-49F8-85DD-2CFE30CC398E
<!--NeedCopy-->

以下是 CustomerInfo.yml 文件的示例内容。

            # Created/Updated on 2020/01/29 16:46:47
            CustomerId: ‘markhof123’
            ClientId: ‘6713FEA6-46CC-4F8A-BC71-539F2DDK5384’
            Secret: ‘TwBLaaabbbaaaaaaaaaaw==’
            Environment: Production
            AltRootUrl: ‘’
            StopOnError: False
            AlternateFolder: ‘’
            Locale: ‘en-us’
            Editor: ‘C:\Program Files\Notepad++\notepad++.exe’
            Confirm: True
            DisplayLog: True

填充区域映射文件

本地区域等同于云资源位置。与其他站点组件不同,您无法自动将本地区域导入云。相反,必须使用 ZoneMapping.yml 文件手动映射。如果区域名称未与现有资源位置名称关联,则可能会发生导入失败。

如果本地站点只有一个区域且云站点只有一个资源位置,则自动化配置工具会建立正确的关联,从而无需手动管理 ZoneMapping.yml 文件。

但是,如果本地站点有多个区域或云站点有多个资源位置,则手动更新 ZoneMapping.yml 文件以反映本地区域到云资源位置的正确映射。

ZoneMapping.yml 文件位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。.yml 文件的内容是一个字典,其中区域名称作为键,资源位置名称作为值。

例如,一个具有名为“Zone-1”的主区域和名为“Zone-2”的辅助区域的本地 Citrix Virtual Apps and Desktops 站点将迁移到具有两个新创建的云资源位置(名为“Cloud-RL-1”和“Cloud-RL-2”)的 Citrix DaaS 部署。在这种情况下,ZoneMapping.yml 将配置如下:

            Zone-1: Cloud-RL-1

            Zone-2: Cloud-RL-2

注意:

在冒号和资源位置名称之间添加一个空格。如果区域或资源位置名称中包含空格,请用引号将名称括起来。

更新用于主机连接的安全文件

主机连接及其关联的管理程序可以使用 ACT 导出和导入。

将管理程序添加到主机连接需要特定于管理程序类型的安全信息。出于安全考虑,此信息无法从本地站点导出。您必须手动提供此信息,以便自动化配置能够成功地将主机连接和管理程序导入到云站点。

导出过程会在 %HOMEPATH%\Documents\Citrix\AutoConfig 中创建 CvadAcSecurity.yml 文件,其中包含特定管理程序类型所需的每个安全项的占位符。在导入到云站点之前,您必须更新 CvadAcSecurity.yml 文件。管理员更新会在多次导出中保留,并根据需要添加新的安全占位符。安全项永远不会被删除。有关详细信息,请参阅手动更新 CvadAcSecurity.yml 文件

            HostConn1:
            ConnectionType: XenServer®
            UserName: root
            PasswordKey: rootPassword
            HostCon2:
            ConnectionType: AWS
            ApiKey: 78AB6083-EF60-4D26-B2L5-BZ35X00DA5CH
            SecretKey: TwBLaaaaaaaaaaaaaaaaaw==
            Region: East

每个管理程序的安全信息

以下列出了适用于每种管理程序类型的安全信息。

  • 泽农服务器、超V、威睿
    • 用户名
    • 明文形式的密码
  • 微软 阿祖尔
    • 订阅 ID
    • 应用程序 ID
    • 应用程序密钥
  • AWS
    • 服务账户 ID
    • 应用程序密钥
    • 区域

特殊安全注意事项

所有安全信息均以明文形式输入。如果不建议使用明文,则可以使用 Studio 手动创建主机连接和关联的虚拟机管理程序。主机连接和虚拟机管理程序名称必须与其本地对应项完全匹配,以便成功导入使用这些主机连接的计算机目录。

导出您的 Citrix 虚拟应用和桌面 本地配置

使用 export PowerShell 命令,您可以导出现有的本地配置并获取必要的 .yml 文件。这些文件用于将您所需的配置导入到 Citrix Cloud 中。

支持的迁移对象

自动化配置支持对以下组件的配置进行迁移操作:

  • 标签
  • 委派管理
    • 作用域
    • 角色
  • 主机连接
    • 一个单一的资源池
    • 管理员范围
  • 计算机目录
    • 管理员范围
    • 计算机
    • 远程电脑访问、物理、池化、预配、MCS、已分配
  • 思拓坊™
  • 交付群组
    • 访问策略
    • 管理员范围关联
    • 应用程序访问策略
    • 用户指派策略
    • 授权/桌面策略
    • 电源计划
    • 会话持续保留
    • 会话预启动
    • 重启计划
    • 标签
  • 应用程序组
    • 管理范围关联
    • 交付群组
    • 用户和组
  • 应用程序
    • 应用程序文件夹
    • 图标
    • 应用程序
    • 代理配置的 FTA
    • 标签
  • 群组策略
  • 用户区域首选项

导出本地部署配置

  1. 双击自动配置图标。将显示一个 PowerShell 窗口。
  2. 运行以下命令以导出所有组件。导出本地配置不会以任何方式更改它。

    Export-CvadAcToFile
    <!--NeedCopy-->
    

首次运行任何 cmdlet 后,将创建一个包含 .yml 配置文件和日志的导出文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig。每次后续导出都会创建一个子文件夹。父文件夹 %HOMEPATH%\Documents\Citrix\AutoConfig 始终包含最新导出的文件。

注意:

如果 Delivery Controller 上未安装自动配置,请在使用 PowerShell 工具之前运行 import-module Citrix.AutoConfig.Commands。如果使用自动配置图标打开自动配置,则不需要此步骤。

如果遇到任何错误或异常,请参阅日志文件中的修复部分。

将您的配置导入 Citrix DaaS

重要:

  • 将本地部署迁移到云时,请确保包含 Citrix 设置的域和 OU GPO 已迁移到云。Citrix Web Studio™ 不支持 GPMC,因此域和 OU GPO 在 Web Studio 中不可见。Citrix 策略引擎对位于域和 OU 中的 VDA 和用户强制执行域和 OU GPO。登录 VDA 后,用户可能会看到域和 OU GPO 中的策略已应用于其会话。但是,管理员无法看到这些策略和设置,这可能会导致混淆。

组件迁移的顺序

此处列出了组件及其依赖项。组件的依赖项必须在导入或合并之前就位。如果缺少依赖项,可能会导致导入或合并命令失败。如果导入或合并失败,日志文件的修复部分会显示缺失的依赖项。

  1. 标签
    • 无前置依赖项
  2. 委派管理员
    • 无前置依赖项
  3. 主机连接
    • Security Information in CvadAcSecurity.yml
  4. 计算机目录
    • 活动目录中存在的计算机
    • 主机连接
    • 标签
  5. StoreFront
  6. 交付群组
    • 活动目录中存在的计算机
    • 活动目录中存在的用户
    • 计算机目录
    • 标签
  7. 应用程序组
    • 交付群组
    • 标签
  8. 应用程序
    • 交付群组
    • 应用程序组
    • 标签
  9. 组策略设置
    • 交付组配置
    • 标签
  10. 用户区域首选项

运行导入

  1. 请双击 Auto Config 图标。此时会弹出一个 PowerShell 窗口。
  2. 运行以下命令以导入所有组件。

    Merge-CvadAcToSite
    <!--NeedCopy-->
    

使用新的当前状态验证预期状态。各种导入选项控制导入结果是与本地站点相同还是其子集。

运行 cmdlet 后,将创建一个包含 .yml 配置文件和日志的导出文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig。

如果遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。

注意:

如果交付控制器上未安装自动化配置,请在通过 PowerShell 使用该工具之前运行 import-module Citrix.AutoConfig.Commands。如果您使用 自动配置 图标打开自动化配置,则不需要执行此步骤。

要恢复到原始 Citrix DaaS 配置,请参阅 备份您的 Citrix DaaS 配置。

了解导入操作的流程

导入过程旨在准确执行更新,仅执行必要的更新,并验证所有更新均已正确完成。所有导入操作都遵循以下步骤:

  1. 读取导出的 .yml 文件(预期状态)。
  2. 读取云(当前状态)。
  3. 将导入前的云状态备份到 .yml 文件(如有必要,可以恢复预备份)。
  4. 评估预期状态和当前状态之间的差异。这决定了要进行的更新。
  5. 进行更新。
  6. 重新读取云(新的当前状态)。
  7. 将导入后的云状态备份到 .yml 文件(如有必要,可以恢复后备份)。
  8. 将新的当前状态与预期状态进行比较。
  9. 报告比较操作的结果。

细粒度迁移

重要:

有关组件迁移顺序的更多信息,请参阅 Component migration order。

您可以选择性地仅迁移组件,甚至仅迁移组件名称。

  • 支持的组件参数包括 MachineCatalogs、Tags 等。
  • 支持的组件名称参数包括 IncludeByName 和 ExcludeByName 参数以及其他参数。

有关参数及其使用方法的更多信息,请参阅 精细迁移参数。

激活站点

本地和云站点中的交付控制器控制着资源,例如代理桌面、应用程序和重新启动计算机。当一组通用资源由两个或更多站点控制时,就会出现问题。从本地站点迁移到云站点时可能会出现这种情况。本地和云交付控制器都可能管理同一组资源。这种双重管理可能导致资源变得不可用和无法管理,并且难以诊断。

站点激活允许您控制活动站点的受控位置。

站点激活通过交付组维护模式进行管理。当站点处于非活动状态时,交付组将置于维护模式。对于活动站点,将从交付组中移除维护模式。

站点激活不影响或管理 VDA 注册或计算机目录。

  • Set-CvadAcSiteActiveStateCloud
  • Set-CvadAcSiteActiveStateOnPrem

所有 cmdlet 都支持 IncludeByName 和 ExcludeByName 筛选。此参数允许您选择哪些交付组可以更改其维护模式。可以根据需要选择性地更改交付组。

导入并将控制权转移到云端

以下是关于如何从本地站点导入并转移控制权到云站点的高级描述。

  1. 将本地站点导出并导入到云。确保任何导入 cmdlet 中不存在 –SiteActive 参数。本地站点处于活动状态,云站点处于非活动状态。默认情况下,云站点交付组处于维护模式。
  2. 对云内容和配置进行验证。
  3. 在非工作时间,将本地站点设置为非活动状态。–SiteActive 参数必须不存在。所有本地站点交付组都处于维护模式。
    • Set-CvadAcSiteActiveStateOnPrem
  4. 将云站点设置为活动状态。–SiteActive 参数必须存在。没有云站点交付组处于维护模式。
    • Set-CvadAcSiteActiveStateCloud –SiteActive
  5. 验证云站点处于活动状态,本地站点处于非活动状态。

将控制权重新移交给本地站点

要将控制权从云站点转移到本地站点:

  1. 在非工作时间,将云站点设置为非活动状态。所有云站点交付组都处于维护模式。
    • Set-CvadAcSiteActiveStateCloud
  2. 将本地站点设置为活动状态。没有本地站点交付组处于维护模式。
    • Set-CvadAcSiteActiveStateOnPrem -SiteActive

有关站点激活的更多信息

  • 如果没有计算机进行电源管理,并且没有重新启动计划(这通常意味着也没有主机连接),则所有云交付组都可以作为活动组导入。导入后,将 -SiteActive 添加到 Merge-CvadAcToSite/Import-CvadAcToSite 或运行 Set-CvadAcSiteActiveStateCloud -SiteActive。
  • 如果计算机进行电源管理或存在重新启动计划,则需要不同的过程。例如,在这种情况下从本地切换到云时,使用 Set-CvadAcSiteActiveStateOnPrem 将本地站点设置为非活动状态。然后,使用 Set-CvadAcSiteActiveStateCloud -SiteActive 将云站点设置为活动状态。
  • Set-CvadAcSiteActiveStateCloud 和 Set-CvadAcSiteActiveStateOnPrem cmdlet 也用于反向操作。例如,运行不带 -SiteActive 参数的 Set-CvadAcSiteActiveStateCloud,然后运行带 -SiteActive 参数的 Set-CvadAcSiteActiveStateOnPrem。

了解如何迁移机器创建服务预配的目录

注意:

此功能仅在 3.0 及更高版本中可用。通过在 Automated Configuration 中使用 Get-CvadAcStatus 检查您的版本。

计算机创建服务 (MCS) 目录创建两种不同类型的目录:

  • 当对计算机所做的更改丢失或恢复时(通常是发布应用程序的服务器操作系统)– 这是一种池化 VDI / 多会话用例
  • 当对计算机所做的更改在重新启动后保留时(通常是具有专用用户的客户端操作系统)– 这是一种静态 VDI 用例

可以在 Citrix Studio 的目录节点中通过查看目录的“用户数据:”值来确认目录类型。

注意:

无法使用自动化配置从云中备份 MCS。

池化 VDI / 多会话目录

“用户数据: 丢弃”的目录是池化 VDI 目录,只能迁移主映像和配置。这些目录中的任何虚拟机都不会被迁移。这是因为虚拟机的生命周期由您从中导入的站点维护,这意味着每次计算机开机时,其状态都可能发生变化。这使得导入变得不可能,因为虚拟机的导入数据会很快不同步。

当您使用该工具迁移这些目录时,它会创建目录元数据并启动主映像创建,但不会导入任何计算机。

由于此过程根据主映像的大小可能需要一些时间来创建,因此工具中的导入命令仅启动 MCS 目录创建,而不等待其完成。导入完成后,请使用云部署中的 Studio 监视目录创建进度。

主映像创建完成后,即可开始预配虚拟机。请务必考虑容量方面的因素,因为您的本地部署会占用并消耗一部分容量。

使用该目录的所有其他对象(交付组、应用程序、策略等)都可以导入,并且无需等待主映像创建。目录创建完成后,可以将计算机添加到导入的目录中,然后用户可以启动其资源。

注意:

使用工具中可用的相同命令来迁移目录和所有其他对象。

静态 VDI 目录

注意:

由于此操作导入存储在数据库中的低级详细信息,因此必须从具有数据库访问权限的计算机运行此过程。

静态 VDI 目录迁移主映像、配置和所有虚拟机。与池化 VDI 用例不同,无需创建任何映像。

VDA 必须配置为指向连接器,以便它们能够向云进行注册。

请参阅激活站点部分,以激活云站点,从而使重新启动计划、电源管理和其他项目由云控制。

迁移完成后,如果您想从本地站点删除此目录,则必须选择保留 VM 和 AD 帐户。否则,它们将被删除,云站点将指向已删除的 VM。

迁移后更新 MCS 标签以检测孤立资源

将本地配置迁移到云站点,或将云配置迁移到另一个云站点后,对于持久性 VM,您必须更新 MCS 站点 ID 标签,以便正确检测孤立资源。为此,请使用 PowerShell 命令 Set-ProvResourceTags。目前,此功能适用于 Azure。

具体的详细步骤如下所示:

  1. 使用 PowerShell 命令 Set-ProvResourceTags 从新的 Citrix 站点更新 MCS 站点 ID 标签。例如:

    Set-ProvResourceTags -ProvisioningSchemeUid xxxxx  [-VMName <String>] [-VMBatchSize XX] [-ResourceType XX]
    <!--NeedCopy-->
    

    或者,

    Set-ProvResourceTags -ProvisioningSchemeName xxxxx  [-VMName <String>] [-VMBatchSize XX] [-ResourceType XX]
    <!--NeedCopy-->
    

参数详细信息如下所示:

  • ProvisioningSchemeUid 或 ProvisioningSchemeName 是一个强制参数。
  • VMName 是一个可选参数。如果未指定 VMName,将更新此计算机目录中所有 VM 的标签。
  • VMBatchSize 是一个可选参数,用于将所有 VM 分批。如果未指定 VMBatchSize,将应用默认值 (10)。范围是 1 到 60。
  • ResourceType 可以是以下项之一:

    • MachineCatalog:用于更新计算机目录资源的标签。
    • VirtualMachine:用于更新与 VM 相关的资源的标签。
    • All:(默认 ResourceType):用于更新计算机目录和与 VM 相关的资源的标签。