Session Recording

録画の管理

ICAログデータベース (ICLDB) は、セッション録画データベースレコードを操作するために使用されるデータベースコマンドラインユーティリティです。このユーティリティは、Session Recordingのインストール中に、Session Recordingサーバーをホストするサーバー上の<Session Recording Server installation path>\Binフォルダーにインストールされます。

注:

Azureファイル共有に保存されているセッション録画ファイルを管理するためにICLDBを使用する場合は、SsRecUtils.exe -MountAzureFilesコマンドを実行します。SsRecUtils.exeとICLDBは同じフォルダーにあります。

クイックリファレンスチャート

次の表に、ICLDBユーティリティで利用可能なコマンドとオプションを示します。次の形式を使用してコマンドを入力します。

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

注:

ユーティリティに関連付けられているヘルプには、より詳細な手順が記載されています。ヘルプにアクセスするには、コマンドプロンプトから\Program Files\Citrix\SessionRecording\Server\Binフォルダーを入力し、 icldb /?と入力します。特定のコマンドのヘルプにアクセスするには、 icldb <specific command> /?と入力します。

コマンド 項目説明
ARCHIVE 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 休止状態と見なされるセッション録画ファイルを表示またはカウントします。休止状態のファイルとは、データ損失により完了しなかったセッション録画です。データが失われている疑いがある場合は、このコマンドを使用して確認します。データベース全体のセッション録画ファイルが休止状態になっているか、または指定された日数、時間、または分以内に作成された録画のみが休止状態になっているかを確認できます。時間パラメーター (DAYS、HOURS、MINUTES) のうち、一度に指定できるのは1つだけです。
IMPORT セッションレコーディングファイルをセッションレコーディングデータベースにインポートします。データベースレコードを失った場合に、このコマンドを使用してデータベースを再構築します。また、このコマンドを使用してデータベースをマージすることもできます(2つのデータベースがある場合、一方のデータベースからファイルをインポートできます)。2303リリースでは、IMPORTコマンドにRELOCATEパラメーターが導入されました。RELOCATEパラメーターがない場合、IMPORTコマンドはセッションレコーディングファイルを完全に解析するため、時間がかかります。RELOCATEパラメーターを使用すると、IMPORTコマンドはセッションレコーディングファイルのデータベースレコードを単に特定し、そのファイルパスを直接更新します。ICLDB IMPORTコマンドの例: ICLDB IMPORT [/LISTFILES] [/RECURSIVE] [/RELOCATE] [/L] [/F] [/S] [/?] [<file>] [<directory>]
LOCATE ファイルIDを基準として、セッションレコーディングファイルの完全なパスを特定し、表示します。セッションレコーディングファイルの保存場所を探しているときに、このコマンドを使用します。また、データベースが特定のファイルで最新であるかを確認する1つの方法でもあります。ICLDB LOCATEコマンドの例: ICLDB LOCATE /FILEID:<id> [/L] [/F] [/S] [/?]
REMOVE データベースからセッションレコーディングファイルへの参照を削除します。このコマンドを(注意して)使用して、データベースをクリーンアップします。関連する物理ファイルを削除することもできます。REMOVEコマンドを使用する場合、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 セッションレコーディングデータベースのスキーマバージョンを表示します。
/L 結果とエラーをWindowsイベントログに記録します。
/F プロンプトなしでコマンドの実行を強制します。
/S 著作権メッセージを抑制します。
/? コマンドのヘルプを表示します。

ICLDB ARCHIVEコマンドおよびICLDB REMOVEコマンドにおけるRULESパラメーター

RULESパラメーターは、複数のフィルターを/RULES:FIELD-In-["CONDITION","CONDITION"];FIELD-NotIn-["CONDITION","CONDITION"];形式に厳密に準拠して組み合わせることにより、高度なフィルターを設定します。ここで、

  • FIELD」は、フィールドでフィルターを設定します。フィールドは、「path」、「user」、「group」、「deliverygroup」、「application」、「server」、「client」、またはdbo.ICLFileというデータベーステーブルのその他の列のいずれかです。

  • In」は、記録ファイルが操作オブジェクトとなるためには、括弧内のフィルター条件の少なくとも1つが満たされる必要があることを意味します。

  • NotIn」は、括弧内のフィルター条件のいずれかを満たす記録ファイルが操作から除外されることを意味します。

  • CONDITION」は、dbo.ICLFileというデータベーステーブルのレコード(または行)でフィルター条件を設定します。

  • ユーザーおよびグループのレコードは、<domain>.<name>の形式で入力する必要があります。

  • パスレコードは、Windowsワイルドカードを使用してフィルターできます。

  • 各「CONDITION」項目は二重引用符("")で囲む必要があり、2つの「CONDITION」項目はコンマ(,)で区切る必要があります。

  • CONDITION」項目自体にスペースが含まれている場合を除き、「CONDITION」項目を入力する際にスペースを追加しないでください。

  • CONDITION」項目に1つ以上のコンマが含まれている場合は、「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"];

セッション録画ファイルをアーカイブする

録画ストレージの場所に十分な空きディスク容量を維持するため、セッション録画ファイルを定期的にアーカイブしてください。利用可能なディスク容量と録画ファイルの一般的なサイズに応じて、アーカイブ間隔は異なります。セッション録画ファイルをアーカイブできるのは、開始日から2日以上経過している必要があります。このルールは、ライブ録画が完了する前にアーカイブされるのを防ぐためのものです。

セッション録画をアーカイブする際には、2つの方法があります。録画ファイルのデータベースレコードは、ファイルが録画ストレージの場所に残っている間、アーカイブ済みステータスに更新できます。この方法は、プレーヤーでの検索結果を減らすために使用できます。もう1つの方法は、録画ファイルのデータベースレコードをアーカイブ済みステータスに更新し、ファイルを録画ストレージの場所から別の場所に移動して、代替メディアにバックアップすることです。ICLDBユーティリティがセッション録画ファイルを移動すると、ファイルは指定されたディレクトリに移動され、そこでは元の年/月/日のファイルフォルダ構造は存在しなくなります。

セッション録画データベース内のセッション録画レコードには、アーカイブに関連する2つのフィールド(アーカイブ時刻とアーカイブメモ)が含まれています。アーカイブ時刻は、録画がアーカイブされた現在の日付と時刻を表します。アーカイブメモは、アーカイブ中に追加できるオプションのテキストメモです。これら2つのフィールドは、録画がアーカイブされたこととアーカイブ時刻を示します。

セッション録画プレーヤーでは、アーカイブされたセッション録画は「アーカイブ済み」のステータスとアーカイブの日時を表示します。アーカイブされたセッション録画は、ファイルが移動されていない場合、引き続き再生できることがあります。アーカイブ中にセッション録画ファイルが移動された場合、「ファイルが見つかりません」というエラーが表示されます。セッションを再生する前に、セッション録画ファイルを復元する必要があります。セッション録画ファイルを復元するには、録画ファイルのファイルIDとアーカイブ時刻を提供します。アーカイブされたファイルの復元については、次の「セッション録画ファイルを復元する」セクションで詳しく説明します。

ICLDBユーティリティのARCHIVEコマンドには、以下に説明するいくつかのパラメーターがあります。

  • /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 – プロンプトなしでアーカイブコマンドを実行するように強制します。このパラメーターはオプションです。

Session Recordingデータベースでセッション録画をアーカイブし、セッション録画ファイルを物理的に移動するには

  1. Session Recordingサーバーがインストールされているサーバーにローカル管理者としてログオンします。

  2. コマンドプロンプトを起動します。

  3. 現在の作業ディレクトリから、Session RecordingサーバーのインストールパスのBinディレクトリ (<Session Recording server Installation Path>\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 を入力します。

Session Recordingデータベースでのみセッション録画をアーカイブするには

  1. Session Recordingサーバーがインストールされているサーバーにローカル管理者としてログオンします。

  2. コマンドプロンプトを起動します。

  3. 現在の作業ディレクトリから、セッションレコーディングサーバーのインストールパスのBinディレクトリ («Session Recording server installation path>\Bin») に変更します。

  4. ICLDB ARCHIVE /RETENTION:<days> [/LISTFILES] [/NOTE:<note>] [/FILTER:<file path filter>] [/RULES:<advanced filters>] [/L] [/F] [/S] [/?] コマンドを実行します。角かっこ内のパラメーターはオプションです。コマンドの実行時には角かっこを削除してください。RULESパラメーターとFILTERパラメーターは同時に使用できません。days はセッション録画の保持期間、note はアーカイブされる各セッション録画のデータベースレコードに追加されるテキストメモです。アーカイブを確定するには Y を入力します。

セッション録画ファイルを復元する

Session Recordingデータベースにアーカイブされ、録画保存場所から移動された録画ファイルを表示するには、それを復元します。アーカイブ中に録画保存場所から移動されなかったアーカイブ済みセッション録画は、引き続きプレーヤーでアクセスできます。

移動されたセッション録画ファイルを復元するには、2つの方法があります。必要なセッション録画ファイルを、アーカイブ済みファイルの復元ディレクトリにコピーします。または、ICLDBユーティリティを使用して、必要なセッション録画ファイルをSession Recordingデータベースにインポートし直します。アーカイブ済みセッション録画ファイルを復元するには、最初の方法をお勧めします。不要になったアーカイブ済みファイルは、アーカイブ済みファイルの復元ディレクトリにコピーされたものを削除してください。

Session Recording Brokerは、セッション録画ファイルが元の保存場所に見つからない場合に、アーカイブ済みファイルの復元ディレクトリを使用します。この状況は、プレーヤーが再生のためにセッション録画ファイルを要求したときに発生します。Session Recording Brokerは、まず元の保存場所でセッション録画ファイルを見つけようとします。元の保存場所でファイルが見つからない場合、Session Recording Brokerはアーカイブ済みファイルの復元ディレクトリを確認します。復元ディレクトリにファイルが存在する場合、Session Recording Brokerはそのファイルをプレーヤーに送信して再生します。ファイルが見つからない場合、Session Recording Brokerはファイルが見つからないというエラーをプレーヤーに送信します。

アーカイブ済み録画ファイルをインポートすると、新しい保存パスを含むセッション録画情報がファイルからSession Recordingデータベースに更新されます。アーカイブ済みセッション録画ファイルをインポートしても、セッションが録画されたときの元の保存場所にファイルが戻されるわけではありません。

注:インポートされたセッション録画ファイルは、Session Recordingデータベース内のアーカイブ時刻とアーカイブメモがクリアされます。次回ICLDB ARCHIVEコマンドが実行されると、インポートされたセッション録画ファイルが再度アーカイブされる可能性があります。

ICLDB IMPORTコマンドは、多数のアーカイブ済み録画ファイルをインポートするのに役立ちます。Session Recordingデータベース内の誤ったセッション録画データや欠落しているセッション録画データを修復または更新できます。また、Session Recordingサーバー上でセッション録画ファイルをある保存場所から別の保存場所に移動するのにも役立ちます。ICLDB REMOVEALLコマンドを実行した後、ICLDB IMPORTコマンドを使用してSession Recordingデータベースにセッション録画を再入力できます。

ICLDBユーティリティのIMPORTコマンドには、アーカイブ済み録画ファイルを復元するために使用できるいくつかのパラメーターがあります。

  • /LISTFILES – インポート中にセッション録画ファイルの完全なパスとファイル名を一覧表示します。このパラメーターはオプションです。

  • /RECURSIVE – すべてのサブディレクトリでセッション録画ファイルを検索します。このパラメーターはオプションです。

  • /RELOCATE – RELOCATEパラメーターがない場合、IMPORTコマンドはセッション録画ファイルを完全に解析するため、時間がかかります。RELOCATEパラメーターを使用すると、IMPORTコマンドはセッション録画ファイルのデータベースレコードを単に特定し、そのファイルパスを直接更新します。

  • /L – インポートされたセッション録画ファイルの数に関する結果とエラーをWindowsイベントログに記録します。このパラメーターはオプションです。

  • /F – プロンプトなしでIMPORTコマンドを強制的に実行します。このパラメーターはオプションです。

注:

ICLDBユーティリティのIMPORTコマンドには、録画ファイルを再配置するために使用できるオプションのパラメーターRELOCATEも用意されています。詳しくは、この記事の「セッション録画ファイルを再配置する」セクションを参照してください。

アーカイブされたファイルの復元ディレクトリを使用してセッション録画ファイルを復元する

  1. Session Recordingサーバーがインストールされているサーバーに、ローカル管理者としてログオンします。

  2. Session Recording Playerのプロパティで、アーカイブされたセッション録画ファイルのファイルIDとアーカイブ時刻を特定します。

  3. Session Recording Playerのプロパティで指定されたファイルIDを使用して、バックアップ内のセッション録画ファイルを特定します。各セッション録画のファイル名はi_<FileID>.iclで、FileIDはセッション録画ファイルのIDです。

  4. バックアップからアーカイブされたファイルの復元ディレクトリにセッション録画ファイルをコピーします。アーカイブされたファイルの復元ディレクトリを特定するには:

    1. スタートメニューから、スタート > すべてのプログラム > Citrix® > Session Recording Serverのプロパティを選択します。

    2. Session Recording Serverのプロパティで、ストレージタブを選択します。現在の復元ディレクトリは、アーカイブされたファイルの復元ディレクトリフィールドに表示されます。

ICLDB IMPORTコマンドを使用してセッション録画ファイルを復元する

  1. Session Recordingサーバーがインストールされているサーバーに、ローカル管理者としてログオンします。

  2. コマンドプロンプトを起動します。

  3. 現在の作業ディレクトリから、Session RecordingサーバーのインストールパスのBinディレクトリ(<Session Recording server installation path>\Bin)に変更します。

  4. 次のいずれかを実行します。

    • ICLDB IMPORT /LISTFILES /RECURSIVE /L <directory>コマンドを実行します。ここで、directoryは、セッション録画ファイルを含む1つ以上のディレクトリの名前をスペースで区切ったものです。インポートを確定するには「Y」と入力します。

    • ICLDB IMPORT /LISTFILES /L <file>コマンドを実行します。ここで、fileは、1つ以上のセッション録画ファイルの名前をスペースで区切ったものです。ワイルドカードを使用してセッション録画ファイルを指定することもできます。インポートを確定するには「Y」と入力します。

セッション録画ファイルを再配置する

ロードバランシングやその他の目的で、セッション記録ファイルを別のストレージパスに移動できます。ファイルが引き続き再生可能であることを確認するには、新しいパスをセッション記録データベースに更新する必要があります。これを行うには、ICLDB IMPORT コマンドを使用します。インポートプロセスを高速化するには、ICLDB IMPORT コマンドに RELOCATE パラメーターを追加します。

注:

RELOCATE パラメーターはオプションです。RELOCATE パラメーターがない場合、ICLDB IMPORT コマンドはセッション記録ファイルを完全に解析するため、時間がかかります。RELOCATE パラメーターを使用すると、ICLDB IMPORT コマンドはセッション記録ファイルのデータベースレコードを単に特定し、ファイルパスを直接更新します。

次の手順は、RELOCATE パラメーターを使用して新しいファイルパスをセッション記録データベースに更新する方法を示しています。

  1. 必要に応じて、セッション記録ファイルを別のストレージパスに移動します。

  2. セッション記録サーバーがインストールされているサーバーにローカル管理者としてログオンします。

  3. コマンドプロンプトを起動します。

  4. 現在の作業ディレクトリから、セッション記録サーバーのインストールパスの Bin ディレクトリ (<Session Recording server installation path>\Bin) に変更します。

  5. 次のいずれかを実行します。

    • セッション記録ファイルを含む1つ以上のディレクトリの名前をスペースで区切って指定する directory を使用して、ICLDB IMPORT /LISTFILES /RECURSIVE /RELOCATE /L <directory> コマンドを実行します。インポートを確認するには「Y」と入力します。

    • 1つ以上のセッション記録ファイルの名前をスペースで区切って指定する file を使用して、ICLDB IMPORT /LISTFILES /RELOCATE /L <file> コマンドを実行します。セッション記録ファイルを指定するためにワイルドカードを使用できます。インポートを確認するには「Y」と入力します。

注:

  • RELOCATE パラメーターは、セッション記録データベースにセッション記録ファイルのレコードがすでに存在することを前提としています。
  • セッション記録ファイルは、移動する前に再生可能である必要があります。そうでない場合、RELOCATE パラメーターは役に立ちません。
  • セッション記録ファイルの新しいストレージパスは、セッション記録サーバーによって認識可能である必要があります。これらは、セッション記録サーバーのプロパティストレージタブで試すことができます。