动态会话录制功能

以前,会话录制严格地在符合录制策略的会话一开始就启动,并在这些会话结束时严格停止。

从 7.18 版本开始,Citrix 引入了动态会话录制功能。借助此功能,您可以在会话期间的任何时间开始或停止录制特定会话或特定用户启动的会话。

注意:

为了使该功能按预期工作,请将会话录制、VDA 和交付控制器升级到版本 7.18 或更高版本。

启用或禁用动态会话录制

在 Session Recording Agent 上,添加了一个注册表值,用于启用或禁用该功能。该注册表值默认为 1,这意味着该功能默认处于启用状态。

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

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

警告:

错误地编辑注册表可能会导致严重问题,可能需要您重新安装操作系统。Citrix® 无法保证可以解决因不正确使用注册表编辑器而导致的问题。请自行承担使用注册表编辑器的风险。编辑注册表之前,请务必备份注册表。

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

You can use the dynamic session recording feature in both on-premises and Citrix Cloud environments by using the Citrix Virtual Apps and Desktops™ PowerShell SDK and the Citrix Virtual Apps and Desktops Remote PowerShell SDK, respectively.

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

创建到控制器的查询

注意:

请勿在 Citrix Cloud Connector™ 计算机上安装远程 PowerShell 开发工具包。您可以在同一资源位置内的任何已加入域的计算机上安装远程 PowerShell 开发工具包。我们建议您不要在 Cloud Connector 上运行此开发工具包的 cmdlet 命令。此开发工具包的操作不涉及 Cloud Connector。

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

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

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

  1. (For Citrix Virtual Apps™ and Desktops PowerShell SDK only) Launch PowerShell from the Citrix Studio console.

    Launch PowerShell

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

    运行获取代理会话(/zh-cn/session-recording/2107/media/run-get-broker-session.png)

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

    运行获取会话状态(/zh-cn/session-recording/2107/media/run-get-session-status.png)

    注意:

    The -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. 在会话录制播放器中播放 LiveComplete 录制件,然后继续进行后续故障排除。

    注意:

    当您播放由 Stop-BrokerSessionRecording 命令结束的“Complete”录制件,并且录制会话的最后一部分处于空闲状态时,播放器进度条上的时间线最后一部分可能会显示为灰色。当录制会话持续处于活动状态时,这一点并不明显。

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

    下表显示了使用此命令的常见方法:

    命令 详细说明
    停止-代理会话录制 -用户 域A \ 用户A 停止录制用户 UserA 在域 DomainA 中的所有会话。
    停止-代理会话录制 -会话 $会话对象 停止录制 $SessionObject 中的所有会话。
    Stop-BrokerSessionRecording -Sessions uid1,uid2,…,uidn 停止录制会话 uid1、uid2、… 和 uidn。

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

Studio 日志记录屏幕

动态会话录制功能