Product Documentation

已知问题

May 12, 2016

以下警告适用于任何建议更改注册表项的解决方法。

警告:注册表编辑不当会导致严重问题,可能需要重新安装操作系统。 Citrix 无法保证因“注册表编辑器”使用不当导致出现的问题能够得以解决。 使用“注册表编辑器”需自担风险。 在编辑注册表之前,请务必进行备份。 

XenApp 和 XenDesktop

XenApp 7.8 和 XenDesktop 7.8 版包含以下问题:

  • 使用鼠标滚轮滚动时,在 Framehawk 会话内单击可能会导致意外结果。 当前解决方法是换一个鼠标。 [#618657]
  • AppDisk 封装过程会过度占用时间和 CPU 使用率,因为驱动程序读取每个文件的元数据,这会导致病毒检查程序检查磁盘上的每个比特。 要避免此问题,请在启动密封进程前,将 CtxPvD.exe 和 CtxPvDSvc.exe 添加到防病毒程序的排除列表。 这些文件位于 c:\Program Files\Citrix\personal vDisk\bin 中。 不建议禁用您的防病毒程序。 [#602819]
  • 无法使用 FirefoxChrome 的 NPAPI 界面启用本地应用程序访问和 URL 重定向浏览器插件,如相关软件支持文章所述。 这是一个已知问题,建议客户使用 Internet Explorer 来解决。 [#620101]
  • 如果在启用了 Aero 但未启用图形硬件加速 (GPU))的 Windows 7 上使用 VDA for Windows Desktop OS 连接到高分辨率监视器(例如 4096 x 2160),则可能发生屏幕损坏。 要解决此问题,可将桌面主题更改为无 Aero 主题或降低分辨率。 [#618121]
  • 如果注册了拨打住宅电话功能,而 Controller、StoreFront 和 VDA 安装在同一台服务器上,则卸载其中任一组件可能也会从该服务器中删除拨打住宅电话组件。 解决方法:重新注册拨打住宅电话功能。  [#616142]
  • 在从版本 7.5 升级后,或者如果已从版本 7.5 升级,则在从版本 7.6 升级后,Studio 或 高级别 SDK 可能无法启动,因为 FMAUtils.dll 文件无法安装。 如果站点升级失败,则会显示消息:“Could not load file or assembly 'FMAUtils, Version ... The system cannot find the file specified.”(无法加载文件或程序集 FMAUtils, 版本 ... 系统找不到指定文件。)解决方法:完成 Studio MSI  ([XDInstallerRoot]\x64\DesktopStudio\DesktopStudio_x64.msi) 或高级别 SDK MSI ([XDInstallerRoot]\x64\Citrix Desktop Delivery Controller\XDPoshSnapin.msi) 的修复安装。 [#617897]
  • 通过 App-V 发布时,名称包含下划线 (_) 的应用程序可能无法启动。  [#618488]
  • 在站点创建期间,如果将许可证导入本地计算机,这些许可证可能无法显示(如果已将这些许可证导入外部计算机,则不会发生此问题)。 如果发生这种情况,请完成站点创建过程。 在 Studio 中,检查“配置”>“许可”以确保已正确设置产品版本(默认为 Platinum)。 导入的许可证将在大约五分钟后显示出来。  [#618538]
  • 如果在从站点删除 Controller 后尝试将计算机目录移动到其他区域,则操作可能失败。 解决方法:使用 Set-BrokerHypervisorConnection -PreferredController cmdlet 并指定空值以自动选择首选 Controller (Get-BrokerHypervisorConnection -PreferredController $null | Set-BrokerHypervisorConnection -PreferredController $null),或者指定一个特定的 Controller。  [#619345]
  • 如果在先前版本中为应用程序创建了标记,则在升级到此版本后,将 Studio 将无法显示这些标记。 (这些标记起初是存储在应用程序元数据中的,而不是存储为标记对象的。)但是,如果您的脚本使用这些标记,这些标记在该脚本中仍然有效。 [#620041]
  • 如果 XenDesktop 站点处于租用连接模式,则在重新启动置备的资源后,用户无法与这些资源建立会话,除非该站点退出租用连接模式(即 Controller 可以再次访问站点数据库)。 [#621521]
  • 在因站点数据库不可用而进入租用连接模式后,如果站点恢复正常运行,Studio 可能仍会将 VM 显示为“未知”状态,而将主机连接显示为“不可用”状态。 解决方法:对受影响的连接启用维护模式,等待大约 30 秒,然后关闭维护模式。 这样就可以还原正确的状态显示以及可用的电源操作。 [#620941]
  • 此问题仅影响 VMware 虚拟机管理程序上的计算机。 在从已连接 AppDisk 的交付组中删除计算机时,从虚拟机管理程序删除最后一个计算机后,可能会从虚拟机管理程序存储中删除 AppDisk。 只有在删除此计算机时 AppDisk 始终连接到此计算机的情况下,才会发生此问题。 要避免此问题,请从 Studio 中完成以下任务,以确保 AppDisk 未连接到最后要删除的计算机。 
  1. 从计算机目录中删除除最后一台计算机之外的所有计算机(如果正在使用 Provisioning Services,则随后手动删除相应的 VM)。
  2. 启动最后一台计算机。 (请务必从 Studio 执行此操作,而不是从虚拟机管理程序执行此操作。)
  3. 关闭最后一台计算机。
  4. 删除最后一台计算机(如果正在使用 Provisioning Services,则随后手动删除相应的 VM)。

[#621002]

Windows Server 2016 技术预览版

您可以在 Windows Server 2016 技术预览版论坛中查看在将此 XenApp 和 XenDesktop 版本与 Windows Server 2016 技术预览版结合使用时发现的一系列问题。

其他组件

单独在 XenApp 和 XenDesktop 下载页面上提供的组件具有以下已知问题。

Session Recording

  • 安装 Session Recording Server 组件失败,并显示错误代码 2503 和 2502。 解决方案:检查文件夹 C:\windows\Temp 的访问控制列表 (ACL),以确保本地用户组 > 组 > 用户具有对该文件夹的写入权限。 否则,请手动添加写入权限。 [#611487]
  • 由于 Session Recording 不支持 Framehawk 显示模式,无法正确录制和播放 Framehawk 显示模式下的会话。 在此模式下录制的会话可能不包含会话活动。 [#622085]
  • 如果 XenDesktop 站点策略启用了旧图形模式,并且 Citrix Receiver for Windows 策略启用了基于磁盘的缓存,则无法正确录制 Windows 7 桌面会话。 这些录制件将显示黑屏。 解决方法:通过向安装 Citrix Receiver for Windows 的计算机部署 GPO,禁用基于磁盘的缓存。 有关禁用基于磁盘的缓存的详细信息,请参阅 http://support.citrix.com/article/CTX123169http://docs.citrix.com/zh-cn/receiver/windows/4-4/ica-overview-receiver-config/ica-import-icaclient-template-v2.html。 [#618237]
  • 滚动设置不适用于 XenDesktop 7.8 和 Session Recording Agent 的 VDI 桌面会话。 在这些情况下,每个录制文件的最大大小都会限制为 1 GB,超过此限制后,就不会再录制活动。  [#584890]
  • 如果 Machine Creation Services (MCS) 或 Provisioning Services 使用已配置的主映像和已安装的 Microsoft 消息队列 (MSMQ) 创建了多个 VDA,则这些 VDA 具有相同的 QMId。 这样可能会导致各种问题,例如:
    • 即使接受了录制协议,也可能无法录制会话。
    • Session Recording Server 可能收不到会话注销信号,从而导致会话始终处于活动状态。 [#528678]

根据部署方法,为每个 VDA 创建唯一的永久性 QMId 的解决方法各不相同。

如果安装了 Session Recording Agent 的桌面操作系统 VDA 是在静态桌面模式下使用 PVS 7.7 或更高版本创建的,则无需执行任何额外操作;例如,经过配置后,VDA 中单独的个人虚拟磁盘或本地磁盘上的所有更改都是永久性的。

对于在静态桌面模式下由 MCS 或 PVS 创建的服务器操作系统 VDA 或由 MCS 创建的专用桌面操作系统 VDA,如果经过配置后,VDA 中单独的个人虚拟磁盘或本地磁盘上的所有更改都是永久性的,请使用脚本 (GenQMID.ps1) 在系统启动时修改 QMId。

如果由 MCS 或 PVS 创建的桌面操作系统 VDA 经过配置后会在用户注销时放弃所有更改,请使用另一个脚本 (GenRandomQMID.ps1) 在系统启动时修改 QMId。 请修改电源管理策略,以确保在用户尝试登录之前正在运行足够的 VDA。

要使用脚本,请执行以下操作:

 1. 确保在 PowerShell 中将执行策略设置为“RemoteSigned”或“Unrestricted”。

Set-ExecutionPolicy RemoteSigned

2. 创建计划任务并将触发器设置为“在系统启动时”,然后在 Provisioning Services 或 MCS 主映像计算机上使用 SYSTEM 帐户运行。

3. 将此命令添加为启动任务。

powershell.exe -file C:\GenQMID.ps1

powershell .exe -file C:\GenRandomQMID.ps1

GenQMID.ps1 摘要

  1. 生成基于计算机 UUID 哈希值的 QMId。
  2. 停止相关访问,包括 CitrixSmAudAgent 和 MSMQ。
  3. 启动先前停止的服务以应用 QMId 更改。
GENQMID.PS1(供参考): 复制

function ConvertHexStringToByte($theString)

{
    $bytes = New-Object Byte[] ($theString.Length / 2)

    for ($i = 0; $i -lt $theString.Length; $i += 2) {

        $bytes[$i / 2] = [System.Convert]::ToByte($theString.Substring($i, 2), 16)
    }

    return $bytes
}

Try {

    # Get UUID of machine

    $strUUID = (Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -Property UUID).UUID

    # Remove "-"

    $strUUID = $strUUID.ToString().Replace("-", "")

    # Convert string to bytes

    $UUID = ConvertHexStringToByte($strUUID)

    # Set UUID as QMId

    $new_QMID = $UUID

}
Catch {

    # IF exception occurred, just use MD5 digest of FQDN as QMID

    # Get FQDN

    $fqdn = [System.Net.Dns]::GetHostByName(($env:computerName)).HostName

    # Calculate MD5 hash of FQDN

    $md5 = new-object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider

    # Set md5 digest as QMID

    $utf8 = new-object -TypeName System.Text.UTF8Encoding

    $new_QMID = $md5.ComputeHash($utf8.GetBytes($fqdn))
}

# Write new_QMID into registry

Set-ItemProperty -Path HKLM:Software\Microsoft\MSMQ\Parameters\MachineCache -Name "QMId" -Value $new_QMID

# Restart MSMQ to adopt new QMId

# Get dependent services

$depServices = Get-Service -name MSMQ -dependentservices | Select -Property Name

Restart-Service -force MSMQ

# Start dependent services

if ($depServices -ne $null) {

    foreach ($depService in $depServices) {

        $startMode = Get-WmiObject win32_service -filter "NAME = '$($depService.Name)'" | Select -Property StartMode

        if ($startMode.StartMode -eq "Auto") {

            Start-Service $depService.Name
        }
    }
}

GenRandomQMID.ps1 摘要:

  1. 从注册表中删除当前的 QMId。
  2. 在 HKLM\Software\Microsoft\MSMQ\Parameters 中添加 SysPrep = 1。
  3. 停止相关访问,包括 CitrixSmAudAgent 和 MSMQ。
  4. 启动先前停止的服务以生成随机 QMId。
GENRANDOMQMID.PS1(供参考) 复制

# Remove old QMId from registry and set SysPrep flag for MSMQ

Remove-Itemproperty -Path HKLM:Software\Microsoft\MSMQ\Parameters\MachineCache -Name QMId -Force

Set-ItemProperty -Path HKLM:Software\Microsoft\MSMQ\Parameters -Name "SysPrep" -Type DWord -Value 1

# Get dependent services

$depServices = Get-Service -name MSMQ -dependentservices | Select -Property Name

# Restart MSMQ to get a new QMId

Restart-Service -force MSMQ

# Start dependent services

if ($depServices -ne $null) {

    foreach ($depService in $depServices) {

        $startMode = Get-WmiObject win32_service -filter "NAME = '$($depService.Name)'" | Select -Property StartMode

        if ($startMode.StartMode -eq "Auto") {

            Start-Service $depService.Name

        }
}

}

  • 使用高于或等于 4096 x 4096 的分辨率录制会话时,录制件中可能会出现片段。 [#524973]
  • 更改 XenApp 或 XenDesktop 许可证类型时,所做的更改不会在 Session Recording 中立即生效。 解决方法:重新启动 VDA 计算机。 [#532393]
  • Session Recording 在支持预启动的应用程序会话方面的限制 [#561109]
    • 问题:
      • 如果活动策略尝试匹配应用程序名称,则不会匹配在预启动会话中启动的应用程序,从而导致不进行会话录制。
      • 如果活动策略录制每个应用程序,当用户登录 Windows Receiver(同时建立预启动会话)时,将显示关于录制的通知,并且录制空会话以及之后在此会话中启动的所有应用程序。
    • 解决方法:
      • 根据其录制策略,在单独的交付组中发布应用程序。 请勿将应用程序名称用作录制条件。 这样可确保录制预启动会话。 但是,仍显示通知。