プログラム実行時の .pf ファイルの Atime
前置きはさておき、試しに notepad.exe を実行した時の Atime と、.pf ファイルの Atime を比較してみます。*1
notepad.exe 2006/4/2 10:34:49 NOTEPAD.EXE-336351A9.pf 2006/4/2 10:34:51
イベントログ上では、notepad.exe の実行時刻が「10:34:49」となっていますので、2秒遅れて NOTEPAD.EXE-336351A9.pf の Atime が更新されています。
再度 notepad.exe を何度か実行し、.pf の Atime の変化を確認してみます。
notepad.exeのAtime NOTEPAD.EXE-336351A9.pfのAtime 1 2006/4/2 10:34:49 2006/4/2 10:40:16 2 2006/4/2 10:34:49 2006/4/2 10:45:00 3 2006/4/2 10:34:49 2006/4/2 10:51:05 4 2006/4/2 13:20:27 2006/4/2 13:20:51
1〜3 では、Atime の分解能の影響で notepad.exe の Atime に変化がありませんが、.pf は実行のタイミングで変化していきます。実際には、.pf ファイルは Atime が更新されているということではなく、ファイルの更新(Last Written)が同一時刻で発生している為、先の最終アクセス日時の更新条件“最終書き込み日時”に従って更新されています。
13:20:27 の実行では、先のプログラム実行より1時間以上経過しているため、notepad.exe の Atime が更新されています。
例えば、notepad.exe の Atime が 13:20:27 の状態で、14:19:17 などに notepad.exe を実行しても、分解能が 1時間以内であるため notepad.exe の Atime は更新されません。分解能 1時間は、ある意味かなり幅が大きいので、イベントログ(セキュリティログ)で実行日時を確認するか*2、.pf ファイルのタイムスタンプも併せて見たほうがよいですね。