web-dev-qa-db-ja.com

NTFSパーティションがいつ作成されたかを判別することは可能ですか?

ドライブが初期化されたのか、NTFSパーティションが作成されたのかを判断するのに非常に役立つクライアントがあります。どこかにタイムスタンプ値がありますか?誰かが何かアドバイスをすることができればそれは大いにありがたいです。

ありがとう!

-スラッシュ

16
slashp

はい。 LAN経由でも実行できます。

CIFSトランザクションは_TRANS2_QFSINFO_であり、情報レベルは _SMB_QUERY_FS_VOLUME_INFO_ です。ボリュームの作成時間を照会するためのネイティブのWindowsNT API関数は ZwQueryVolumeInformationFile() であり、これにより _FILE_FS_VOLUME_INFORMATION_ データ構造が生成されます( CIFS 1、注)FileFsVolumeInformationクラスの情報を求められたとき。このクエリが機能することをテストすることは、Microsoftがドライバー開発者に提供するIFSテスターの一部です。

興味深いことに、ボリュームを照会し、その作成タイムスタンプを人間が読める形式で出力するだけの便利なユーティリティを作成した人はいないようです。1 私が知る限り、最も近い方法は、SysInternalsのprocmonツールを起動して、ストリーミングするボリューム情報クエリを探すことです。おそらく、これを読んでいる誰かが、拡張されたvolコマンドを作成するように促されるでしょう。

はい、ボリューム作成タイムスタンプ正しく初期化されており、ゼロやその他の定数に設定されているだけではありません。私はチェックしていませんが、この情報の保存場所についての私の知識に基づく推測は、_$STANDARD_INFORMATION_ MFTエントリの_$Volume_属性です。他に考えられる場所は3つ考えられますが、それが最も論理的な場所です。


1grawityのユーティリティは、FileTimeToSystemTime()GetTimeFormat()の簡単な使用法を含め、もう少し磨きをかける必要があります。これにより、Win32タイムスタンプを頭の中でデコードできないエンドユーザーが使用できるようになります。 。 ☺

17
JdeBP

NTFSに組み込まれていることを私が知っている「ボリューム作成日」はありません。ただし、ボリュームのルートにあるSystem Volume Informationディレクトリの作成日を確認することで、作成日を非常に正確に概算できるはずです。

8
Andrew Lambert

これはどこかに公開されています。 Windows XP CDを起動して回復コンソールにアクセスすると、そこにあるバージョンのchkdskは、実行が終了した後にボリュームの作成日を出力します。

0
Aaron