动态会话录制

以前,会话录制精确地在满足录制策略的会话开始那一刻开始进行,并精确地在这些会话结束那一刻停止。

自 7.18 版起,Citrix 引入了动态会话录制功能。通过此功能,您可以在会话期间随时开始或停止录制某个特定用户启动的一个或多个特定会话。

注意:

要确保此功能按预期运行,请将 Session Recording、VDA 和 Delivery Controller 升级到版本 7.18 或更高版本。

启用或禁用动态会话录制

在 Session Recording Agent 中,添加了一个注册表值用于启用或禁用该功能。默认情况下,该注册表值设置为 1,这意味着默认启用该功能。

要启用或禁用此功能,请完成以下步骤:

  1. Session Recording 安装完成后,以管理员身份登录到安装了 Session Recording Agent 的计算机。
  2. 打开注册表编辑器。
  3. 浏览到 HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor
  4. DynamicControlAllowed 值设置为 0,或使用默认值 1
    1: 启用动态录制
    0: 禁用动态录制
  5. 重新启动 Session Recording Agent 以使设置生效。
    如果使用 MCS 或 PVS 进行部署,请更改主映像上的设置并执行更新以使所做的更改生效。

警告:

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

在 Citrix SDK 中使用 PowerShell 命令动态启动或停止录制

通过分别使用 Citrix Virtual Apps and Desktops PowerShell SDK 和 Citrix Virtual Apps and Desktops 远程 PowerShell SDK,您可以在本地和 Citrix Cloud 环境中使用动态会话录制功能。

要确定安装和使用哪个 SDK,请注意您在创建录制策略时指定的 Delivery Controller。如果选择 Citrix Cloud Controller 复选框以在 Citrix Cloud 环境中录制会话,则必须验证 Citrix Cloud 凭据。有关详细信息,请参阅创建自定义录制策略

创建对 Controller 的查询

注意:

请勿在 Citrix Cloud Connector 计算机上安装远程 PowerShell SDK。可以在同一资源位置中的任何加入了域的计算机上安装 Remote PowerShell SDK。我们建议您不要在 Cloud Connector 上运行此 SDK 的 cmdlet。SDK 的操作不涉及 Cloud Connector。

下表列出了两个 Citrix SDK 为动态会话录制提供的三个 PowerShell 命令。

命令 说明
Start-BrokerSessionRecording 允许您开始录制特定的活动会话、活动会话的列表或特定用户启动的会话。有关详细信息,请运行 Get-Help Start-BrokerSessionRecording 以查看命令联机帮助。
Stop-BrokerSessionRecording 允许您停止录制特定的活动会话、活动会话的列表或特定用户启动的会话。有关详细信息,请运行 Get-Help Stop-BrokerSessionRecording 以查看命令联机帮助。
Get-BrokerSessionRecordingStatus 用于获取特定活动会话的录制状态。有关详细信息,请运行 Get-Help Get-BrokerSessionRecordingStatus 以查看命令联机帮助。

例如,如果用户报告了问题并需要及时支持,您可以使用该功能动态开始录制用户的活动会话,以及播放实时录制件以继续进行后续的故障排除。可执行以下操作:

  1. (仅适用于 Citrix Virtual Apps and Desktops PowerShell SDK)从 Citrix Studio 控制台启动 PowerShell。

    启动 PowerShell

  2. 使用 Get-BrokerSession 命令获取目标用户的所有活动会话。

    运行 get broker session

  3. 使用 Get-BrokerSessionRecordingStatus 命令获取指定会话的录制状态。

    运行 get session status

    注意:

    -Session 参数一次只能接受一个会话 UID。

  4. 使用 Start-BrokerSessionRecording 命令启动录制。默认情况下,将会显示一条通知消息,向用户通知录制活动。 

    下表显示了使用 Start-BrokerSessionRecording 命令的常见方式。

    命令 说明
    Start-BrokerSessionRecording -User DomainA \ UserA 开始录制名为 DomainA 的域中用户 UserA 的所有会话,并通知 UserA。
    Start-BrokerSessionRecording -User DomainA \ UserA -NotifyUser $false 开始录制名为 DomainA 的域中用户 UserA 的所有会话,但不通知 UserA。
    Start-BrokerSessionRecording -Sessions $SessionObject 开始录制名为 $SessionObject 的对象中的所有会话,并通知用户。要获取对象 $SessionObject,请运行 $SessionObject=Get-BrokerSession –username UserA。对象名称带有美元符号 $ 前缀。有关详细信息,请参阅步骤 2 和命令联机帮助。
    Start-BrokerSessionRecording -Sessions uid1,uid2,…,uidn 开始录制会话 uid1、uid2、… 和 uidn,并通知用户。
  5. 使用 Get-BrokerSessionRecordingStatus 命令获取每个目标会话的录制状态。状态应为 SessionBeingRecorded

  6. 在 Session Recording Player 中播放实时完整的录制件,继续进行后续的故障排除。

    注意:

    播放通过 Stop-BrokerSessionRecording 命令结束的“完整”录制件,且录制的会话的最后一个部分处于空闲状态时,Player 进度条上时间线的最后一个部分可能显示灰色。录制的会话有连续发生的活动时,此情况不明显。

  7. 当报告的问题已分类或解决时,使用 Stop-BrokerSessionRecording 命令停止录制。

    下表显示了此命令的常见使用方式。

    命令 说明
    Stop-BrokerSessionRecording -User DomainA \ UserA 停止录制名为 DomainA 的域中用户 UserA 的所有会话。
    Stop-BrokerSessionRecording -Sessions $SessionObject 停止录制 $SessionObject 中的所有会话。
    Stop-BrokerSessionRecording -Sessions uid1,uid2,…,uidn 停止录制会话 uid1、uid2、… 和 uidn。

在 Citrix Studio 日志记录屏幕中,可以查看生成的 Start-BrokerSessionRecordingStop-BrokerSessionRecording 命令的日志。

Studio 日志记录屏幕

动态会话录制