Security Lab

サイバーセキュリティに関する調査・研究の記録とナレッジ

USN JOURNALの操作方法

【ノウハウ】

 USN ジャーナルの操作方法を紹介します。

■ジャーナルの状態確認

C:\> fsutil usn queryjournal c:


■ジャーナルの削除

C:\> fsutil usn deletejournal /D C:


【構文】

fsutil usn [createjournal] m = <MaxSize> a = <AllocationDelta><VolumePath>
fsutil usn [deletejournal] {/D |/N} <VolumePath>
fsutil usn [enumdata] <FileRef><LowUSN><HighUSN><VolumePath>
fsutil usn [queryjournal] <VolumePath>
fsutil usn [readdata] <FileName>


【パラメータ】

パラメーター 説明
createjournal USN 変更ジャーナルを作成します。
m=<MaxSize> NTFS が変更ジャーナルに割り当てるバイトの最大サイズを指定します。
a = <AllocationDelta> バイトを末尾に追加し、変更ジャーナルの先頭から削除されるメモリ割り当てサイズを指定します。
<VolumePath> ドライブ文字 (コロンが後に続く) を指定します。
deletejournal 削除またはアクティブな USN 変更ジャーナルを無効にします。*1
/d アクティブな USN 変更ジャーナルを無効にし、変更ジャーナルが無効になっているときに、入出力 (I/O) のコントロールを返します。
/n アクティブな USN 変更ジャーナルを無効に、だけ変更ジャーナルを無効にした後は、I/O 制御を戻します。
enumdata 列挙し、指定した 2 つの境界の間の変更の履歴を一覧表示します。
<FileRef> 列挙を開始すること、ボリューム上のファイル内の位置を表す序数を指定します。
<LowUSN> 返されるレコードをフィルター処理するために使用、USN 値の範囲の下限を指定します。 最終変更ジャーナルの USN 間、 LowUSNとHighUSNメンバーの値に等しいかだけのレコードが返されます。
<HighUSN> 返すファイルをフィルタ リングするために使用、USN 値の範囲の上限を指定します。
queryjournal 現在の変更ジャーナル、レコード、および容量に関する情報を収集するのには、ボリュームの USN データを照会します。
readdata ファイルの USN データを読み取ります。
<FileName> たとえば、ファイル名と拡張子を含むファイルへの完全なパスを指定します C:\documents\filename.txt。

出典: https://technet.microsoft.com/ja-jp/library/cc788042(v=ws.10).aspx


【参考資料】

Windows コマンドプロンプト リファレンス FSUTIL (Maakun, 2008/09/10)
http://www.geocities.jp/maakun_gemini_ab/contents/pc/cmd_reference_fsutil.html

◆USN_RECORD_V2 structure (Microsoft)
https://msdn.microsoft.com/en-us/library/aa365722(VS.85).aspx

◆USN Journal
https://en.wikipedia.org/wiki/USN_Journal

*1:ボリュームの完全 (かつ時間のかかる) のスキャンを実行するには、これらのサービスをする必要がありますので、変更ジャーナルを削除、ファイル レプリケーション サービス (FRS) とインデックス サービスが影響します。 これによって、FRS SYSVOL レプリケーションと、ボリュームをスキャンしている DFS リンク代替間のレプリケーションが悪影響を受けます。