管理录制件

ICA 日志数据库 (ICLDB) 是一个数据库命令行实用程序,用于操作会话录制数据库记录。此实用程序在会话录制安装期间安装到托管会话录制服务器的服务器上的 <Session Recording Server installation path>\Bin 文件夹中。

注意:

如果要使用 ICLDB 管理存储在 Azure 文件共享中的会话录制文件,请运行 SsRecUtils.exe -MountAzureFiles 命令。SsRecUtils.exe 和 ICLDB 位于同一文件夹中。

快速参考图表

下表列出了 ICLDB 实用程序可用的命令和选项。请使用以下格式键入命令:

ICLDB [VERSION | LOCATE | DORMANT | IMPORT | ARCHIVE | REMOVE | REMOVEALL | REPAIR] command-options [/L] [/F] [/S] [/?]

注意:

有关该实用程序的更详细说明可在其帮助中找到。要从命令提示符访问帮助,请键入 \Program Files\Citrix\SessionRecording\Server\Bin 文件夹,然后键入 icldb /?。要访问特定命令的帮助,请键入 icldb <specific command> /?

命令 内容描述
ARCHIVE 存档您指定的会话录制文件。您可以使用 FILEID 参数指定要存档的目标会话录制文件。您还可以使用 RETENTION 参数以及 FILTER 或 RULES 参数来指定目标会话录制文件。在第二种情况下,RETENTION 参数是强制性的。它允许您操作早于指定保留期的会话录制文件。有效的保留期至少为 2 天。因此,请将 RETENTION 设置为 2 或适合您需求的更大值。FILTER 和 RULES 参数是可选的。FILTER 参数允许您使用 *? 通配符筛选文件路径。RULES 参数通过严格按照 /RULES:FIELD-In-["CONDITION","CONDITION"];FIELD-NotIn-["CONDITION","CONDITION"]; 格式组合多个筛选器来设置高级筛选器。有关详细信息,请参阅此表后面的 ICLDB ARCHIVE 和 ICLDB REMOVE 命令的 RULES 参数。RULES 参数和 FILTER 参数不能一起使用。如果添加 FILTER 或 RULES 参数,则仅操作同时满足 RETENTION 和 FILTER 或 RULES 的会话录制文件。您可以存档录制文件中的录制内容和事件。事件存档在 ArchivedEvent 数据库表中。ICLDB ARCHIVE 命令示例:ICLDB ARCHIVE /RETENTION:<days> [/LISTFILES] [/MOVETO:<dir>] [/NOTE:<note>] [/FILTER:<file path filter>] [/RULES:<advanced filters>] [/L] [/F] [/S] [/?]
DORMANT 显示或计数被视为休眠或无响应的实时录制文件。当在指定时间段过后没有新数据写入录制文件时,实时录制被视为无响应或休眠。您可以使用 FILEID 参数指定目标会话录制文件。您还可以检查会话录制文件是否正在整个数据库中变为休眠状态,或者仅检查在指定天数、小时数或分钟数内进行的录制。在时间参数(DAYS、HOURS 和 MINUTES)中,一次只能指定一个。您可以通过附加 CLOSEFILES 参数手动关闭无响应或休眠的实时录制。您还可以在“会话录制服务器属性”的“存储”选项卡上设置时间阈值,以便在超出阈值时自动关闭无响应或休眠的实时录制。有关详细信息,请参阅本文后面的 关闭无响应或休眠的实时录制
IMPORT 将会话录制文件导入到会话录制数据库。如果数据库记录丢失,请使用此命令重建数据库。此外,使用此命令合并数据库(如果您有两个数据库,可以从其中一个数据库导入文件)。2303 版本为 IMPORT 命令引入了 RELOCATE 参数。如果没有 RELOCATE 参数,IMPORT 命令会完整解析会话录制文件,这需要时间。使用 RELOCATE 参数,IMPORT 命令只需定位会话录制文件的数据库记录并直接更新其文件路径。ICLDB IMPORT 命令示例:ICLDB IMPORT [/LISTFILES] [/RECURSIVE] [/RELOCATE] [/L] [/F] [/S] [/?] [<file>] [<directory>]
LOCATE 使用文件 ID 作为条件,查找并显示会话录制文件的完整路径。当您正在查找会话录制文件的存储位置时,请使用此命令。这也是验证数据库是否与特定文件保持同步的一种方法。ICLDB LOCATE 命令示例:ICLDB LOCATE /FILEID:<id> [/L] [/F] [/S] [/?]
REMOVE 从数据库中删除对会话录制文件的引用。请谨慎使用此命令清理数据库。您还可以删除关联的物理文件。使用 REMOVE 命令时,您可以通过使用 FILEID 参数指定目标会话录制文件,或者使用 RETENTION 参数以及 FILTER 或 RULES 参数指定目标会话录制文件。在第二种情况下,RETENTION 参数是强制性的。它允许您操作早于指定保留期的会话录制文件。有效的保留期至少为 2 天。因此,将 RETENTION 设置为 2 或适合您需求的更大值。FILTER 和 RULES 参数是可选的。FILTER 参数允许您使用 *? 通配符过滤文件路径。RULES 参数通过严格按照 /RULES:FIELD-In-["CONDITION","CONDITION"];FIELD-NotIn-["CONDITION","CONDITION"]; 格式组合多个过滤器来设置高级过滤器。有关详细信息,请参阅此表后面的 ICLDB ARCHIVE 和 ICLDB REMOVE 命令的 RULES 参数。RULES 参数和 FILTER 参数不能一起使用。如果您添加 FILTER 或 RULES 参数,则只操作同时满足 RETENTION 和 FILTER 或 RULES 的会话录制文件。ICLDB REMOVE 命令示例:ICLDB REMOVE /RETENTION:<days> [/LISTFILES] [/DELETEFILES] [/FILTER:<file path filter>] [/RULES:<advanced filters>] [/L] [/F] [/S] [/?]
REMOVEALL 从会话录制数据库中删除对会话录制文件的所有引用,并将数据库恢复到其原始状态。实际的物理文件不会被删除;但是,您无法在会话录制播放器中搜索这些文件。请谨慎使用此命令清理数据库。只有通过从备份还原才能撤销已删除的引用。
VERSION 显示会话录制数据库架构版本。
REPAIR 修复因文件头中缺少数据而损坏的录制文件。修复的文件可在 %AppData%\Citrix\SessionRecording\Restore 中找到。
/L 将结果和错误记录到 Windows 事件日志中。
/F 强制命令在没有提示的情况下运行。
/S 禁止显示版权信息。
/? 显示命令的帮助信息。

The RULES parameter for ICLDB ARCHIVE and ICLDB REMOVE commands

RULES 参数通过严格按照 /RULES:FIELD-In-["CONDITION","CONDITION"];FIELD-NotIn-["CONDITION","CONDITION"]; 格式组合多个筛选器来设置高级筛选器,其中:

  • “字段”设置一个筛选器,该筛选器使用一个字段,该字段可以是“路径”、“用户”、“组”、“交付组”、“应用程序”、“服务器”、“客户端”,或名为 dbo.ICLFile 的数据库表中的任何其他列。

  • In”表示括号中的至少一个筛选条件必须满足,录制文件才能成为操作对象。

  • NotIn”表示满足括号中任何筛选条件的录制文件将从操作中排除。

  • CONDITION”使用数据库表 dbo.ICLFile 中的记录(或行)设置筛选条件。

  • 用户和组记录必须以 <domain>.<name> 格式输入。

  • 可以使用 Windows 通配符筛选路径记录。

  • 您必须用双引号 ("") 将每个“CONDITION”项括起来,并用逗号 (,) 分隔两个“CONDITION”项。

  • 输入“CONDITION”项时,除非“CONDITION”项本身包含空格,否则不要添加空格。

  • 如果“CONDITION”项包含一个或多个逗号,请将该“CONDITION”项用双引号括起来,后跟转义的双引号 """ """

  • 可以使用多种筛选器组合。每个筛选器都以分号 (;) 结尾。

  • “AND”逻辑运算符用于计算多个筛选器。筛选器数量没有限制,但 RULES 的总长度不得超过 2,048 字节。

示例:

  • /RULES:group-In-["BUILTIN.Guests"];
  • /RULES:path-In-["S:\SessionRecordings\2023*"];group-NotIn-["Mydomain.Suspicious","Mydomain.Persistence"];
  • /RULES:deliverygroup-In-["RdsDesktopAndAppGroup"];user-In-["Mydomain.AdminA","""Mydomain.Admin,,,B"""];
  • /RULES:EndReasonID-In-["1","2"];

归档会话录制文件

为了在录制存储位置保持充足的备用磁盘容量,请务必定期归档会话录制文件。归档的间隔时间会根据可用的磁盘空间量以及录制文件的典型大小而有所不同。会话录制文件必须在其开始日期之后超过两天,方可进行归档。制定此规则的目的是为了防止任何正在进行的录制在尚未完成之前就被归档。

归档会话录制时有两种方法可用。录制文件的数据库记录可以更新为已归档状态,而文件仍保留在录制存储位置。此方法可用于减少播放器中的搜索结果。另一种方法是将录制文件的数据库记录更新为已归档状态,并将文件从录制存储位置移动到另一个位置以备份到备用介质。移动会话录制文件时,ICLDB 实用程序会将它们移动到指定目录,其中不再存在原始文件文件夹结构 year/month/day

会话录制数据库中的会话录制记录包含与归档相关的两个字段——归档时间和归档备注。归档时间表示录制被归档的当前日期和时间。归档备注是可在归档期间添加的可选文本备注。这两个字段指示录制已归档以及归档时间。

在会话录制播放器中,已归档的会话录制显示“已归档”状态以及归档日期和时间。如果文件尚未移动,则已归档的会话录制可能仍可播放。如果会话录制文件在归档期间被移动,则会显示“文件未找到”错误。必须先恢复会话录制文件,然后才能播放会话。要恢复会话录制文件,请提供录制文件的文件 ID 和归档时间。有关恢复已归档文件的详细信息,请参阅以下恢复会话录制文件部分。

ICLDB 实用程序的 ARCHIVE 命令有几个参数,描述如下:

  • /FILEID:<id> - 允许您指定目标会话录制文件。您可以在会话录制播放器 (Windows) 中检查会话录制文件的 ID。录制文件名也可以用作文件 ID。

  • /RETENTION:<days> - 会话录制的保留期(天)。早于指定天数的录制内容在会话录制数据库中标记为已归档。保留期必须是大于或等于 2 天的整数。

  • /FILTER:<filter>: 允许您使用 *? 通配符筛选文件路径。FILTER 参数是可选的。如果添加 FILTER 参数,则只有同时满足 RETENTION 和 FILTER 的会话录制文件才会被归档。
  • /RULES:<advanced filters>: 通过严格按照 /RULES:FIELD-In-["CONDITION","CONDITION"];FIELD-NotIn-["CONDITION","CONDITION"]; 格式组合多个筛选器来设置高级筛选器。RULES 参数和 FILTER 参数不能一起使用。有关详细信息,请参阅本文中前面的 ICLDB ARCHIVE 和 ICLDB REMOVE 命令的 RULES 参数 部分。

  • /LISTFILES – 列出正在归档的会话录制文件的完整路径和文件名。此参数是可选的。

  • /MOVETO:<directory> - 物理移动已归档会话录制文件的目录。指定的目录必须存在。此参数是可选的。如果未指定目录,文件将保留在其原始存储位置。

  • /NOTE:<note> - 添加到每个已归档会话录制数据库记录的文本备注。确保备注用双引号括起来。此参数是可选的。

  • /L – 将已归档会话录制文件数量的结果和错误记录到 Windows 事件日志中。此参数是可选的。

  • /F – 强制归档命令在不提示的情况下运行。此参数是可选的。

如何将会话录制归档到会话录制数据库并物理移动会话录制文件

  1. 以本地管理员身份登录到安装了会话录制服务器的服务器。

  2. 启动命令提示符。

  3. 将会话录制服务器安装路径 (<Session Recording server Installation Path>\Bin) 的当前工作目录更改为 Bin 目录。

  4. 运行 ICLDB ARCHIVE /RETENTION:<days> [/LISTFILES] [/MOVETO:<dir>] [/NOTE:<note>] [/FILTER:<file path filter>] [/RULES:<advanced filters>] [/L] [/F] [/S] [/?] 命令。括号中的参数是可选的。运行命令时请删除括号。RULES 参数和 FILTER 参数不能一起使用。days 是会话录制文件的保留期,directory 是已归档会话录制文件移动到的目录,note 是添加到每个正在归档的会话录制文件数据库记录的文本备注。输入 Y 以确认归档。

如何仅在会话录制数据库中归档会话录制

  1. 以本地管理员身份登录到安装了会话录制服务器的服务器。

  2. 启动命令提示符。

  3. 从当前工作目录更改到 Session Recording 服务器安装路径的 Bin 目录 (<Session Recording 服务器安装路径>\Bin)。

  4. 运行 ICLDB ARCHIVE /RETENTION:<days> [/LISTFILES] [/NOTE:<note>] [/FILTER:<file path filter>] [/RULES:<advanced filters>] [/L] [/F] [/S] [/?] 命令。括号中的参数是可选的。运行命令时请删除括号。RULES 参数和 FILTER 参数不能一起使用。days 是会话录制的保留期,note 是添加到每个正在存档的会话录制数据库记录中的文本备注。输入 Y 确认存档。

还原会话录制文件

要查看已存档在会话录制数据库中并已从录制存储位置移出的录制文件,请将其还原。在存档期间未从录制存储位置移出的已存档会话录制仍可在播放器中访问。

有两种方法可以还原已移动的会话录制文件。将所需的会话录制文件复制到存档文件的还原目录。或者,使用 ICLDB 实用程序将所需的会话录制文件重新导入到会话录制数据库。我们建议使用第一种方法还原已存档的会话录制文件。当您不再需要已复制到存档文件还原目录中的存档文件时,请将其删除。

当会话录制文件在其原始存储位置中找不到时,会话录制代理将使用“存档文件的还原目录”。当播放器请求会话录制文件进行播放时,会发生这种情况。会话录制代理首先尝试在原始存储位置中查找会话录制文件。如果在原始存储位置中找不到该文件,则会话录制代理会检查“存档文件的还原目录”。如果文件存在于还原目录中,则会话录制代理会将文件发送到播放器进行播放。如果找不到该文件,则会话录制代理会向播放器发送文件未找到错误。

导入存档的录制文件会使用该文件中的会话录制信息(包括新的存储路径)来更新会话录制数据库。导入存档的会话录制文件并不会将文件移回会话录制时的原始存储位置。

注意: 导入的会话录制文件在会话录制数据库中已清除存档时间和存档备注。下次运行 ICLDB ARCHIVE 命令时,导入的会话录制文件可能会再次存档。

ICLDB IMPORT 命令可用于导入大量存档的录制文件。它可以修复或更新会话录制数据库中不正确和缺失的会话录制数据。它还可用于将会话录制文件从会话录制服务器上的一个存储位置移动到另一个存储位置。运行 ICLDB REMOVEALL 命令后,您可以使用 ICLDB IMPORT 命令将会话录制重新填充到会话录制数据库中。

ICLDB 实用程序的 IMPORT 命令有几个参数可用于还原存档的录制文件:

  • /LISTFILES – 列出正在导入的会话录制文件的完整路径和文件名。此参数是可选的。

  • /RECURSIVE – 搜索所有子目录中的会话录制文件。此参数是可选的。

  • /RELOCATE – 如果没有 RELOCATE 参数,IMPORT 命令会完整解析会话录制文件,这需要时间。使用 RELOCATE 参数,IMPORT 命令只需定位会话录制文件的数据库记录并直接更新其文件路径。

  • /L – 将导入的会话录制文件数量的结果和错误记录到 Windows 事件日志中。此参数是可选的。

  • /F – 强制 IMPORT 命令在没有提示的情况下运行。此参数是可选的。

注意:

ICLDB 实用程序的 IMPORT 命令还提供了一个可选参数 RELOCATE,可用于重新定位录制文件。有关详细信息,请参阅本文中的重新定位会话录制文件部分。

通过使用专门用于存档文件的还原目录来恢复会话录制文件

  1. 以本地管理员身份登录到安装了会话录制服务器的服务器。

  2. 在“会话录制播放器属性”中,确定存档会话录制文件的文件 ID 和存档时间。

  3. 使用“会话录制播放器属性”中指定的文件 ID 在备份中找到会话录制文件。每个会话录制的文件名为 i_<FileID>.icl,其中 FileID 是会话录制文件的 ID。

  4. 将会话录制文件从备份复制到存档文件的还原目录。要确定存档文件的还原目录,请执行以下操作:

    1. 从“开始”菜单中,选择“开始”>“所有程序”>“Citrix®”>“会话录制服务器属性”。

    2. 在“会话录制服务器属性”中,选择“存储”选项卡。当前还原目录显示在“存档文件的还原目录”字段中。

使用 ICLDB IMPORT 命令还原会话录制文件

  1. 以本地管理员身份登录到安装了会话录制服务器的服务器。

  2. 启动命令提示符。

  3. 将会话录制服务器安装路径的当前工作目录更改为 Bin 目录 (<Session Recording server installation path>\Bin)。

  4. 执行以下操作之一:

    • 运行 ICLDB IMPORT /LISTFILES /RECURSIVE /L <directory> 命令,其中 directory 是一个或多个目录的名称,这些目录包含会话录制文件,并以空格分隔。输入 Y 确认导入。

    • 运行 ICLDB IMPORT /LISTFILES /L <file> 命令,其中 file 是一个或多个会话录制文件的名称,以空格分隔。可以使用通配符指定会话录制文件。输入 Y 确认导入。

重新定位会话录制文件

您可以将会话录制文件移动到不同的存储路径,以实现负载平衡或其他目的。为确保文件仍可播放,您必须将会话录制数据库中的文件路径更新为新路径。为此,请使用 ICLDB IMPORT 命令。要加快导入过程,请将 RELOCATE 参数附加到 ICLDB IMPORT 命令。

注意:

RELOCATE 参数是可选的。如果没有 RELOCATE 参数,ICLDB IMPORT 命令会完整解析会话录制文件,这需要时间。使用 RELOCATE 参数,ICLDB IMPORT 命令只需定位会话录制文件的数据库记录并直接更新其文件路径。

以下步骤说明如何使用 RELOCATE 参数将会话录制数据库中的文件路径更新为新路径。

  1. 根据需要将会话录制文件移动到不同的存储路径。

  2. 以本地管理员身份登录到安装了 Session Recording 服务器的服务器。

  3. 启动命令提示符。

  4. 将当前工作目录更改为 Session Recording 服务器安装路径的 Bin 目录 (<Session Recording server installation path>\Bin)。

  5. 执行以下操作之一:

    • 运行 ICLDB IMPORT /LISTFILES /RECURSIVE /RELOCATE /L <directory> 命令,其中 directory 是一个或多个目录的名称,这些目录包含会话录制文件,并以空格分隔。输入 Y 确认导入。

    • 运行 ICLDB IMPORT /LISTFILES /RELOCATE /L <file> 命令,其中 file 是一个或多个会话录制文件的名称,以空格分隔。可以使用通配符指定会话录制文件。输入 Y 确认导入。

注意:

  • RELOCATE 参数假定会话录制文件在会话录制数据库中已有记录。
  • 会话录制文件在移动之前必须是可播放的。否则,RELOCATE 参数将不起作用。
  • 会话录制文件的新存储路径必须可由会话录制服务器识别。您可以在会话录制服务器属性存储选项卡上尝试这些路径。

关闭无响应或休眠的实时录制

默认情况下,如果 24 小时内没有新数据写入录制文件,则实时录制被视为无响应或休眠。您可以在会话录制服务器属性存储选项卡上配置此时间阈值,以便在此阈值超出时自动关闭无响应或休眠的实时录制。您可以设置的最小值为 12(小时)。

设置录制文件休眠时间

您还可以使用 ICLDB DORMANT 命令手动关闭无响应或休眠的实时录制,例如:

ICLDB DORMANT [/DAYS:<days> | /HOURS:<hours> | /MINUTES:<minutes> | /FILEID:<id>] [/LISTFILES] [/CLOSEFILES] [/L] [/F] [/S] [/?]
<!--NeedCopy-->

FILEID 参数允许您指定目标会话录制文件,而 CLOSEFILES 参数允许您手动关闭您指定的无响应或休眠的实时录制。

提示:

您可以在会话录制播放器 (Windows) 中检查会话录制文件的 ID。录制文件名也可以用作文件 ID。