动态会话录制功能
此前,会话录制严格在符合录制策略的会话启动之初便开始,并在这些会话结束时严格停止。
从 7.18 版本开始,Citrix 引入了动态会话录制功能。借助此功能,您可以在会话期间的任何时间开始或停止录制特定会话或特定用户启动的会话。
注意:
要使该功能按预期工作,请将会话录制、VDA 和 Delivery Controller 升级到 7.18 或更高版本。
启用或禁用动态会话录制
在会话录制代理上,添加了一个注册表值以启用或禁用该功能。该注册表值默认为 1,这意味着该功能默认处于启用状态。
要启用或禁用该功能,请完成以下步骤:
- 在会话录制安装完成后,请以管理员身份登录到您安装了会话录制代理的计算机。
- 打开注册表编辑器。
- 浏览到
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\SmartAuditor。 - 将 DynamicControlAllowed 的值设置为 0 或使用默认值 1。 1:启用动态录制 0:禁用动态录制
- 重新启动会话录制代理以使您的设置生效。 如果您正在使用 MCS 或 PVS 进行部署,请在主映像上更改设置并执行更新以使您的更改生效。
警告:
不正确地编辑注册表可能会导致严重问题,可能需要您重新安装操作系统。Citrix® 无法保证能够解决因不正确使用注册表编辑器而导致的问题。请自行承担使用注册表编辑器的风险。在编辑注册表之前,请务必备份注册表。
通过使用 Citrix SDK 中的 PowerShell 命令动态启动或停止录制
You can use the dynamic session recording feature in both on-premises and Citrix Cloud environments. To use the feature in an on-premises environment, use the Citrix Virtual Apps and Desktops™ PowerShell SDK. To use the feature in a Citrix Cloud environment, use the Citrix DaaS Remote PowerShell SDK (formerly Citrix Virtual Apps and Desktops Remote PowerShell SDK).
要确定要安装和使用哪个 SDK,请注意您在创建录制策略时指定的交付控制器™。如果选中 Citrix Cloud Controller 复选框以在 Citrix Cloud 环境中录制会话,则必须验证您的 Citrix Cloud 凭据。
创建到控制器的查询(/zh-cn/session-recording/current-release/media/create-query-to-ddc.png)
注意:
请勿在 Citrix 云连接器™ 计算机上安装 Citrix DaaS 远程 PowerShell SDK。您可以在同一资源位置内任何已加入域的计算机上安装远程 PowerShell SDK。我们建议您不要在云连接器上运行此 SDK 的 cmdlet。此 SDK 的操作不涉及云连接器。
下表列出了两个 Citrix SDK 为动态会话录制提供的三个 PowerShell 命令。
| 命令 | 详细说明 |
|---|---|
| Start-BrokerSessionRecording | 允许您开始录制特定的活动会话、活动会话列表或由特定用户启动的会话。如果根据策略设置,特定会话最初设置为仅事件录制,则使用此命令可以开始捕获屏幕以及目标事件。有关详细信息,请运行 Get-Help Start-BrokerSessionRecording 以查看命令联机帮助。 |
| 停止-代理会话录制 | 允许您停止录制特定的活动会话、活动会话列表或由特定用户启动的会话。有关详细信息,请运行 Get-Help Stop-BrokerSessionRecording 以查看命令联机帮助。 |
| 获取-代理会话录制状态 | 允许您获取特定活动会话的录制状态。有关详细信息,请运行 Get-Help Get-BrokerSessionRecordingStatus 以查看命令联机帮助。 |
例如,当用户报告问题并需要及时支持时,您可以使用此功能动态开始录制用户的活动会话。您可以播放实时录制以进行后续故障排除。您可以执行以下操作:
-
(仅适用于 Citrix 虚拟应用™ 和 桌面 PowerShell 软件开发工具包) 从 Citrix 管理控制台启动 PowerShell。

-
使用
Get-BrokerSession命令获取目标用户的所有活动会话。
-
使用
Get-BrokerSessionRecordingStatus命令获取指定会话的录制状态。
注意:
-Session 参数一次只能接受一个会话 UID。
-
使用
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,并通知用户。 -
使用
Get-BrokerSessionRecordingStatus命令获取每个目标会话的录制状态。状态应为 SessionBeingRecorded。 -
播放录制内容并继续进行后续故障排除。
注意:
当您通过
Stop-BrokerSessionRecording命令结束的 Session Recording Player 播放完整录制内容时,播放器进度条上的时间线最后一部分可能会显示为灰色。并且,录制会话的最后一部分处于空闲状态。当录制会话持续活动时,这一点并不明显。 -
当报告的问题已分类或解决时,使用
Stop-BrokerSessionRecording命令停止录制。下表显示了使用此命令的常见方法:
命令 详细信息 Stop-BrokerSessionRecording -User DomainA\ 用户A停止录制域 DomainA 中用户 UserA 的所有会话。 Stop-BrokerSessionRecording -Sessions $SessionObject停止录制 $SessionObject 中的所有会话。 Stop-BrokerSessionRecording -Sessions uid1,uid2,…,uidn停止录制会话 UID1、UID2、… 和UIDn。
在 Citrix Studio 的“日志记录”屏幕上,您可以查看 Start-BrokerSessionRecording 和 Stop-BrokerSessionRecording 命令生成的日志。
