Windowsのファイルのタイムスタンプについて学習中です。
LastAccessTime。
ファイルを右クリックしてプロパティを表示すると、
「アクセス日時」というタイムスタンプが見つかりますが、dirコマンドのヘルプだと、最終アクセスと書かれていたり、Webだと最終アクセス日時だったり、最終アクセス時刻だったり、揺らぎがあって、どの言葉を使えばいいやら、ずっと迷っていましたが、分かればいいので気にしないことにしました。これからは、FileInfoのプロパティ名であるLastAccessTimeという名前を使うことにします。
さて、LastAccessTimeですが、typeコマンドでファイルの内容を閲覧しても、更新されませんでしたが、どうやら更新されるされないは、設定次第のようです。
fsutilコマンドで、LastAccessTimeがアクセス時に更新されない設定になっているかどうか確認できます。
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-behavior
使い方は、とても簡単です。
fsutil コマンド ...
fsutilにコマンドを並べていくだけなのですが、次に指定できるコマンドに何があるかは、コマンドを指定しなければ、ヘルプ表示されます。
C:\Users\takk\tmp>fsutil ---- サポートされるコマンド ---- 8dot3name 8dot3name 管理 behavior ファイル システムの動作の制御 dirty ボリュームの dirty ビットの管理 file ファイルに固有のコマンド fsinfo ファイル システム情報 hardlink ハードリンクの管理 objectid オブジェクト ID の管理 quota クォータの管理 repair 自己復旧の管理 reparsepoint 再解析ポイントの管理 resource トランザクション リソース マネージャーの管理 sparse スパース ファイルの制御 transaction トランザクションの管理 usn USN の管理 volume ボリュームの管理 wim 透過的な wim ホスティングの管理 C:\Users\takk\tmp>
次のコマンドにbehaviorを指定します。
C:\Users\takk\tmp>fsutil behavior ---- サポートされている BEHAVIOR コマンド ---- query ファイル システムの behavior パラメーターを照会 set ファイル システムの behavior パラメーターを変更 C:\Users\takk\tmp>
さらに次のコマンドにqueryを指定します。
C:\Users\takk\tmp>fsutil behavior query 使用法 : fsutil behavior query <オプション> <オプション> AllowExtChar BugcheckOnCorrupt Disable8dot3 [<ボリューム パス>] DisableCompression DisableCompressionLimit DisableDeleteNotify DisableEncryption DisableLastAccess DisableSpotCorruptionHandling EncryptPagingFile MemoryUsage MftZone QuotaNotify SymlinkEvaluation 詳細については、"fsutil 8dot3name query /?"を使用してください。 C:\Users\takk\tmp>
最後にDisableLastAccessを指定します。これでLastAccessTimeが更新される設定になっているか確認できます。
C:\Users\takk\tmp>fsutil behavior query disablelastaccess DisableLastAccess = 1 C:\Users\takk\tmp>
DisableLastAccess = 1の場合、LastAccessTimeは更新される設定になってません。
0を設定してみます。設定は、queryの代わりにsetを使います。
C:\Users\takk\tmp>fsutil behavior set disablelastaccess 0 エラー: アクセスが拒否されました。
エラーになりました。管理者権限がないと変更できないようです。プロンプト起動時に右クリックメニューで出てくる「管理者として実行」を選んで実行し、コマンドを入力します。
元のプロンプトで、値が変更されていることが確認できます。
C:\Users\takk\tmp>fsutil behavior query disablelastaccess DisableLastAccess = 0 C:\Users\takk\tmp>
では、LastAccessTimeがtypeコマンドの閲覧後に更新されるか確認してみます。
前回作ったstatコマンドを使いたいので、PowerShell上で実行します。
PS C:\Users\takk\tmp> echo HELLO > abc.txt PS C:\Users\takk\tmp> stat abc.txt ファイル名 abc.txt サイズ 16 作成 2018/06/17 12:04:50 最終アクセス 2018/06/17 12:04:50 最終更新 2018/06/17 12:04:50 PS C:\Users\takk\tmp> type abc.txt HELLO PS C:\Users\takk\tmp> stat abc.txt ファイル名 abc.txt サイズ 16 作成 2018/06/17 12:04:50 最終アクセス 2018/06/17 12:05:11 最終更新 2018/06/17 12:04:50 PS C:\Users\takk\tmp>
確認して満足できたので、設定は戻しておくことにしました。
コメント