Citrix Virtual Apps and Desktops 服务

迁移和管理

如果您进行了 Citrix Virtual Apps and Desktops 服务配置,并且希望将其移动到另一个 Citrix Virtual Apps and Desktops 服务部署区域、希望备份和还原配置,或已达到您的资源限制,则现在可以使用自动配置工具来迁移全部或部分配置。

Citrix Virtual Apps and Desktops 的自动配置

通过适用于 Citrix Virtual Apps and Desktops 的自动配置,您可以自动将本地配置移动到 Citrix Virtual Apps and Desktops 服务部署中。

自动配置还支持在 Citrix Virtual Apps and Desktops 服务部署之间移动配置。还可以使用自动配置来管理您的部署。

自动配置可将您的配置信息导出到 .yml 文件集合中,然后可以根据需要对这些文件进行编辑(用于暂存迁移)并将其导入到 Citrix Virtual Apps and Desktops 服务中。

下载自动配置

Citrix 下载 下载自动配置工具。有关详细信息,请参阅概念证明:自动配置工具

迁移配置的必备条件

用于从 Citrix Virtual Apps and Desktops 导出 配置:

  • Citrix Virtual Apps and Desktops:当前版本及其直接前代产品或 Citrix Virtual Apps and Desktops、XenApp 和 XenDesktop LTSR:所有版本
  • 一个本地 Delivery Controller 和至少一个本地 VDA
  • 装有 .NET Framework 4.7.2 或更高版本的计算机
  • 安装了 Citrix PowerShell SDK 的计算机。这将自动安装在 Delivery Controller 上。(要在本地 Delivery Controller 以外的计算机上运行,计算机必须加入域且必须安装 Citrix Studio,这样 Studio 才能安装正确的 PowerShell 管理单元。可以在 Citrix Virtual Apps and Desktops 安装介质 中找到 Studio 安装程序。)

用于将您的配置导入到 Citrix Virtual Apps and Desktops 服务中:

  • 有权访问 Citrix Cloud 的计算机。
  • 使用活动资源位置预配的 Citrix Virtual Apps and Desktops 服务,该资源位置已安装 Connector 且已加入与本地设置相同的域。
  • 必须允许打开访问 Citrix Cloud 的站点。有关详细信息,请参阅系统和连接要求

支持迁移的对象

自动配置支持以下组件,并作为自动化流程的一部分进行移动。

  • 标记
  • 主机连接
    • 单个资源池
    • 管理员作用域
  • 计算机目录
    • 管理员作用域
    • 计算机
    • Remote PC Access、物理、池化、已预配(MCS 除外)、已分配
  • 交付组
    • 访问策略
    • 管理员作用域
    • 应用程序访问策略
    • 分配策略
    • 注册/桌面策略
    • 电源计划
    • 会话延迟
    • 会话预启动
    • 重新启动计划
    • 标记
  • 应用程序组
    • 管理员作用域
  • 应用程序
    • 应用程序文件夹
    • 图标
    • 应用程序
    • 代理配置的 FTA
    • 标记
  • 组策略

已知限制

从本地迁移到云

自动配置允许您自动将本地配置移动到云站点。

导出 Citrix Virtual Apps and Desktops 本地配置

  1. 在 Delivery Controller 上安装自动配置。
  2. 以管理员身份打开 PowerShell。
  3. 请运行以下命令以执行基线导出。

    Export-CvadAcToFile –All $true

注意:

其他可用命令如 此处 中所述。

首次运行任何 cmdlet 之后,系统将创建包含 .yml 配置文件和日志的 export 文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

如果您遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。有关日志的详细信息以及日志中提供的信息,请参阅日志记录

将配置导入 Citrix Virtual Apps and Desktops 服务中

重要:

  • 您必须附上您的 CustomerInfo.yml 文件以及您的客户 ID、客户端 ID和密钥信息。有关如何检索客户 ID、客户端 ID和密钥的详细信息,请参阅生成客户 ID、客户端 ID 和密钥。有关如何将这些信息添加到 CustomerInfo.yml 文件中的信息,请参阅填充客户信息文件
  • ZoneMapping.yml 文件必须包含将本地区域映射到云中的资源位置的信息。有关如何映射您的区域的详细信息,请参阅填充区域映射文件
  • 如果您具有 Citrix Provisioning 目录或主机连接,则必须将相应信息输入到 HostSecurity.yml 和 CvadAcSecurity.yml 中。

运行基线导入

  1. 以管理员身份运行 PowerShell。
  2. 请运行以下命令以执行基线导入。

    Merge-CvadAcToSite -All $true

注意:

其他可用命令如 此处 中所述。

请使用新的当前状态来验证预期状态。执行 Merge 导入时,预期状态必须是新当前状态的子集,才能成功导入。

运行该 cmdlet 之后,系统将创建包含 .yml 配置文件和日志的 export 文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

如果您遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。有关日志的详细信息以及日志中提供的信息,请参阅日志记录

要还原到原始 CCitrix Virtual Apps and Desktops 服务配置,请参阅备份您的 Citrix Virtual Apps and Desktops 服务配置

导入顺序和组件依赖项

ExportImportMergeNewSyncRestore 命令中可以选择以下组件。这些组件将按照其导入顺序列出。不按顺序导入可能会导致无法导入依赖项,进而导致导入操作失败。

  1. 标记
  2. 主机连接
  3. 计算机目录
  4. 交付组
  5. 应用程序组
  6. 应用程序
  7. 组策略

必须按照创建所需依赖项时的顺序来导入组件。在执行单个 cmdlet 以导入、合并或还原多个组件时,自动配置会对组件进行正确排序。

使用多个命令导入单个组件时,必须对组件进行排序,以便按照所需顺序导入依赖项。

在成功导入整个站点配置后,可以针对更新执行单独导入操作。

依赖关系详细信息

此处列出了组件及其依赖关系。组件的依赖关系必须到位,才能将其导入或合并。如果缺少依赖关系,则可能会导致导入或合并命令失败。如果导入或合并失败,日志文件的 Fixups 部分会显示缺少依赖关系。

  1. 标记
    • 无预依赖关系
  2. 主机连接
    • CvadAcSecurity.yml 中的安全信息
  3. 计算机目录
    • Active Directory 中存在的计算机
    • 主机连接
    • 标记
  4. 交付组
    • Active Directory 中存在的计算机
    • Active Directory 中存在的用户
    • 计算机目录
    • 标记
  5. 应用程序组
    • 交付组
    • 标记
  6. 应用程序
    • 交付组
    • 应用程序组
    • 标记
  7. 组策略
    • 交付组
    • 标记

填充客户信息文件

如果使用 CustomerInfo.yml 文件,则无需将客户信息添加为 cmdlet 参数。使用 cmdlet 参数可以覆盖任何客户信息。

可以使用 New-CvadAcCustomerInfoFile cmdlet 创建 CustomerInfo.yml 文件。New-CvadAcCustomerInfoFile 具有以下参数。

  • CustomerId – 客户的 ID。
  • ClientId – 客户的客户端 ID(在 Citrix Cloud 上创建)。
  • Secret – 客户的密钥(在 Citrix Cloud 上创建)。

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

您可以通过使用 Set-CvadAcCustomerInfoFile cmdlet 来更新 CustomerInfo.yml 文件。

注意:

该 cmdlet 仅更改客户 ID、客户端 ID 或密钥。

Set-CvadAcCustomerInfoFile -ClientId C80487EE-7113-49F8-85DD-2CFE30CC398E

下面是一个示例 CustomerInfo.yml 文件。

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

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

以下步骤允许您创建将配置导入 Citrix Cloud 时所需的客户端 ID 和密钥。

  1. 登录到您的 Citrix Cloud 帐户并选择相应客户。

    客户 ID 图像 1

  2. 单击汉堡菜单,然后选择下拉菜单中的身份识别和访问管理

    客户 ID 图像 2

  3. 身份识别和访问管理页面上,单击 API 访问选项卡。

    客户 ID 图像 3

  4. 在该框中输入名称。此名称用于区分多个客户端 ID 和密钥。单击创建客户端以创建客户端 ID 和密钥。

    客户 ID 图像 4

  5. 成功创建客户端 ID 和密钥后,将显示以下对话框。请务必将这两个值复制到安全位置或下载包含这些信息的 .csv 文件。

    客户 ID 图像 5

  6. 已成功创建客户端 ID 和密钥。

    客户 ID 图像 6

将这些值置于安全位置,并仅与需要访问该工具或访问云 REST API 的受信任公司成员共享。客户端 ID 和密钥不会过期。如果它们被盗用,请立即使用垃圾桶图标将其删除,然后创建新的客户端 ID 和密钥。

注意:

密钥在丢失或忘记的情况下无法找回;必须创建新的客户端 ID 和密钥。

填充区域映射文件

本地区域相当于云存储位置。与其他站点组件不同,您无法自动将本地区域导入到云存储位置。必须使用 ZoneMapping.yml 文件映射该区域。如果该区域的名称与现有的资源位置名称不一致,导入可能失败。

在导出本地配置后,但在导入到云端之前,必须手动创建 ZoneMapping.yml 文件,并且该文件必须位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。.yml 文件的内容是区域名称为键且资源位置名称为值的字典。

以下是该命令的一个示例:

---

Primary: "My Primary Resource Location"
Zone2: "Second Resource Location"

注意:

冒号与资源位置名称之间必须有一个空格。

如果未找到 ZoneMapping.yml 文件或正确的映射不存在,并且云站点只有一个区域,则系统会自动使用该区域映射到所有本地区域。

从云迁移到云

自动配置允许您自动将云配置移动到另一个云站点,或允许您还原自己的云站点。

移动 CCitrix Virtual Apps and Desktops 服务配置有很多好处,原因如下:

  • 从一个区域迁移到另一个区域
  • 将您的站点从测试或阶段同步到生产
  • 灾难恢复
  • 达到资源限制

备份您的 Citrix Virtual Apps and Desktops 服务配置

注意:

在开始之前,请按照迁移配置的必备条件中的导入步骤将配置从一个云迁移到另一个云。

重要:

  • 您必须附上您的 CustomerInfo.yml 文件以及您的客户 ID、客户端 ID和密钥信息。有关如何检索客户 ID、客户端 ID和密钥的详细信息,请参阅生成客户 ID、客户端 ID 和密钥。有关如何将这些信息添加到 CustomerInfo.yml 文件中的信息,请参阅填充客户信息文件
  • ZoneMapping.yml 文件必须包含将本地区域映射到云中的资源位置的信息。有关如何映射您的区域的详细信息,请参阅填充区域映射文件
  • 如果您具有 Citrix Provisioning 目录或主机连接,则必须将相应信息输入到 HostSecurity.yml 和 CvadAcSecurity.yml 中。
  1. 安装自动配置。
  2. 以管理员身份运行 PowerShell。
  3. 请运行以下命令以执行基线备份。

    Backup-CvadAcToFile –All $true

注意:

其他可用命令如 此处 中所述。

首次运行任何 cmdlet 之后,系统将创建包含 .yml 配置文件和日志的 export 文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

如果您遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。有关日志的详细信息以及日志中提供的信息,请参阅日志记录

将配置还原到 Citrix Virtual Apps and Desktops 服务中

注意:

注意:本部分紧跟备份您的 Citrix Virtual Apps and Desktops 服务配置,并在此处记录了步骤。在开始执行还原操作之前,请按照这些步骤进行操作。

运行基线还原

  1. 以管理员身份运行 PowerShell。
  2. 请运行以下命令以执行基线还原。

    Restore-CvadAcToSite -All $true -RestoreFolder <folder path of the backup files>

注意:

其他可用命令如 此处 中所述。

请使用新的当前状态来验证预期状态。

运行该 cmdlet 之后,系统将创建包含 .yml 配置文件和日志的 export 文件夹。该文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

如果您遇到任何错误或异常,请参阅日志文件中的 Fixups 部分。有关日志的详细信息以及日志中提供的信息,请参阅日志记录

灾难恢复

灾难恢复过程可保护您免受无意中的云站点配置更改或损坏的影响。虽然自动配置在每次进行更改时都会进行备份,但此备份反映了更改之前云站点配置的状态。保护自己需要定期备份云站点配置,并将其保存在一个安全的位置。如果发生了不希望的更改或损坏,备份可以用于在粒度或完整站点配置级别修复更改或损坏。

备份

要进行备份,请运行备份 cmdlet:Backup-CvadAcToFile

尽管备份时可以选择单个组件,但对于灾难恢复而言,Citrix 建议备份所有组件。备份放置在根文件夹下的唯一命名文件夹中:%HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss

Restore(还原)

可以从任何备份完成还原,以还原一个或多个组件成员、一个或多个组件或完整的云站点配置。

还原组件成员

还原一个或多个组件成员将使用 IncludeByName 功能。Restore cmdlet 随 RestoreFrom 参数以及选定的单个组件和包含列表一起调用。

要从备份中还原两个组策略,请按照以下示例进行操作:

Restore-CvadAcToSite -RestoreFrom %HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss

-GroupPolicies $true -IncludeByName Policy1,Policy2

还原整个组件

还原一个组件涉及选择一个或多个组件参数。

要还原整个交付组和计算机目录组件,请按照以下示例进行操作:

Restore-CvadAcToSite -RestoreFrom %HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss

-DeliveryGroups $true -MachineCatalogs $true

还原整个云站点配置

还原完整的云站点配置意味着选择要还原的所有组件。

要还原整个云站点配置,请按照以下示例进行操作:

Restore-CvadAcToSite -RestoreFrom %HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss

自动配置工具 cmdlet

站点管理 cmdlet

  • Export-CvadAcToFile - 导出本地设置中的配置。这是自动配置的默认导出操作。不对本地站点配置进行任何修改。导出的文件将放置在位于命名的导出子文件夹的目录 %HOMEPATH%\Documents\Citrix\AutoConfig 中。
  • Import-CvadAcToSite - 将所有本地文件导入到云端。此命令可确保云端状态与本地状态相同。此选项将删除云中存在的所有更改。导入的站点配置文件来自 %HOMEPATH%\Documents\Citrix\AutoConfig请小心使用。
  • Merge-CvadAcToSite - 将本地文件合并到云端,但不删除云中的任何组件。这将保留已在云中进行的更改。如果 Citrix Cloud 中存在同名组件,此命令可以修改该组件。这是自动配置的默认导入操作。合并的站点配置文件来自 %HOMEPATH%\Documents\Citrix\AutoConfig
  • Restore-CvadAcToSite - 将云站点还原到之前的配置。已导入的文件源自 -RestoreFolder 参数中指定的文件夹。此文件夹可用于恢复到之前的配置或用于对云站点进行灾难恢复。
  • New-CvadAcToSite - 将本地站点配置导入到云端,但仅添加新组件。现有云站点组件既不会更新,也不会删除。如果现有云站点组件必须保持不变,请使用此命令。
  • Sync-CvadAcToSite - Sync 在一个步骤中同时执行导出和导入。
  • Backup-CvadAcToFile - 将云配置导出到 .yml 文件。此备份可用于恢复到之前的配置或用于进行灾难恢复。
  • Compare-CvadAcToSite - 将本地 .yml 文件与云配置进行比较,生成 ImportMergeRestore cmdlet 所做的更改的报告。
  • Remove-CvadAcFromSite – 可以重置整个站点或删除组件中的成员项(例如,从目录列表中删除一个计算机目录)。当与 IncludeByName 参数结合使用以选择性地删除特定成员时,可以使用此命令。

粒度迁移 cmdlet 参数

ToSiteToFileFromSite 结尾的所有 cmdlet 都允许选择一个或多个要对其进行操作的组件。这些参数可以增强粒度,以便仅迁移选定组件。使用一个或多个以下 true/false 选项进行选择。

注意:

选择 All 会导致忽略其他参数。如果未选择任何组件,则将自动选择 All 选项。

  • All
  • Tags
  • MachineCatalogs
  • DeliveryGroups
  • ApplicationGroups
  • Applications
  • GroupPolicies
  • IncludeByNameExcludeByName - 有关这些参数的详细信息,请参阅以下内容。

按对象名称过滤

包括和排除

IncludeByNameExcludeByName 参数允许按名称在 cmdlet 中包含和排除组件成员。在任何受支持的 cmdlet 中,一次只能选择一个组件(例如,交付组)。如果组件成员在这两个区域中,排除操作将覆盖任何其他参数,并且日志修复列表中将新增一个条目,以标识排除的组件和成员名称。

包括和排除的受支持 cmdlet 如下所示:

  • Export-CvadAcToFile
  • Import-CvadAcToSite
  • Merge-CvadAcToSite
  • New-CvadAcToSite
  • Restore-CvadAcToSite
  • Sync-CvadAcSiteToSite
  • Compare-CvadAcToSite
  • Remove-CvadAcFromSite

IncludeByNameExcludeByName 将获取组件成员名称的列表。任何名称都可以包含一个或多个通配符。支持两种类型的通配符。

  • 匹配任意数量的字符
  • 匹配单个字符

将写入合并名称以 DgSite1 开头且包含 Home2 的所有交付组的一个示例:

Merge-CvadAcToSite –DeliveryGroups $true –IncludeByName DgSite1*,*Home2*

IncludeByNameExcludeByName 也可以获取包含成员列表的文件,其中每个成员都可以是直接显示的或包含通配符。该文件中的每一行都可以包含一个成员。前导空格和尾随空格将自动从成员名称中去掉。文件名前面必须带有 @ 符号,并且用单引号括起来(这是 PowerShell 的要求,因此不会重新解释 @)。除了与成员名称混用之外,还可以列出多个文件。

按交付组名称

ByDeliveryGroupName 按应用程序和应用程序组的交付组名称进行筛选。此参数始终是一个包含列表,根据其交付组关联标识要包括的成员。 cmdlet 支持的 ByDeliveryGroupName

  • Export-CvadAcToFile
  • Import-CvadAcToSite
  • Merge-CvadAcToSite
  • New-CvadAcToSite
  • Restore-CvadAcToSite
  • Sync-CvadAcSiteToSite
  • Compare-CvadAcToSite

ByDeliveryGroupName 获取交付组名称的列表。任何名称都可以包含一个或多个通配符。支持两种类型的通配符。

  • 匹配任意数量的字符
  • 匹配单个字符

以下示例合并引用以 EastDg 开头的所有交付组名称的所有应用程序。

Merge-CvadAcToSite –Applications $true –ByDeliveryGroupName EastDg*

排除已禁用

ExcludeDisabled 从导入操作中筛选出禁用的所有应用程序和应用程序组。ExcludeDisabled 默认设置为 false,这意味着无论其启用状态如何,所有应用程序和应用程序组都会导入。

迁移模式参数

修改云站点配置(ImportRestoreMergeNewSync)的 Cmdlet 还额外支持以下参数,以提高灵活性。

  • CheckMode - 执行导入操作,但进行任何更改。在导入完成之前,将报告所有预期更改。您可以使用此命令在执行导入之前测试导入操作。
  • Merge - 将文件数据合并到云端,但不删除任何组件。默认情况下,此选项在 Merge cmdlet 中处于启用状态,但在 ImportSync 中是可选的。
  • AddOnly - 仅添加组件,不更新或删除现有组件。除了默认处于启用状态的 New 之外,AddOnly 在所有 cmdlet 中都是可选的。
  • BackupFirst - 在修改云配置之前,将云内容备份到 .yml 文件中。默认情况下此选项处于启用状态。
  • Confirm - 如果为 true,则提示用户确认是否要对云站点配置进行更改。由于具有破坏性,Remove cmdlet 会显示一条提示。如果不需要提示(例如,在自动化脚本中运行),则设置为 false。Confirm 默认设置为 true。
  • AdminAddress - 支持导出 cmdlet,允许从任何 Delivery Controller 导出。必须在运行自动配置的计算机上安装相应的 Citrix PowerShell SDK,如迁移配置的必备条件中所述。当工具在非 Delivery Controller 计算机上运行时,无法导出主机连接。
  • CheckAllMachines - 检查计算机目录中的所有计算机是否存在于 Active Directory 中。如果某个计算机不存在,则将从计算机目录中删除该计算机,并将有关删除的注释添加到日志文件的修复列表中。这样可以避免因计算机不存在而导致计算机目录添加失败。CheckAllMachines 默认设置为 true。

云访问参数

访问云的所有 cmdlet(以 ToSiteFromSite 以及 Get-CvadAcStatus 结尾的 cmdlet)都支持以下额外参数。

注意:

如果将这些参数添加到 CustomerInfo.yml 文件中,则不需要这些参数。

  • CustomerId - 已在 REST API 中使用且访问所有 REST API 所需的客户 ID。您的客户 ID 位于 Citrix Cloud 中。
  • ClientId - 在 Citrix Cloud 身份识别和访问管理网站上创建的客户端 ID。获取对所有 Rest API 进行身份验证所需的持有者令牌时,需要此信息。
  • Secret - 在 Citrix Cloud 身份识别和访问管理网站上创建的密钥。获取对所有 Rest API 进行身份验证所需的持有者令牌时,需要此信息。
  • CustomerInfoFileSpec - 指向客户信息文件以覆盖默认位置和名称的文件规范。
  • SiteActive - 确定云站点处于被动还是主动状态。设置为 False 时,云站点处于被动状态,设置为 True 时处于主动状态。SiteActive 默认设置为 False,将云站点设置为被动。

支持和故障排除 cmdlet

  • New-CvadAcCustomerInfoFile - 创建一个 CustomerInfo.yml 文件,其中包括 CustomerId、ClientId 和 Secret 参数。
  • Set-CvadAcCustomerInfoFile - 允许您在 CustomerInfo.yml 文件中编辑 CustomerId、ClientId 和 Secret 参数。
  • New-CvadAcTemplateToFile - 为选定组件创建模板文件,以便手动创建导入文件。
  • Test-CvadAcConnectionWithSite - 测试与云站点的连接以验证通信连接是否正常工作。此 cmdlet 使用云访问参数或 CustomerInfo.yml 文件来指定客户连接信息。
  • Find-CvadAcConnector - 查找现有连接器并确定其运行状态。此 cmdlet 使用 CustomerInfo.yml 文件中的信息或客户 ID 参数来查找客户的连接器。
  • Get-CvadAcCustomerSites - 返回所有客户站点的列表。此 cmdlet 使用云访问参数或 CustomerInfo.yml 文件来指定客户连接信息。
  • Get-CvadAcStatus - Get Status 将返回有关工具及其运行环境的信息,包括工具版本、用户是否具有执行导出操作的站点管理员权限、是否存在客户信息(客户 ID、客户端 ID 和密钥)、是否可以与站点通信,以及是否存在一个或多个连接器。

日志显示参数

ExportImportSyncRestoreBackupCompareRemove cmdlet 会在该操作完成时显示日志文件。您可以通过将 -DisplayLog 参数设置为 $false 以禁止显示日志。默认情况下,将使用 Notepad.exe 来显示日志文件。您可以在 CustomerInfo.yml 文件中指定不同的编辑器。

Editor: C:\Program Files\Notepad++\notepad++.exe

通过命令派生的状态结果

派生的状态可能会导致云站点上出现以下三个操作组合之一:

  • 添加、更新和删除
  • 仅添加和更新
  • 仅添加

下表显示每个 cmdlet 的派生状态以及可更改 cmdlet 的派生状态行为的可选参数。

命令 Add、Update、Delete Add、Update Add
导入 -Merge $false 默认值 -AddOnly $true
Merge 不适用 默认值 -AddOnly $true
New 不适用 不适用 默认值
Sync(同步) -Merge $false 默认值 -AddOnly $true
Restore(还原) -Merge $false 默认值 -AddOnly $true

cmdlet 返回值

ActionResult

所有 cmdlet 都将返回以下值。

public class ActionResult
{
    public bool                         Overall_Success;
    public Dictionary<string, string>   Individual_Success;
    public object                       CustomResult;
}

Overall_Success 将返回一个布尔值,以显示所有选定组件中的 cmdlet 是否均成功:true 表示成功,false 表示不成功。

Individual_Success 将返回每个主组件的一个或三个值。组件的结果可以是“成功”、“失败”或“已跳过”。“已跳过”表示未选择以供 cmdlet 执行的组件。

CustomResult 特定于 cmdlet。

CustomResult

ImportMergeRestoreSyncCompareCompare FileRemove 将返回 EvaluationResultData 单个实例的以下自定义结果信息。

注意:

ExportTemplate cmdlet 不返回自定义结果。

    public class EvaluationResultData
    {
        public Dictionary<string, Dictionary<string, ActionResultValues >> EvaluationResults;
        public int                  Added;
        public int                  Updated;
        public int                  Deleted;
        public int                  NoChange;
        public int                  TotalChanged;
        public EvaluationResults     OverallResult;
        public string               CloudBackupFolder;
        public string               SourceBackupFolder;
    }
    Where:
    public enum ActionResultValues
    {
        Add,
        Update,
        Delete,
        Identical,
        DoNothing
    }
    public enum EvaluationResults
    {
        Success,
        Failure,
        Skipped
    }

EvaluationResults 将显示一个列表,其中包含每个选定组件对应的一个条目。键是组件名称,值是每个组件成员以及对该组件成员执行的操作的列表。操作可以是 ActionResultValues 的任何一个值。

AddedUpdatedDeletedNoChange 指示按该顺序添加、更新、删除或未执行任何操作的组件成员总数。

TotalChangedAddedUpdatedDeleted 的总和。

OverallResult 是一个表示 cmdlet 结果的布尔值。True 表示所有组件均成功,false 表示处理一个或多个组件时失败。

CloudBackupFolder 是在 cmdlet 执行任何云修改操作之前,云站点配置备份的完全限定文件规范。

SourceBackupFolder 是在 cmdlet 完成执行后进行的源文件备份的完全限定文件规范。默认情况下,这些文件位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

帮助

我们为每个 cmdlet 均提供了 PowerShell 帮助。所有参数均与每个 cmdlet 以及相应 cmdlet 的简要说明一起记录。要访问任何 cmdlet 的帮助,请在 cmdlet 前面键入 Get-Help

Get-Help Import-CvadAcToSite

文件夹、备份和日志记录

自动配置可初始化、更新和备份云站点配置。在使用过程中,随着时间的推移,许多不同的配置可能会在云站点上发生变化。为便于长期使用和保留历史更改,自动配置采用了保留方案,以保存更改的历史记录,并作为一种还原早期状态的方法。

文件夹

默认文件夹根位置

所有自动配置工具操作都在根文件夹或其中的子文件夹中执行。根文件夹位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中。

导出

所有导出的文件均位于这两个文件夹位置,以方便使用并提供导出历史记录。导出的内容始终位于根文件夹中。副本位于名为 Export 的子文件夹中,并显示了导出日期和时间。

根文件夹包含的永远都是导出的最新本地站点配置。每个 Export 子文件夹都包含在指定日期和时间完成的导出,并保留导出的历史记录。您可以使用任何 Export 子文件夹来配置云站点。自动配置不会删除或修改现有导出子文件夹。

导入/合并/同步/比较

ImportMergeCompare 操作始终源自位于根文件夹中的文件。每个操作都会创建一个用于将根文件夹中的文件复制到的子文件夹,从而提供云站点更改源文件的历史记录。

任何子文件夹都可用于配置云站点。自动配置不会删除或修改现有导出子文件夹。

Restore(还原)

Restore 操作将使用现有子文件夹来配置云站点。源文件夹是通过所需的 -RestoreFolder 参数指定的。与其他命令不同,该命令不会创建新的子文件夹,因为 Restore 操作会使用现有子文件夹。还原文件夹可以是根文件夹,但仍必须通过 -RestoreFolder 参数来指定。

备份

始终对名为 Backup 且包含备份的数据和时间的子文件夹进行云站点配置备份。自动配置不会删除或修改现有导出子文件夹。

您可以使用备份来还原特定组件或整个配置。要还原整个交付组和计算机目录组件,请使用 cmdlet:

Restore-CvadAcToSite -RestoreFrom %HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss -DeliveryGroups $true -MachineCatalogs $true

注意:

上述 cmdlet 中的备份文件信息基于您自己的备份。

要还原整个云站点配置,请使用 cmdlet:

Restore-CvadAcToSite -RestoreFrom %HOMEPATH%\Documents\Citrix\AutoConfig/Backup_yyyy_mm_dd_hh_mm_ss

注意:

上述 cmdlet 中的备份文件信息基于您自己的备份。

更改默认根文件夹

ExportImportMergeSyncCompare 操作可以通过使用 –AlternateFolder 参数来更改默认根文件夹。每个操作子文件夹的创建和管理与之前所述的方式相同。

复制到子文件夹中的文件

所有具有“.yml”扩展名的文件都将复制到操作子文件夹中,但以下文件除外:

  • CustomerInfo.yml
  • ZoneMapping.yml
  • HostSecurity.yml

自动防故障云站点备份

在运行更改配置的操作之前,先备份当前云站点配置。此配置包括 ImportMergeSyncRestore 参数。备份始终位于操作子文件夹下方的子文件夹中。

如果使用 Restore,则备份文件夹是通过 -RestoreFrom 参数指定的文件夹的子文件夹。

日志记录

运行任何 cmdlet 都会导致创建日志文件且主历史记录日志文件中会增加一个条目。所有操作日志文件都位于备份文件夹中。所有日志文件名都以 CitrixLog 开头,然后显示自动配置操作以及 cmdlet 执行的日期和时间戳。日志不会自动删除。

主历史记录日志位于 %HOMEPATH%\Documents\Citrix\AutoConfig 中名为 History.Log 的文件中。每个 cmdlet 执行都会生成一个主日志条目,其中包含执行的日期、操作、结果、备份和日志文件位置。

日志记录详细信息

每个日志文件均包含以下内容:

  • 操作的名称以及是否已启用检查模式
  • 开始和结束日期与时间
  • 与每个组件的操作对应的多个条目,以及成功/失败通知
  • 执行的操作的摘要,包括已创建的各种对象的数量
  • 建议的修复(如果适用)
  • 备份文件夹位置(如果适用)
  • 主日志位置
  • 持续时间

诊断文件

诊断文件可帮助您确定和解决问题。以下文件是在运行其操作时创建的。它们位于 %HOMEPATH%\Documents\Citrix\AutoConfig 下特定于操作的子文件夹中。在提供信息以获取问题解决支持时,请附上这些文件。

导出

PoshSdk_yyyy_mm_dd_hh_mm_ss.ps1

此文件将枚举进行的所有代理 PowerShell SDK 调用,以将站点配置导出到文件。

导入、合并、还原、同步、备份、比较

Transaction_yyyy_mm_dd_hh_mm_ss.txt

此文件记录了每个 REST API 调用及相关信息。

RestApiContent_yyyy_mm_dd_hh_mm_ss.txt

此文件包含所有 AddUpdateDelete REST API 内容。

其他信息

当您具有 Machine Creation Services 计算机目录时导入其他对象

目前,自动配置不支持以自动方式导入 MCS 计算机目录或其相应的交付组。但是,您仍然可以使用自动配置导入其他配置选项,例如应用程序和策略。必须使用与本地设置相同的名称创建计算机目录和交付组。在继续导入应用程序设置之前,请按照以下步骤准备环境:

  1. 在 Citrix Cloud 门户中,单击汉堡菜单,然后转到 My Services(我的服务)> Virtual Apps and Desktops 服务 > Manage(管理)。像平常一样创建您的 MCS 计算机目录。请确保目录命名的方式与现有本地目录的命名方式完全相同。

  2. 为新目录创建相应的交付组。请务必完全根据相应的本地交付组对其进行命名。

  3. 在本地环境的 Citrix Studio 中的应用程序节点中,通过选择应用程序,右键单击该应用程序,然后转到属性来确认应用程序属于匹配的交付组。

  4. 单击“组”以确认应用程序所属的组:

    客户 ID 图像 8

  5. 在 PowerShell 中,运行合并命令并使用 byDeliveryGroupName 标志,该标志会按交付组名称筛选应用程序。

    Merge-CvadAcToSite –Applications $true –ByDeliveryGroupName <DG_name>

    客户 ID 图像 9

  6. 键入 Yes 以继续。

    客户 ID 图像 10

  7. 在 Citrix Cloud 中的 Studio 控制台上,转到应用程序并刷新以确保按预期列出应用程序。选择应用程序,然后转到应用程序属性 > 组进行检查。

导入与 MC 相关的策略

如果需要导入与 MCS 目录或组关联的策略,请按照以下说明进行操作:

  1. 在 PowerShell 中运行 Merge-CvadAcToSite -GroupPolicies $true 命令,然后键入 yes 以继续。

    客户 ID 图像 13

    成功执行将显示与前面的屏幕截图相似的输出(添加的值)。以下屏幕截图显示了没有更改(无更改)的行的结果。

    客户 ID 图像 14

  2. 刷新 Citrix Cloud 中的 Studio 窗口,然后单击左侧的策略

  3. 选中 Policies Assigned to(分配到的策略)选项卡,并将其与本地策略分配进行比较。

迁移到 Citrix Cloud Government

Citrix Cloud Government 环境使用不同的接入点来验证和分配访问令牌。这一独特的要求适用于访问云的任何自动配置工具。请执行以下步骤以在 Citrix Cloud Government 环境中使用自动配置。

  1. %HOMEPATH%\Documents\Citrix\AutoConfig 文件夹中,编辑 CustomerInfo.yml。
  2. 将以下行添加到 CustomerInfo.yml(如果已存在,请进行更改。)

    Environment: "ProductionGov"

自动配置现在可以在 Citrix Cloud Government 环境中使用。

管理员作用域

导出和导入过程支持管理员作用域。但是,导入过程只能关联作用域,而不能创建它。请按照以下步骤将管理员作用域成功导出和导入到云站点。

  1. 导出本地站点。
  2. 在本地 Citrix Studio 中,导航到配置 > 管理员 > 作用域选项卡,并记下所有存在的作用域。无需记录它们的关联,因为这些关联是在导入组件时创建的。
  3. 在 Citrix Cloud 控制台中,导航到配置 > 管理员 > 作用域选项卡,然后手动创建在上一步中记录的每个作用域。
  4. 从步骤 1 中 ImportMergeRestoreNewSync 导出的内容。
  5. 手动创建的作用域已与正确的组件相关联。

如果未先手动创建管理员作用域,则导入操作将从组件中删除作用域。手动创建作用域后,重新运行导入操作会将作用域与组件相关联。

主机连接

可以使用自动配置导出和导入主机连接及其关联的虚拟机管理程序。

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

导出过程会在 %HOMEPATH%\Documents\Citrix\AutoConfig 中创建 HostSecurity.yml 文件,该文件包含特定的虚拟机管理程序类型所需的每个安全项目的占位符。在导入到云站点之前,必须更新 HostSecurity.yml 文件。在根据需要添加新的安全占位符的多次导出过程中,将保留管理员进行的更新。禁止删除安全项目。

---

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

每个虚拟机管理程序的安全信息

下面列出了每种虚拟机管理程序类型所需的安全信息。

  • XenServer、Hyper-V、VMware
    • 用户名
    • 明文密码
  • Microsoft Azure
    • 订阅 ID
    • 应用程序 ID
    • 应用程序机密
  • Amazon Web Services
    • 服务帐户 ID
    • 应用程序机密
    • 地理区域

特殊安全注意事项

所有安全信息都以明文形式输入。如果不建议使用明文,则可以使用 Citrix Cloud 的 Studio 控制面板手动创建主机连接及其关联的虚拟机管理程序。主机连接和虚拟机管理程序名称必须与其本地主机连接和虚拟机管理程序名称完全相同,才能成功导入使用主机连接的计算机目录。

自动化

自动配置工具 cmdlet 可以在无需管理员干预的情况下在自动化脚本中运行,方法是在 cmdlet 完成运行时禁止提示和显示日志结果。此外,您也可以通过使用 CustomerInfo.yml 文件来设置参数以执行相同的操作。

将以下参数添加到云修改 cmdlet 以禁止显示提示。

-Confirm $false

将以下参数添加到 cmdlet 中,以禁止在 cmdlet 完成运行时显示日志。

-DisplayLog $false

另一种方法是将以下参数置于 CustomerInfo.yml 文件中。

Confirm: False

DisplayLog: False

从 Delivery Controller 以外的 PC 导出

自动配置工具将使用多个 Citrix PowerShell SDK 将本地站点配置导出到文件中。这些 SDK 将自动安装在 Delivery Controller 上,从而无需执行额外操作即可在 Delivery Controller 上运行该工具。在非 Delivery Controller 计算机上运行时,需要安装该工具所需的 Citrix PowerShell SDK 集。此 SDK 集是 Citrix Studio 的一部分,后者可通过 Citrix Virtual Apps and Desktop 安装介质进行安装。

注意:

无法从非 Delivery Controller 计算机上导出主机连接。

无法在 Cloud Connector 上运行自动配置。

Citrix Cloud 数据收集

有关 Citrix Cloud 收集的信息的信息,请参阅 Citrix Cloud 服务 客户内容和日志处理

故障排除和建议

有关更多详细信息以及最新的故障排除和支持信息,请参阅知识中心文章 CTX277730

要进行快速排除故障,请查看日志文件,特别是 Fixups 部分。

依赖关系引起的问题

导入和合并可能会因缺少依赖关系而失败。一些常见问题包括:

  1. 组策略缺少交付组过滤器。通常的原因是尚未导入的交付组。
  2. 应用程序无法导入或合并。通常的原因是缺少尚未导入的交付组或应用程序组。
  3. 应用程序组缺少 RestrictTo 标签。通常的原因是尚未导入的标签。
  4. 主机连接失败。通常的原因是 CvadAcSecurity.yml 文件中缺少安全信息。
  5. 计算机目录失败。通常的原因是未导入的主机连接。
  6. 计算机目录和交付组中缺少计算机。通常的原因是在 Active Directory 中找不到的计算机。
  7. 交付组中缺少用户。通常的原因是在 Active Directory 中找不到的用户。

常见问题

云站点为空

空站点表示未成功完成导入/合并/还原操作。如果尝试执行某个操作,请查看该操作生成的日志。

云站点上的项目超过预期数量

如果对云站点配置进行了增强并运行了 Merge 操作,则可能会发生这种情况。如果云站点配置之前具有值,并且导入/合并/还原操作出现问题,则也可能会发生这种情况。请尝试重新运行该操作。

云站点上的项目少于预期数量

如果对云站点配置进行了增强,并且 Import 操作的 Merge 参数被设置为 $false,从而导致出现相同的派生状态,则可能会发生这种情况。原始状态将在与导入操作相关联的自动防故障云站点备份文件夹中进行备份。要更正,请执行以下操作:

  1. 使用将 RestoreFolder 参数设置为自动防故障云站点备份文件夹的还原操作,来还原自动防故障云站点备份

  2. 使用 Merge 操作,而非 Import 操作。

云站点将在导入中断后进行编辑

如果在 –Merge 参数设置为 $false 的情况下执行了 Import 操作,从而导致导入相同的派生状态,则可能会发生这种情况。原始状态将在与导入操作相关联的自动防故障云站点备份文件夹中进行备份。要更正,请执行以下操作:

  1. 使用将 RestoreFolder 参数设置为自动防故障云站点备份文件夹的还原操作,来还原自动防故障云站点备份

  2. 使用 Merge 操作,而非 Import 操作。

云站点与当前本地站点不匹配

当完成 Merge 操作以导致出现合并的派生状态,而非在 Merge 参数设置 $false 的情况下执行 Import 以导致出现相同的派生状态时,可能会发生这种情况。在 Merge 参数设置为 $false 的情况下使用 Import 重复执行该操作。

建议

  • 请勿一次运行多个自动配置实例。运行多个并发实例会导致在云站点中产生不可预知的结果。如果发生此情况,请重新运行一个自动配置实例,以使站点恢复到预期状态。
  • 运行自动配置时,请勿在 Web Studio 或完全配置中工作。在运行自动配置时在 Web Studio 或完全配置中进行更改可能会导致在云站点中产生不可预知的结果。如果发生此情况,请重新运行一个自动配置实例,以使站点恢复到预期状态。
  • 始终以直观地方式验证 Web Studio 或完整配置中的合并/导入/还原结果,以确保云站点满足预期要求。

更多信息