Est-il possible de déterminer quand une partition NTFS a été créée?


16

Nous avons un client où il serait très utile de déterminer QUAND un lecteur était une partition initialisée ou NTFS créée. Existe-t-il une valeur d'horodatage quelque part? Si quelqu'un pouvait donner un conseil, il serait grandement apprécié.

Merci!

-slashp


Juste une idée, mais pourriez-vous inverser le calcul du volume UUID pour obtenir une date / heure? (Je ne sais pas comment l’UUID est généré, il faudrait donc quelques recherches pour le savoir et il se peut que ce ne soit pas possible du tout.)
Chris Nava

1
@ChrisNava: l'ID unique utilisé dans NTFS n'est pas un UUID de 128 bits, mais un nombre aléatoire de 64 bits. (En outre, les systèmes modernes ne génèrent pas non plus d'UUID temporels de type 1; les UUID aléatoires de type 4 sont préférés pour la confidentialité. S'il s'agissait d' un UUID de type 1, aucun calcul ne serait inversé; l'horodatage est stockés à la vue.)
grawity

Réponses:


17

Oui. Vous pouvez même le faire sur un réseau local.

La transaction CIFS est TRANS2_QFSINFOet le niveau d’information est SMB_QUERY_FS_VOLUME_INFO. La fonction native de l'API Windows NT permettant d'interroger l'heure de création d'un volume est ZwQueryVolumeInformationFile()ce qui donne une FILE_FS_VOLUME_INFORMATIONstructure de données (presque identique à celle de CIFS, note) lorsqu'on lui demande la FileFsVolumeInformationclasse d'informations. Le test de cette requête fait partie du testeur IFS fourni par Microsoft aux développeurs de pilotes.

Fait intéressant, personne ne semble avoir écrit un utilitaire pratique qui interroge simplement un volume et imprime son horodatage de création sous une forme lisible par l'homme. 1 Pour autant que je puisse en juger, vous devez activer l' procmonoutil SysInternals et rechercher les requêtes d'informations de volume en continu. Peut-être que quelqu'un lisant ceci sera inspiré pour créer une volcommande améliorée .

Oui, l'horodatage de création du volume est correctement initialisé et ne se limite pas à zéro ou à une autre constante. Je n'ai pas vérifié, mais mon estimation pour l'emplacement de stockage de cette information est l' $STANDARD_INFORMATIONattribut de l' $Volumeentrée MFT. Je peux penser à trois autres endroits possibles, mais c’est le plus logique.


1grawity s » utilitaire a juste besoin d' un peu plus polonais, y compris les utilisations simples FileTimeToSystemTime()et GetTimeFormat(), pour le rendre utilisable pour les utilisateurs finaux qui ne peuvent pas décoder horodatages Win32 dans leur tête. ☺


Wow, je vous donne un +1 pour cette réponse parce que c'était exactement ce que je cherchais. Malheureusement, je ne suis pas un programmeur d'API Win32 connaissant les éléments internes du système et cherchant une solution rapide. Bonne pensée avec le procmon. Merci quand même!!!
slashp

7
Quelque chose comme ça ? (avertissement de code laid)
grawity

8

Je ne connais pas de "date de création de volume" intégrée à NTFS. Toutefois, vous devriez être en mesure d’approcher la date de création assez étroitement en regardant la date de création du System Volume Informationrépertoire à la racine du volume.


2
Cela me donne une très bonne approximation. Merci pour votre réponse rapide! Maintenant, je sais qui est responsable du lecteur qui n’a pas été inclus dans nos sauvegardes :).
slashp

0

Ceci est exposé quelque part. Si vous démarrez un CD Windows XP et accédez à la console de récupération, la version de chkdsk qui s'y trouve imprimera la date de création du volume une fois son exécution terminée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.