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


16

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

ありがとう!

-slashp


単なるアイデアですが、ボリュームUUIDの計算を逆にして日付/時刻を取得できますか?(私はそれを見つけるためにいくつかの研究を取るだろうし、それがすべてではできないことがありますので、UUIDを生成する方法を知りません。)
クリス・ナバ

1
@ChrisNava:NTFSで使用される一意のIDは128ビットのUUIDではなく、ランダムな64ビットの数値です。(現代のシステムは、いずれのタイプ1時間ベースのUUIDを生成しない、ほかに、タイプ4ランダムベースのUUIDは、プライバシーのために好ましいことがあればタイプ1 UUID、ものの、その後逆転する任意の計算ができないでしょう、タイムスタンプがあります
わかりやすい

回答:


17

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

CIFSトランザクションはでTRANS2_QFSINFOあり、情報レベルはSMB_QUERY_FS_VOLUME_INFOです。ボリュームの作成時間を照会するためのネイティブWindows NT API関数はですZwQueryVolumeInformationFile()。これは、情報FILE_FS_VOLUME_INFORMATIONFileFsVolumeInformationクラスを要求されたときにデータ構造(CIFSのものとほぼ同じ、注)を生成します。このクエリが機能することをテストすることは、Microsoftがドライバー開発者に提供するIFSテスターの一部です。

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

はい、ボリューム作成タイムスタンプ適切に初期化されており、ゼロやその他の定数に設定されているだけではありません。私はチェックしていませんが、この情報の保管場所についての経験に基づいた推測$STANDARD_INFORMATIONは、$VolumeMFTエントリの属性です。私は他に3つの可能な場所を考えることができますが、それは最も論理的な場所です。


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


うわー、私が探していたものだったので、この答えに+1を与えます。残念ながら、私はシステム内部の知識を持つWin32 APIプログラマーではなく、迅速な解決策を探していました。procmonでよく考えました。ありがとうございます!!!
1

7
このような何か?(
ugい

8

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


2
これにより、非常に良い近似が得られます。迅速な対応ありがとうございます!これで、バックアップにドライブが含まれていないことについて誰が責任を負うべきかがわかりました。
スラッシュ

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.