Citrix DaaS

升级 VDAs

简介

Citrix 负责维护您的部署中除 VDA 以外的所有 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)组件。

开始升级 VDA 之前:

  • 查看整篇文章,以便了解所需的对象。
  • 查看 Citrix DaaS 的生命周期策略

要升级 VDA,请下载 VDA 安装程序并在计算机或映像上运行该安装程序。可以使用安装程序的图形界面或命令行界面。有关指导,请参阅:

如果 VDA 最初是使用 VDAWorkstationCoreSetup.exe 安装的:

  • 如果使用同一安装程序的最新版本升级 VDA,则保留该配置。
  • 如果您在该计算机上运行 VDAWorkstationSetup.exe,则可以启用 VDAWorkstationCoreSetup.exe 中不支持的功能。请谨记,其中某些功能可能会在 VDAWorkstationSetup.exe 安装程序中默认启用。还可以安装 Citrix Workspace 应用程序。

注意:

将 VDA 升级到版本 7.17 或受支持的更高版本,升级过程中将重新启动计算机。本次重新启动是不可避免的。升级在重新启动后自动继续进行(除非您在命令行中指定了 /noresume)。

升级 VDA 后,请更新使用该 VDA 的映像和目录

使用 Studio 升级 VDA

重要:

  • 作为最佳实践,我们建议您在投入生产之前全面测试 VDA 升级。
  • 只要从早期版本切换到更高版本,就可以在 CR VDA 和 LTSR VDA 之间切换。您无法从更高版本切换到较早的版本,因为这被视为降级。例如,您无法从 2212 CR 降级到 2203 LTSR(任何 CU),但可以从 2112 CR 升级到 2203 LTSR(任何 CU)。
  • 不支持按需更新(例如主要版本之间的修补程序和补丁)。
  • CVAD 2402 VDA 可通过 VDA 升级服务获得。

使用 Studio,您可以按每个目录或每台计算机升级 VDA。您可以立即或在预定时间升级它们。

要了解有关 VDA 升级服务的更多信息,请参阅 技术简介:Citrix VDA Upgrade 服务。在这里,您将找到该服务的概述、有关其工作原理的详细信息以及其他有用的资源。

必备条件

  • 控制平面:Citrix DaaS
  • VDA 类型:单会话或多会话操作系统 VDA。目前仅支持 Windows VDA。
  • VDA 版本:2109 或更高版本,或 2203 LTSR 或更高版本

    注意:

    我们建议使用最新的 CR VDA 或最新的 LTSR CU VDA。

  • 预配类型:永久性计算机(例如 MCS 预配的计算机、Remote PC Access 计算机、适用于 Windows 365 的 Citrix HDX Plus)。请参阅支持的计算机类型
  • VDA 必须安装了 VDA 升级代理并且服务必须正在运行。
  • 您有权升级 VDA。
  • 在 Studio 中使用正确的 CR 或 LTSR 轨道配置 VDA 升级。
  • VDA 未在使用中。(用户必须从他们那里注销。)

    注意:

    任何正在使用或处于断开状态的 VDA 都将跳过升级。我们建议安排一个升级窗口并要求用户注销 vDA。

  • VDA 未处于维护模式。(管理员可以将 VDA 置于维护模式。如果 VDA 已超过允许的最大注册尝试次数,也可以自动将其置于维护模式。)
  • 如果 URL 过滤已到位,相关的 URL 已添加到允许列表中。请参阅 VDA 升级要求
  • VDA 必须属于交付组并在 DaaS 中注册。
  • 功能级别设置正确,因此 VDA 升级功能可供使用。查看 VDA 版本和功能级别
  • 目标 VDA 支持当前 VDA 的操作系统。

已知问题

问题 1:无法将 LTSR vDA 升级到 LTSR 累积更新 (CU) 版本

尝试将 LTSR VDA 升级到 LTSR 累积更新 (CU) 版本可能会失败。尽管 Studio 中的升级过程似乎已成功完成,但安装的 VDA 版本并未更改,状态在一两分钟后变回为“可升级”。安装了 VDA Upgrade Agent 版本 7.35.0.7 或更早版本的 VDA 会出现问题。

要解决此问题,请登录 VDA 并将 VDA 升级代理升级到 7.37.0.7 或更高版本(使用 VDA 安装程序版本 2303 或更高版本)。自版本 7.37.0.7 起,VDA 升级代理支持自动升级,因此在 VDA 上运行的早期版本的代理可以自动升级到最新版本。借助此自动更新功能,VDA 升级服务会检查代理报告的 VDA 版本,然后在一小时内安排升级,以自动将代理升级到最新版本。此自动升级功能减少了您的维护工作量。

要使 VDA 上的代理自动升级,请务必注销会话,以便 VDA 升级服务可以启动自动升级。您可以在 Studio 中注销会话。

注销 Studio 中的会话

如果代理无法自动升级,请登录 VDA 并按如下所示手动升级代理:

  1. 运行以下 cmdlet 以在“控制面板”>“卸载或更改程序”中显示 VDA 升级代理。

    (Get-ChildItem  -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall' | ? { $_.GetValue('DisplayName') -eq 'Citrix VDA Upgrade Agent Service - x64' }).GetValue('SystemComponent')
    (Get-ChildItem  -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall' | ? { $_.GetValue('DisplayName') -eq 'Citrix VDA Upgrade Agent Service - x64' }) | Set-ItemProperty -Name SystemComponent -Value 0
    <!--NeedCopy-->
    
  2. 安装最新的 VDA 升级代理。要执行无提示安装,请使用以下 cmdlet:

    • msiexec /i CitrixUpgradeAgent_x64.msi /q

可以使用 cmdlet 或脚本识别 VDA 升级代理的版本。请参阅故障排除

常规工作流程

使用 Studio 升级 VDA 的一般流程如下:

  1. 为目录启用 VDA 升级。

  2. 在每个目录或每台计算机的基础上升级 VDA。有关详细信息,请参阅 为 VDA 配置自动升级

    注意:

    在为目录安排 VDA 升级时,请注意,该目录中的所有计算机都将包含在升级作用域内。因此,我们建议在启动升级之前备份这些计算机。

故障排除

如果出现升级失败,您可以使用以下日志自行解决问题,也可以在联系 Citrix 技术支持寻求帮助时提供日志。

  • %temp%/Citrix/XenDesktop Installer 下的 VDA 初始安装的安装日志

  • C:\Windows\Temp\Citrix\XenDesktop Installer 下的升级日志

要检查 VDA 升级代理版本,请使用以下 cmdlet:Get-VusComponentVersion -ComponentType VUS。它列出了所有 VDA 及其 VDA 升级代理版本。

要获取 VDA 名称,请使用以下 cmdlet:Get-BrokerMachine -UUID "<version number>",其中 <version number> 是您从 Get-VusComponentVersion cmdlet 获得的 VDA 升级代理版本。

要在目录级别检查 VDA 升级代理版本,可以使用以下脚本:

注意:

该脚本仅作为示例,可能需要进行调整以适应您的特定环境。我们建议您在生产环境中使用脚本之前对其进行全面测试。

Param(
    [Parameter (Mandatory=$true)]
    [string] $CatalogName
)

try
{
    $Uuids = Get-BrokerMachine -CatalogName $CatalogName | Select-Object -Property UUID

    if($Uuids -eq $null)
    {
        throw "Cannot find CatalogName "+$CatalogName
    }
    Write-Output("Catalog Name passed is "+$CatalogName)

   foreach($Uuid in $Uuids)
    {
        $compVersion = Get-VusComponentVersion -MachineId $machine.UUID -ComponentType VUS
        $Machine = Get-BrokerMachine -UUID $compVersion.MachineId
        Write-Output("MachineName: "+$Machine.MachineName+", Machine UUID:"+$machine.MachineId+", VUA Version:"+$compVersion.Version)
    }
}
catch
{
    Write-Output("Exception Occured")
    Write-Host $_
}
<!--NeedCopy-->

与 VDA 升级代理相关的日志

您还可以收集与 VDA 升级代理相关的日志。您可以收集的日志包括:

  • Citrix 诊断工具 (CDF) 追踪。CDF 模块名称是 VdaUpgradeAgent
  • Windows 事件日志。写入 Windows 事件日志的信息。在 事件查看器 > 应用程序和服务日志 > Citrix VDA Upgrade Agent Service中查看日志。

如果需要,您可以修改 VDA Upgrade Agent 配置文件,以便将日志持续写入文件中。要启用文件登录功能,请执行以下步骤:

  1. 转到文件夹 C:\Program Files\Citrix\CitrixUpgradeAgent

  2. 打开文件 Citrix.UpdateServices.UpdateAgent.exe.config

  3. LogToFile 的值更改为 1

  4. 重新启动 Citrix VDA Upgrade Agent Service。这将在以下位置创建日志文件:C:\ProgramData\Citrix\Update Services\Logs

注意:

  • 启用文件日志记录功能会持续写入日志,可能会消耗存储空间。问题解决后,记得禁用日志记录。要禁用日志记录,请先将 LogToFile 设置为 0 然后重新启动 Citrix VDA Upgrade Agent Service。
  • 设置 LogToFile=1 后,日志仅写入文件。它们不会出现在 CDF 轨迹中。

排除 VDA 升级下载失败故障

按照以下步骤对与 VDA 升级功能相关的下载失败进行故障排除和解决:

  1. 如果 URL 过滤已到位,请确保相关的 URL 已添加到允许列表中。请参阅 VDA 升级要求

  2. 将必要的 URL 添加到允许列表后,尝试重新安排 VDA 升级。

您可以启用 CDF 跟踪或将 LogToFile 设置为 1 以捕获详细日志进行分析。如果下载失败问题仍然存在,请检查错误。如果您看到以下错误消息“下载失败:此访问控制列表不是规范格式,因此无法修改”,则表示 C:/ProgramData/Citrix/UpgradeServices/Downloads/VDA 文件夹的权限不正确。要解决此问题,请执行以下任一操作:

  • 选项 1:使用以下命令重置文件夹上的访问控制列表 (ACL)。(该命令使用所有匹配文件的默认继承 ACL 重置 ACL。)

    • icacls.exe "C:\ProgramData\Citrix\UpgradeServices\Downloads\VDA" /reset /T /C /L /Q
  • 选项 2:删除“下载”下的 VDA 文件夹,然后安排 VDA 升级。

排除 VDA 升级验证失败故障

按照以下步骤对与 VDA 升级功能相关的下载失败进行故障排除和解决:

  1. 如果 URL 过滤已到位,请确保已将相关 URL 添加到允许列表中,尤其是吊销检查所需的证书吊销列表 (CRL) 或在线证书状态协议 (OCSP) URL。请参阅 VDA 升级要求

  2. 将必要的 URL 添加到允许列表后,尝试重新安排 VDA 升级。

我们建议启用 CDF 跟踪或将 LogToFile 设置为 1 以捕获详细日志进行分析。日志可能包含以下错误:

  • RevocationStatusUnknown
  • 吊销功能无法检查证书的吊销状态。
  • 吊销功能无法检查撤销,因为吊销服务器处于脱机状态。

VDA 升级代理依赖 Windows 系统调用来验证证书和执行吊销检查。上述错误表明代理无法与 CRL 或 OCSP URL 建立连接。

请注意,VDA 升级代理目前不支持代理设置。CryptoAPI 发出的出站 CRL 和 OCSP 调用不了解代理配置,这可能会导致故障。

如果您的环境设置了代理,则可以在 VDA 上配置系统代理以方便出站 CRL 呼叫。按照以下步骤配置系统代理:

netsh winhttp import proxy source=ie

Or

netsh winhttp set proxy proxy-server=http://Proxy_Server:Port
<!--NeedCopy-->

使用 PowerShell 升级 VDA

可以使用 Remote PowerShell SDK 配置 VDA 升级。有关 Remote PowerShell SDK 的详细信息,请参阅 Citrix DaaS Remote PowerShell SDK

下面是 PowerShell cmdlet:

  • Get-VusCatalog

    使用此 cmdlet 获取目录的详细信息,例如 NameUidUuidUpgradeStateAvailableUpToDateScheduledUnknown)、UpgradeType (CR/LTSR)、Upgrade scheduledStateIdUpgrade scheduled 的状态)。

  • Get-VusMachine

    使用此 cmdlet 获取计算机的详细信息,例如 MachineNameUidUuidUpgradeStateAvailableUpToDateScheduledUnknown)、UpgradeType (CR/LTSR) 和 StateIdUpgrade scheduled 的状态)。

  • Get-VusComponentVersion

    使用此 cmdlet 来检查 VDA 是否已报告组件版本。使用 MachineId 筛选 VDA。MachineId 是来自 Get-BrokerMachine 的 UUID。

  • Get-VusAvailableVdaVersion

    使用此 cmdlet 查看通过 VDA 更新服务发布的最新 CR/LTSR 版本。

    Get-VusAvaialbleVdaVersion cmdlet 示例

  • Set-VusCatalogUpgradeType

    使用此 cmdlet 将目录的升级类型设置为 CR 或 LTSR。升级类型只能在计算机目录级别设置。

  • New-VusMachineUpgrade

    使用此 cmdlet 在计算机级别配置 VDA 升级。

  • New-VusCatalogSchedule

    使用此 cmdlet 在计算机目录级别安排 VDA 升级。

VUS 多版本支持(技术预览版)

以前,VUS 仅允许升级到每个升级轨道中发布的最新版本的 VDA。这项新的技术预览功能使您能够升级到 VDA 的新版本和先前发布的版本。目录级别升级和单个计算机级 VDA 升级支持此功能。

必备条件

  • 远程 PowerShell SDK 版本 7.43 或更高版本。前往 Citrix 下载下载最新版本的 Citrix Remote PowerShell SDK。
  • 在“升级到 2203 LTSR”工具提示中提供您的电子邮件地址,注册技术预览版。

    VUS-N-1-Support

下面是 PowerShell cmdlet:

  • Get-VusAvailableVdaVersion

    使用此 cmdlet 查找目录或计算机可以升级到的兼容 VDA 版本。

    cmdlet 使用目录中最低的 VDA 版本来计算目录可以升级到的兼容版本。

    注意:

    • 如果您未启用功能切换,cmdlet 将返回通过 VDA 更新服务发布的最新 CR/LTSR 版本

      Get-VusAvaialbleVdaVersion cmdlet example

    • 这些 cmdlet 可以在目录或计算机上运行。

    1. 可以通过传递 CatalogName 或 CatalogUid 或 CatalogUuid 来获得目录的兼容版本。

      vus-catalog-uid

  • New-VusCatalogSchedule

    使用此 cmdlet 在目录级别安排 VDA 升级。

    使用此参数,您可以将目录升级到支持的兼容版本。

    示例: 将目录升级到 2203 LTSR CU 5:

    vus-catalog-schedule

  • New-VusMachineSchedule

    使用此 cmdlet 在计算机级别安排 VDA 升级。cmdlet 现在支持 UpgradeVersion 参数。

    使用此参数,您可以将计算机升级到支持的兼容版本。

    示例: 将计算机升级到 2402 LTSR CU 1:

    vus-machine-schedule

    注意:

    • 传递给 New-VusCatalogScheduleNew-VusMachineScheduleUpgradeVersion 必须与在 Get-VusAvailableVdaVersion 中找到的版本相匹配 。

    • 可以使用 Get-VusCatalogGet-VusMachine cmdlet 监视升级状态。

计算机级别的 cmdlet 示例

  • 设置升级类型。

    示例: - Set-VusCatalogUpgradeType -CatalogName test-catalog -UpgradeType LTSR

  • 使用 Get-VusMachine 检查目录中的计算机的 UpgradeState

    示例: - Get-VusMachine -CatalogName test-catalog

    Get-VusMachine cmdlet 示例

    如果您看到 UpgradeStateUnknown,可能的原因之一是 VDA 上安装的 Citrix VDA Upgrade Agent 尚未向 VDA 更新服务报告该版本。可以使用 Get-VusComponentVersion cmdlet 来检查 VDA 是否已报告组件版本。 - Get-VusComponentVersion -MachineId ""

    Get-VusComponentVersion cmdlet 示例

    如果未显示任何结果,请验证以下内容:

    • VDA 是目录和交付组的一部分。
    • VDA 升级代理已安装在 VDA 上并且正在运行。如有必要,请尝试重新启动代理。

    注意:如果仍然没有结果,请在重新启动 VDA Upgrade Agent 的同时收集 Citrix 诊断设施跟踪信息并解决问题。

  • 安排 VDA 升级。在开始之前,请注意以下事项:

    • DurationInHours:允许您提供升级过程的持续时间(以小时为单位)。VDA 将进入维护模式。将下载 VDA 安装程序并执行升级。如果有许多 VDA 需要升级,则提供更长的持续时间。
    • UpgradeNow:使用此开关可立即安排升级或设置 ScheduledTimeInUtc
    • ScheduledTimeInUtc:允许您在特定的日期和时间安排升级。

    示例:

    • New-VusMachineUpgrade -MachineUuid d664614a-cd37-44d6-b1f0-6f6b70f8299c -ScheduledTimeInUtc ([System.DateTime]::ParseExact("06/23/2023 03:35 PM", 'MM/dd/yyyy hh:mm tt', $null)) -DurationInHours 2

    您可以使用 MachineUuidMachineUidMachineName 来安排 VDA 升级。

    New-VusMachineUpgrade cmdlet 示例

  • 检查升级状态。

    示例: - Get-VusMachine -MachineName test-machine-1

    正在升级

    升级成功

目录级别 cmdlet 示例

  • 在计算机目录级别设置升级类型。

    示例: - Set-VusCatalogUpgradeType -CatalogName test-catalog -UpgradeType LTSR

  • 使用 Get-VusCatalog 检查目录中的计算机的 UpgradeState

    示例: - Get-VusCatalog -Name test-catalog

    Get-VusCatalog cmdlet 示例

    如果您看到 UpgradeStateUnknown,可能的原因之一是 VDA 上安装的 Citrix VDA Upgrade Agent 尚未向 VDA 更新服务报告该版本。可以使用 Get-VusComponentVersion cmdlet 来检查 VDA 是否已报告组件版本。 - Get-VusComponentVersion -MachineId ""

    Get-VusComponentVersion cmdlet 示例

    如果未显示任何结果,请验证以下内容:

    • VDA 是目录和交付组的一部分。
    • VDA 升级代理已安装在 VDA 上并且正在运行。如有必要,请尝试重新启动代理。

    注意:如果仍然没有结果,请在重新启动 VDA Upgrade Agent 的同时收集 Citrix 诊断设施跟踪信息并解决问题。

  • 安排 VDA 升级。在开始之前,请注意以下事项:

    • DurationInHours:允许您提供升级过程的持续时间(以小时为单位)。目录中的 VDA 将进入维护模式。将下载 VDA 安装程序并对每个 VDA 执行升级。如果目录包含许多 VDA,请提供更长的持续时间。
    • UpgradeNow:使用此开关可立即安排升级或设置 ScheduledTimeInUtc
    • ScheduledTimeInUtc:允许您在特定的日期和时间安排升级。

    示例:

    • New-VusCatalogSchedule -CatalogName test-catalog -ScheduledTimeInUtc ([System.DateTime]::ParseExact("06/23/2023 04:00 PM", 'MM/dd/yyyy hh:mm tt', $null)) -DurationInHours 4

    可以使用 CatalogNameUidUuid 来安排升级。

    New-VusCatalogSchedule cmdlet 示例

  • 检查升级状态。使用 Get-VusCatalogGet-VusMachine cmdlet 定期检查 VDA 升级状态。使用 MachineUuidMachineUidMachineName 筛选 VDA。

    示例: - Get-VusCatalog -Name test-catalog

    et-VusCatalog - 升级正在进行中

    使用 Get-VusMachine 查看目录中每台计算机的 VDA 升级状态。

    Get-VusMachin - 每台计算机的升级状态

如果 VDA 安装了 Personal vDisk

如果 VDA 上曾安装过 Personal vDisk (PvD) 组件,则无法将该 VDA 升级到 1912 LTSR 或更高版本,直指您删除该组件。

即使您从未使用 PvD,此指导亦适用。下面是 PvD 组件在早期版本中的安装方式:

  • 在 VDA 安装程序的图形界面中,PvD 是其他组件页面上的一个选项。默认情况下,7.15 LTSR 和更早的 7.x 版本启用了此选项。因此,如果您接受默认值(或在任何版本中明确启用了该选项),则安装了 PvD。
  • 在命令行上,/baseimage 选项安装了 PvD。如果指定了此选项,或使用了包含此选项的脚本,则安装了 PvD。

要执行的操作

如果 VDA 安装程序未检测到当前安装的 VDA 中的 PvD 组件,则会像往常一样进行升级。

如果安装程序在当前安装的 VDA 中检测到 PvD 组件:

  • 图形界面: 升级暂停。此时将显示一条消息,询问您是否希望自动删除不受支持的组件。如果单击确定,则会自动删除该组件并继续进行升级。

  • CLI: 如果安装程序检测到 PvD 组件,该命令将失败。为避免命令失败,请在命令中包括以下选项:/remove_pvd_ack

如果要在 Windows 10(1607 及更早版本,无更新)计算机上继续使用 PvD,VDA 7.15 LTSR 为受支持的最新版本。请注意,XenApp 和 XenDesktop 7.15 LTSR 的扩展支持计划不适用于与 Citrix DaaS 一起使用的 VDA。有关详细信息,请参阅 Citrix 支持知识中心中的扩展支持客户指南

早期版本的操作系统

系统要求一文列出了当前版本 VDA 支持的 Windows 操作系统。

  • 对于 LTSR VDA,请参阅 LTSR 版本的系统要求一文。
  • 有关 Linux VDA 的信息,请参阅 Linux Virtual Delivery Agent 文档。

对于操作系统不再支持安装最新 VDA 的 Windows 计算机,您可以选择以下选项。

对于非 WVD 环境:

  • 将计算机重置映像到受支持的 Windows 版本,然后安装新 VDA。
  • 如果无法对计算机重置映像,但您要升级操作系统,请在升级操作系统之前卸载 VDA。否则,VDA 将处于不受支持的状态。升级操作系统后,安装新 VDA。
  • 如果计算机上安装了版本 7.15 LTSR(并且您尝试安装更高版本),则会显示一条消息,告知您使用的是支持的最新版本。
  • 如果计算机上安装的版本早于 7.15 LTSR,则会显示一条消息,指导您参阅 CTX139030 了解相关信息。可以从 Citrix Web 站点下载 7.15 LTSR VDA。
升级 VDAs