XenApp and XenDesktop

显示、消息和故障排除

通过报告监控 PvD

您可以使用诊断工具监控用户对其个人虚拟磁盘 (Personal vDisks) 两个部分(用户数据和应用程序部分)所做的更改。这些更改包括用户已安装的应用程序和已修改的文件。这些更改存储在一组报告中。

  1. On the machine you want to monitor, run C:\Program Files\Citrix\personal vDisk\bin\CtxPvdDiag.exe.
  2. 浏览到要存储报告和日志的位置,选择要生成的报告,然后单击“确定”。可用报告如下所示。

Software hive report: This report generates two files: Software.Dat.Report.txt and Software.Dat.delta.txt.

The Software.Dat.Report.txt file records the changes made by the user to the HKEY_LOCAL_MACHINE\Software hive. It contains the following sections:

  • 基本映像上安装的应用程序列表 — 在第 0 层中安装的应用程序。
  • 用户安装的软件列表 — 用户在个人虚拟磁盘的应用程序部分安装的应用程序。
  • 用户卸载的软件列表 — 用户删除的最初位于第 0 层的应用程序。

有关 Software.Dat.delta.txt 的信息,请参阅配置单元增量报告。

System hive report: The generated SYSTEM.CurrentControlSet.DAT.Report.txt file records changes the user made to the HKEY_LOCAL_MACHINE\System hive. It contains the following sections:

  • 用户安装的服务列表 — 用户安装的服务和驱动程序。
  • 以下服务的启动方式已更改 — 用户修改了启动类型的服务和驱动程序。

安全配置单元报告:生成的 SECURITY.DAT.Report.txt 文件监控用户在 HKEY_LOCAL_MACHINE\Security 配置单元中所做的所有更改。

安全帐户管理器 (SAM) 配置单元报告: 生成的 SAM.DAT.Report.txt 文件监视用户在 HKEY_LOCAL_MACHINE\SAM 配置单元中所做的所有更改。

配置单元增量报告: 生成的 Software.Dat.delta.txt 文件记录了所有添加或删除的注册表项和值,以及用户在 HKEY_LOCAL_MACHINE\Software 配置单元中修改的所有值。

Personal vDisk logs: The log files Pud-IvmSupervisor.log, PvDActivation.log, PvDSvc.log, PvDWMI.log, SysVol-IvmSupervisor.log, and vDeskService-[#].log are generated by default in P:\Users<user account>\AppData\Local\Temp\PVDLOGS, but are moved to the selected location.

Windows 操作系统日志:

  • EvtLog_App.xml and EvtLog_System.xml are the application and system event logs in XML format from the personal vDisk volume.
  • Setupapi.app.log and setuperr.log contain log messages from when msiexec.exe was run during personal vDisk installation.
  • Setupapi.dev.log 包含设备安装日志消息。
  • Msinfo.txt 文件中包含了 msinfo32.exe 的输出内容。如需了解更多信息,请查阅 Microsoft 官方文档。

文件系统报告: 生成的 FileSystemReport.txt 文件记录了用户在以下部分中对文件系统所做的更改:

  • 重新定位的文件 — 用户移动到 vDisk 的第 0 层文件。第 0 层文件是从主映像继承到附加了个人 vDisk 的计算机的。
  • 已删除的文件 — 用户操作(例如,删除应用程序)隐藏的第 0 层文件。
  • 已添加的文件 (MOF,INF,SYS) — 用户添加到个人 vDisk 的具有 .mof、.inf 或 .sys 扩展名的文件(例如,当他们安装了 Visual Studio 2010 等应用程序时,该应用程序会注册一个 .mof 文件以进行自动恢复)。
  • 其他已添加的文件 — 用户添加到 vDisk 的其他文件(例如,在安装应用程序时)。
  • 已修改但未重新定位的基础文件 — 用户修改的第 0 层文件,但个人 vDisk 内核模式驱动程序未在 vDisk 中捕获这些文件。

映像更新

在 Studio 中,当您在计算机目录中选择启用 PvD 的计算机时,“PvD”选项卡会提供映像更新期间的监视状态,以及预计完成时间和进度。映像更新期间可能的状态显示为:就绪、正在准备、等待中、失败和已请求。

映像更新可能因不同原因而失败,包括空间不足或桌面未在足够时间内找到 PvD。当 Studio 指示映像更新失败时,会提供带有描述性文本的错误代码以帮助进行故障排除。使用 Personal vDisk 映像更新监视工具或 personal-vdisk-poolstats.ps1 脚本来监视映像更新进度并获取与故障相关联的错误代码。

如果映像更新失败,以下日志文件可以提供进一步的故障排除信息:

  • PvD service log—C:\ProgramData\Citrix\personal vDisk\Logs\PvDSvc.log.txt
  • PvD activation log i—P:\PVDLOGS\PvDActivation.log.txt

最新的内容位于日志文件的末尾。

错误消息:7.6 及更高版本

以下错误适用于 PvD 版本 7.6 及更高版本:

  • 发生内部错误。请查看 Personal vDisk 日志以了解更多详细信息。错误代码 %d (%s)

    这是未分类错误的通用捕获,因此它没有数值。在清单创建或 Personal vDisk 更新期间遇到的所有意外错误都由此错误代码指示。

    • 收集日志并联系 Citrix® 支持。
    • 如果在目录更新期间发生此错误,请将目录回滚到主映像的先前版本。
  • 规则文件中存在语法错误。请查看日志以了解更多详细信息。

    错误代码 2。规则文件包含语法错误。Personal vDisk 日志文件包含规则文件的名称以及找到语法错误的行号。修复规则文件中的语法错误并重试操作。

  • 存储在 Personal vDisk 中对应于主映像先前版本的清单已损坏或无法读取。

    错误代码 3。上次清单存储在 \ProgramData\CitrixPvD\Settings\Inventory\VER-LAST\UserData.V2.vhd 中。通过从与主映像的先前版本关联的已知正常运行的 PvD 计算机导入“VER-LAST”文件夹,恢复与主映像的最新版本对应的清单。

  • Personal vDisk 中存储的与主映像的先前版本对应的清单版本更高。

    错误代码 4。这是由于上次主映像与当前主映像之间的 personal vDisk 版本不兼容造成的。在主映像中安装最新版本的 personal vDisk 后,请重试更新目录。

  • 检测到更改日志溢出。

    错误代码 5。在创建清单时,对主映像进行了大量更改,导致 USN 日志溢出。如果多次尝试后此问题仍然存在,请使用 procmon 确定第三方软件是否在创建清单期间创建/删除了大量文件。

  • Personal vDisk 找不到连接到系统用于存储用户数据的磁盘。

    错误代码 6。首先,通过管理程序控制台验证 PvD 磁盘是否已连接到 VM。此错误通常是由于“数据泄漏防护”软件阻止访问 PvD 磁盘而发生的。如果 PvD 磁盘已连接到 VM,请尝试在“数据泄漏防护”软件配置中为“已连接磁盘”添加例外。

  • 系统在安装后尚未重新启动。请重新启动以实施更改。

    错误代码 7。重新启动桌面并重试该操作。

  • 安装已损坏。请尝试重新安装 Personal vDisk。

    错误代码 8。安装 personal vDisk 并重试。

  • Personal vDisk 清单不是最新版本。请更新主映像中的清单,然后重试。

    错误代码 9。在关闭桌面之前,主映像中的 personal vDisk 清单未更新。重新启动主映像并通过“更新 personal vDisk”选项关闭桌面,然后创建新的快照;使用该快照更新目录。

  • 启动 Personal vDisk 时发生内部错误。请查看 Personal vDisk 日志以了解更多详细信息。

    错误代码 10。这可能是由于 PvD 驱动程序因内部错误或 personal vDisk 损坏而无法启动虚拟化会话造成的。尝试通过 Controller 重新启动桌面。如果问题仍然存在,请收集日志并联系 Citrix 支持。

  • Personal vDisk 在尝试查找用于用户个性化设置的存储磁盘时超时。

    错误代码 11。此错误发生在 PvD 驱动程序未能在重启后 30 秒内找到 PvD 磁盘时。这通常是由不支持的 SCSI 控制器类型或存储延迟引起的。如果目录中的所有桌面都出现此问题,请将与“模板 VM”/“主 VM”关联的 SCSI 控制器类型更改为 Personal vDisk 技术支持的类型。如果目录中只有部分桌面出现此问题,则可能是由于大量桌面同时启动导致存储延迟峰值。尝试限制与主机连接关联的最大活动电源操作设置。

  • Personal vDisk 已停用,因为检测到不安全的系统关机。请重启计算机。

    错误代码 12。这可能是由于桌面在启用 PvD 的情况下未能完成启动过程。尝试重启桌面。如果问题仍然存在,请通过管理程序控制台观察桌面启动并检查桌面是否崩溃。如果桌面在启动期间崩溃,请从备份中恢复 PvD(如果您有备份)或重置 PvD。

  • 为装载 Personal vDisk 指定的驱动器号不可用。

    错误代码 13。这可能是由于 PvD 未能将 PvD 磁盘装载到管理员指定的装载点。如果驱动器号已被其他硬件使用,PvD 磁盘将无法装载。为 Personal vDisk 选择一个不同的字母作为装载点。

  • Personal vDisk 内核模式驱动程序安装失败。

    错误代码 14。Personal vDisk 在安装后的首次清单更新期间安装驱动程序。某些防病毒产品会在安装程序上下文之外尝试安装驱动程序时阻止其安装。在首次创建清单时,暂时禁用防病毒实时扫描或在防病毒软件中为 PvD 驱动程序添加例外。

  • 无法创建系统卷的快照。请确保已启用卷影复制服务。

    错误代码 15。这可能是因为卷影复制服务已禁用。启用卷影复制服务并重试创建清单。

  • 更改日志激活失败。请等待几分钟后重试。

    错误代码 16。Personal vDisk 使用更改日志来跟踪对主映像所做的更改。在清单更新期间,如果 PvD 检测到更改日志已禁用,它会尝试启用它;如果该尝试失败,则会发生此错误。等待几分钟后重试。

  • 系统卷中没有足够的可用空间。

    错误代码 17。桌面 C 盘上没有足够的可用空间用于映像更新操作。扩展系统卷或删除未使用的文件以释放系统卷中的空间。映像更新应在下次重启后再次开始。

  • Personal vDisk 存储中没有足够的可用空间。请扩展 Personal vDisk 存储以提供更多空间。

    错误代码 18。执行映像更新操作时,个人 vDisk 驱动器上没有足够的可用空间。扩展个人 vDisk 存储或删除未使用的文件以释放个人 vDisk 存储中的空间。映像更新应在下次重新启动后重新开始。

  • 个人 vDisk 存储已过度分配。扩展个人 vDisk 存储以提供更多空间。

    错误代码 19。个人 vDisk 驱动器上没有足够的可用空间来完全容纳厚置备的“UserData.V2.vhd”。扩展个人 vDisk 存储或删除未使用的文件以释放个人 vDisk 存储中的空间。

  • 系统注册表已损坏。

    错误代码 20。系统注册表已损坏、丢失或不可读。重置个人 vDisk 或从较早的备份中恢复它。

  • 重置个人 vDisk 时发生内部错误。请检查个人 vDisk 日志以获取更多详细信息。

    错误代码 21。这是个人 vDisk 重置期间遇到的所有错误的通用代码。收集日志并联系 Citrix 支持。

  • 由于个人 vDisk 存储中没有足够的可用空间,无法重置个人 vDisk。

    错误代码 22。执行重置操作时,个人 vDisk 驱动器上没有足够的可用空间。扩展个人 vDisk 存储或删除未使用的文件以释放个人 vDisk 存储中的空间。

错误消息:早于 7.6 版本

以下错误适用于早于 7.6 版本的 PvD 7.x:

  • 启动失败。个人 vDisk 无法找到用于用户个性化设置的存储磁盘。

    PvD 软件找不到个人 vDisk(默认为 P: 驱动器),或者无法将其作为管理员创建目录时选择的挂载点进行挂载。

    • 检查 PvD 服务日志中是否存在以下条目:“PvD 1 status –> 18:183”。
    • 如果您使用的是早于 5.6.12 版本的 PvD,升级到最新版本可解决此问题。
    • 如果您使用的是 5.6.12 或更高版本,请使用磁盘管理工具 (diskmgmt.msc) 确定 P: 驱动器是否存在为未装载的卷。如果存在,请在该卷上运行 chkdsk 以确定其是否损坏,并尝试使用 chkdsk 恢复它。
  • 启动失败。Citrix Personal vDisk 启动失败。如需进一步帮助…。状态代码: 7, 错误代码: 0x70

    状态代码 7 表示在尝试更新 PvD 时遇到错误。错误可能是以下情况之一:

    错误代码 错误描述
    0x20000001 未能保存差异包,很可能是由于 VHD 内可用磁盘空间不足。
    0x20000004 未能获取更新 PvD 所需的权限。
    0x20000006 未能从 PvD 映像或从 PvD 清单加载配置单元,很可能是由于 PvD 映像或清单损坏。
    0x20000007 未能加载文件系统清单,很可能是由于 PvD 映像或清单损坏。
    0x20000009 未能打开包含文件系统清单的文件,很可能是由于 PvD 映像或清单损坏。
    0x2000000B 未能保存差异包,很可能是因为 VHD 中缺少可用磁盘空间。
    0x20000010 未能加载差异包。
    0x20000011 缺少规则文件。
    0x20000021 PvD 清单已损坏。
    0x20000027 名为“MojoControl.dat”的目录文件已损坏。
    0x2000002B PvD 清单已损坏或缺失。
    0x2000002F 未能注册映像更新上用户安装的 MOF,请升级到 5.6.12 以解决此问题。
    0x20000032 检查 PvDactivation.log.txt 中带有 Win32 错误代码的最后一条日志条目。
    0x20 无法为映像更新装载应用程序容器,请升级到 5.6.12 以解决此问题。
    0x70 磁盘上没有足够的空间。
  • 启动失败。Citrix Personal vDisk 未能启动 [or Personal vDisk encountered an internal error]。如需进一步帮助…状态代码:20,错误代码 0x20000028

    找到了个人 vDisk,但无法创建 PvD 会话。

    收集日志并检查 SysVol-IvmSupervisor.log 中是否存在会话创建失败:

    1. 请检查以下日志条目,其中包含“IvmpNativeSessionCreate: 创建原生会话失败,状态 XXXXX”字样。
    2. 如果状态为 0xc00002cf,请通过向目录添加新版本主映像来解决此问题。此状态代码表示在清单更新后,由于大量更改导致 USN 日志溢出。
    3. 重新启动受影响的虚拟桌面。如果问题仍然存在,请联系 Citrix 技术支持。
  • 启动失败。Citrix Personal vDisk 已停用,因为检测到不安全的系统关机。要重试,请选择“重试”。如果问题仍然存在,请联系您的系统管理员。

    启用了 PvD 的池化 VM 无法完成启动。首先确定启动无法完成的原因。可能的原因是出现蓝屏,因为:

    • 主映像中存在不兼容的防病毒产品,例如旧版本的 Trend Micro。
    • 用户安装了与 PvD 不兼容的软件。这不太可能,但您可以通过向目录添加新计算机并查看其是否成功重新启动来检查。
    • PvD 映像已损坏。在版本 5.6.5 中观察到此情况。

    要检查池化 VM 是否显示蓝屏或过早重新启动:

    • 通过管理程序控制台登录到计算机。
    • 单击“重试”并等待计算机关闭。
    • 通过 Studio 启动计算机。
    • 使用管理程序控制台观察计算机启动时的控制台。

    其他故障排除:

    • 从显示蓝屏的计算机收集内存转储,并将其发送给 Citrix 技术支持以进行进一步分析。
    • 检查与 PvD 相关的事件日志中的错误:
      1. 通过单击“操作”>“附加 VHD”,使用 DiskMgmt.msc 从 P: 驱动器根目录装载 UserData.V2.vhd。
      2. Launch Eventvwr.msc.
      3. 打开位于 UserData.V2.vhd 中的系统事件日志(文件路径:Windows\System32\winevt\logs\system.evtx),方法是单击“操作”>“打开保存的日志”。
      4. Open the application event log (Windows\System32\winevt\logs\application.evtx) from UserData.V2.vhd by clicking Action > Open saved logs.
  • Personal vDisk 无法启动。Personal vDisk 无法启动,因为清单尚未更新。请更新主映像中的清单,然后重试。状态代码: 15,错误代码: 0x0

    管理员在创建或更新 PvD 目录时选择了不正确的快照(即,在创建快照时未使用“更新 Personal vDisk”关闭主映像)。

个人虚拟磁盘记录的事件

如果未启用 Personal vDisk,您可以在 Windows 事件查看器中查看以下事件。在左侧窗格中选择“应用程序”节点;右侧窗格中事件的来源是 Citrix Personal vDisk。如果启用了 Personal vDisk,则不会显示这些事件。

事件 ID 为 1 表示信息消息,ID 为 2 表示错误。并非所有事件都可能在每个版本的 Personal vDisk 中使用。

事件 ID 事件描述
1 Personal vDisk 状态:更新清单已启动。
1 个人 vDisk 状态:更新清单已完成。GUID:%s。
1 Personal vDisk 状态:映像更新已启动。
1 Personal vDisk 状态:映像更新已完成。
1 正在重置。
1 正常。
2 Personal vDisk 状态: 更新清单失败,错误信息: %s。
2 Personal vDisk 状态: 映像更新失败,错误信息: %s。
2 Personal vDisk 状态: 映像更新失败,内部错误。
2 Personal vDisk 状态: 更新清单失败,内部错误。
2 由于不当关机,Personal vDisk 已被禁用。
2 映像更新失败。错误代码 %d。
2 Personal vDisk 遇到内部错误。状态码[%d] 错误码[0x%X]。
2 个人 vDisk 重置失败。
2 找不到用于存储用户个性化设置的磁盘。
2 存储磁盘上没有足够的可用空间来创建 Personal vDisk 容器。

与版本无关的已知问题

已识别出以下 PvD 问题:

  • 当安装在个人 vDisk (PvD) 上的应用程序与安装在主映像上的同版本应用程序相关时,PvD 上的应用程序在映像更新后可能会停止工作。如果从主映像卸载该应用程序或将其升级到更高版本,则会发生这种情况,因为该操作会从主映像中删除 PvD 上应用程序所需的文件。为防止这种情况,请将 PvD 上应用程序所需的文件所在的应用程序保留在主映像上。

    例如,主映像包含 Office 2007,用户在 PvD 上安装 Visio 2007;Office 应用程序和 Visio 正常工作。之后,管理员在主映像上用 Office 2010 替换 Office 2007,然后使用更新后的映像更新所有受影响的计算机。Visio 2007 不再工作。为避免这种情况,请将 Office 2007 保留在主映像中。[320915]

  • 部署 McAfee Virus Scan Enterprise (VSE) 时,如果您使用个人虚拟磁盘,请在主映像上使用 8.8 补丁 4 或更高版本。[303472]
  • 如果指向主映像中文件的快捷方式停止工作(因为快捷方式目标在 PvD 中被重命名),请重新创建该快捷方式。[367602]
  • 请勿在主映像中使用绝对/硬链接。[368678]
  • Windows 7 备份和还原功能在个人 vDisk 上不受支持。[360582]
  • 应用更新后的主映像后,本地用户和组控制台变得不可访问或显示不一致的数据。要解决此问题,请重置 VM 上的用户帐户,这需要重置安全配置单元。此问题已在 7.1.2 版本中修复(并且适用于在更高版本中创建的 VM),但此修复不适用于使用早期版本创建然后升级的 VM。[488044]
  • 在 ESX 虚拟机管理程序环境中使用池化 VM 时,如果所选的 SCSI 控制器类型为“VMware Paravirtual”,用户会看到重新启动提示。作为一种解决方法,请使用 LSI SCSI 控制器类型。[394039]
  • 通过 Provisioning Services 创建的桌面执行 PvD 重置后,用户在登录到 VM 后可能会收到重新启动提示。作为一种解决方法,请重新启动桌面。[340186]
  • Windows 8.1 桌面用户可能无法登录其 PvD。管理员可能会看到消息“PvD 因不安全关机而被禁用”,并且 PvDActivation 日志可能包含消息“未能加载注册表配置单元 [\Device\IvmVhdDisk00000001\CitrixPvD\Settings\RingCube.dat]。”当用户的 VM 不安全关机时,会发生此情况。作为一种解决方法,请重置个人 vDisk。[474071]
显示、消息和故障排除