XenApp and XenDesktop

显示、消息和故障排除

通过报告监视 PvD

可以使用诊断工具监视用户对其个人虚拟磁盘的用户数据部分和应用程序部分进行的更改。这些更改包括用户已安装的应用程序和他们修改的文件。更改存储在一组报告中。

  1. 在要监视的计算机上,运行 C:\Program Files\Citrix\personal vDisk\bin\CtxPvdDiag.exe
  2. 浏览到要存储报告和日志的位置,选择要生成的报告,然后单击确定。下面列出了可用的报告。

软件配置单元报告: 此报告生成两个文件:Software.Dat.Report.txt 和 Software.Dat.delta.txt。

oftware.Dat.Report.txt 文件记录用户对 HKEY_LOCAL_MACHINE\Software 配置单元所做的更改。它包括以下部分:

  • 在基础上安装的应用程序的列表 - 第 0 层安装的应用程序。
  • 用户已安装软件的列表 - 用户在个人虚拟磁盘的应用程序部分安装的应用程序。
  • 用户卸载的软件的列表 - 用户删除的之前位于第 0 层的应用程序。

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

系统配置单元报告: 生成的 SYSTEM.CurrentControlSet.DAT.Report.txt 文件记录用户对 HKEY_LOCAL_MACHINE\System 配置单元所做的更改。它包括以下部分:

  • 用户安装的服务的列表 - 用户安装的服务和驱动程序。
  • 更改了以下服务的启动 - 用户更改了其启动类型的服务和驱动程序。

安全配置单元报告: 生成的 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 配置单元中修改的所有值。

个人虚拟磁盘日志: 默认情况下,在 *P:\Users\<用户帐户>\AppData\Local\Temp\PVDLOGS* 中生成日志文件 Pud-IvmSupervisor.log、PvDActivation.log、PvDSvc.log、PvDWMI.log、SysVol-IvmSupervisor.log 和 vDeskService-[#].log,但是这些文件会被移到选定的位置。用户帐户>

Windows 操作系统日志:

  • EvtLog_App.xml 和 EvtLog_System.xml 是来自个人虚拟磁盘卷的 XML 格式的应用程序和系统事件日志。
  • Setupapi.app.log 和 setuperr.log 包含 Personal vDisk 安装期间自 msiexec.exe 开始运行起生成的日志消息。
  • Setupapi.dev.log 包含设备安装日志消息。
  • Msinfo.txt 包含 msinfo32.exe 的输出。有关信息,请参阅 Microsoft 文档。

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

  • 重新定位的文件 - 用户由第 0 层移至虚拟磁盘中的文件。第 0 层文件是由个人虚拟磁盘连接的计算机从主映像继承的文件。
  • 删除的文件 - 通过用户的操作(例如,删除应用程序)隐藏的第 0 层文件。
  • 添加的文件(MOF、INF、SYS)- 用户添加到个人虚拟磁盘且扩展名为 .mof、.inf 或 .sys 的文件(例如,当用户安装 Visual Studio 2010 等注册 .mof 文件以供自动恢复的应用程序时)。
  • 添加的其他文件 - 用户添加到虚拟磁盘的其他文件(例如,当用户安装应用程序时)。
  • 修改但未重新定位的基础文件 - 用户已修改但个人虚拟磁盘内核模式驱动程序未在虚拟磁盘中捕获到的第 0 层文件。

映像更新

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

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

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

  • PvD 服务日志 - C:\ProgramData\Citrix\personal vDisk\Logs\PvDSvc.log.txt
  • PvD 激活日志 - P:\PVDLOGS\PvDActivation.log.txt

最近的内容显示在日志文件结尾。

错误消息:7.6 及更高版本

以下错误消息对 PvD 7.6 及更高版本有效:

  • 发生了内部错误。请查看个人虚拟磁盘日志,进一步了解详细信息。错误代码 %d (%s)

    此错误是对未分类错误的概括,因此没有数字值。在清单创建或 Personal vDisk 更新过程中遇到的所有异常错误均通过此错误代码指出。

    • 请收集日志并联系 Citrix 技术支持。
    • 如果此错误出现在目录更新过程中,请将目录回滚到之前的主映像版本。
  • 规则文件中存在语法错误。请查看日志,进一步了解详细信息。

    错误代码 2。规则文件包含语法错误。Personal vDisk 日志文件包含规则文件的名称和发现语法错误的行号。请修复规则文件中的语法错误,然后重试操作。

  • 个人虚拟磁盘中存储的与早期版本的主映像对应的清单已损坏或无法访问。

    错误代码 3。最近的清单存储在 \ProgramData\CitrixPvD\Settings\Inventory\VER-LAST\UserData.V2.vhd 中。请通过从与早期主映像版本关联的已知可用的 PvD 计算机导入“VER-LAST”文件夹,还原与最近的主映像版本对应的清单。

  • 个人虚拟磁盘中存储的与早期主映像版本对应的清单版本较高。

    错误代码 4。此错误是由于个人虚拟磁盘版本在最近的主映像与当前主映像之间不兼容所致。请在主映像中安装最新个人虚拟磁盘版本后重新尝试更新目录。

  • 检测到变更日志工作流。

    错误代码 5。USN 日志溢出是由于在创建清单过程中对主映像进行了大量更改所致。如果在多次尝试后仍出现此情况,请使用 procmon 来确定是否存在第三方软件在清单创建过程中创建/删除大量文件的情况。

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

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

  • 系统在安装后尚未重新启动。请重新启动以使更改生效。

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

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

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

  • 个人虚拟磁盘清单不是最新的。请更新主映像中的清单,然后重试。

    错误代码 9。关闭桌面前,个人虚拟磁盘清单在主映像中未更新。请重新启动主映像,并通过“更新 Personal vDisk”选项关闭桌面,然后创建新快照,并使用此快照更新目录。

  • 启动个人虚拟磁盘时遇到内部错误。请查看个人虚拟磁盘日志,进一步了解详细信息。

    错误代码 10。出现此问题是由于内部错误或个人虚拟磁盘损坏导致 PvD 驱动程序无法启动虚拟化会话所致。请尝试通过 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 内核模式驱动程序。

    错误代码 14。Personal vDisk 在安装后首次更新清单时安装驱动程序。如果从安装上下文以外尝试安装,有些防病毒产品会阻止驱动程序的安装。请在首次创建清单期间,临时禁止防病毒实时扫描,或在防病毒产品中将 PvD 驱动程序添加为例外。

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

    错误代码 15。出现此错误可能是因为禁用了卷影复制服务。请启用卷影复制服务并尝试重新创建清单。

  • 变更日志无法激活。Try again after waiting for few minutes.(无法激活更改日志。请一段时间后重试。)

    错误代码 16。Personal vDisk 使用更改日志来跟踪对主映像所做的更改。在清单更新期间,如果 PvD 检测到更改日志被禁用,PvD 会尝试将其启用;此尝试失败时会出现此错误。请稍等一段时间,然后重试。

  • 系统卷上的可用空间不足。

    错误代码 17。桌面的 C 驱动器上没有足够的可用空间来进行映像更新操作。请扩展系统卷,或删除系统卷中不再使用的文件以释放空间。映像更新应该会在下一次重新启动时重新开始。

  • 个人虚拟磁盘存储上的可用空间不足。请扩展个人虚拟磁盘存储以提供更多空间。

    错误代码 18。执行映像更新操作时,个人虚拟磁盘驱动器上的可用空间不足。请扩展个人虚拟磁盘存储或删除个人虚拟磁盘存储中不再使用的文件以释放空间。映像更新操作应该会在下次重新启动时重新开始。

  • 个人虚拟磁盘存储已超负荷。请扩展个人虚拟磁盘存储以提供更多空间。

    错误代码 19。个人虚拟磁盘驱动器上的可用空间不足,无法完全容纳密集预配的“UserData.V2.vhd”。请扩展个人虚拟磁盘存储或删除个人虚拟磁盘存储中不再使用的文件以释放空间。

  • 系统注册表已损坏。

    错误代码 20。系统注册表损坏、缺失或不可读。重置个人虚拟磁盘或通过之前的备份还原。

  • 重置个人虚拟磁盘时遇到内部错误。请查看 Personal vDisk 日志,进一步了解详细信息。

    错误代码 21。这是对在个人虚拟磁盘重置期间遇到的所有错误的概括。请收集日志并联系 Citrix 技术支持。

  • 由于个人虚拟磁盘存储中的可用空间不足,无法重置 Personal vDisk。

    错误代码 22。执行重置操作时,个人虚拟磁盘驱动器上的可用空间不足。请扩展个人虚拟磁盘存储或删除个人虚拟磁盘存储中不再使用的文件以释放空间。

错误消息:7.6 之前的版本

以下错误消息对 7.6 之前的 PvD 7.x 版本有效:

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

    PvD 软件找不到个人虚拟磁盘(默认为驱动器 P:)或无法装载个人虚拟磁盘作为管理员在创建目录时选择的装载点。

    • 检查 PvD 服务日志中是否存在以下条目:PvD 1 status –> 18:183(PvD 1 状态 –> 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 无法启动[或 Personal vDisk 遇到内部错误]。如需更多帮助 …. 状态代码: 20,错误代码 0x20000028

    找到了个人虚拟磁盘,但无法创建 PvD 会话。

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

    1. 检查是否存在以下日志条目:IvmpNativeSessionCreate: failed to create native session, status XXXXX(IvmpNativeSessionCreate: 无法创建本机会话,状态为 XXXXX)。
    2. 如果状态为 0xc00002cf,请通过将新版本的主映像添加到目录来修复此问题。此状态代码表示由于在更新清单后执行了大量更改,导致 USN 日志溢出。
    3. 重新启动受影响的虚拟桌面。如果问题仍然存在,请联系 Citrix 技术支持。
  • 启动失败。Citrix Personal vDisk 已取消激活,因为检测到不安全的系统关闭。要重试,请选择“重试”。如果问题继续存在,请联系系统管理员。

    在启用 PvD 的情况下,池 VM 无法完成其启动过程。请首先确定启动无法完成的原因。可能是因为由于以下原因显示蓝屏:

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

    要检查池 VM 是否显示蓝屏或过早重新启动,请执行以下操作:

    • 通过虚拟机管理程序控制台登录计算机。
    • 单击重试并等待计算机关闭。
    • 通过 Studio 启动计算机。
    • 使用虚拟机管理程序控制台在计算机启动过程中对其进行监视。

    其他故障排除方法:

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

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

Personal vDisk 记录的事件

如果未启用 Personal vDisk,可在 Windows 事件查看器中查看以下事件。请在左侧窗格中选择应用程序节点,右侧窗格中的事件来源为 Citrix Personal vDisk。如果启用 Personal vDisk,将不显示任何事件。

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

事件 ID 说明
1 Personal vDisk 状态: 已开始更新清单。
1 Personal vDisk 状态:已完成清单更新。GUID:%s。
1 Personal vDisk 状态: 已开始执行映像更新。
1 Personal vDisk 状态: 已完成映像更新。
1 正在重置。
1 OK(正常)。
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 Personal vDisk 重置失败。
2 找不到用于存储用户个性化设置的磁盘。
2 存储磁盘上可用空间不足,无法创建 Personal vDisk 容器。

与版本无关的已知问题

确定了以下 PvD 问题:

  • 如果安装在个人虚拟磁盘 (PvD) 上的某个应用程序与另一个安装在主映像上具有相同版本的应用程序相关,在映像更新后,PvD 上的应用程序可能会停止工作。如果卸载主映像上的应用程序或将其升级到更新的版本,则会出现此问题,因为此操作从主映像上删除了 PvD 上的应用程序所需的文件。为防止发生此问题,请在主映像上保留包含 PvD 上的应用程序所需文件的应用程序。

    例如,主映像包含 Office 2007,并且用户在 PvD 上安装了 Visio 2007,Office 应用程序和 Visio 运行正常。之后,管理员在主映像上将 Office 2007 替换成 Office 2010,然后使用更新后的映像更新所有受影响的计算机。Visio 2007 将不再可用。为了避免此问题,请在主映像上保留 Office 2007。[320915]

  • 如果使用 Personal vDisk,当部署 McAfee Virus Scan Enterprise (VSE) 时,请在主映像上使用版本 8.8 Patch 4 或更高版本。[303472]
  • 如果创建的指向主映像中某个文件的快捷方式不再起作用(因为快捷方式目标已在 PvD 中重命名),请重新创建快捷方式。[367602]
  • 请勿在主映像中使用绝对/硬盘链接。[368678]
  • Personal vDisk 不支持 Windows 7 备份和还原功能。[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 was disabled due to unsafe shutdown”(由于不安全的关闭操作导致禁用 PvD),并且 PvDActivation 日志可能会包含消息“Failed to load reg hive [\Device\IvmVhdDisk00000001\CitrixPvD\Settings\RingCube.dat]”(无法加载注册表配置单元 \Device\IvmVhdDisk00000001\CitrixPvD\Settings\RingCube.dat)。当用户的 VM 以不安全的方式关闭时,会出现此问题。解决方法:重置 Personal vDisk。[474071]
显示、消息和故障排除