É possível determinar quando uma partição NTFS foi criada?


16

Temos um cliente em que seria muito útil determinar QUANDO uma unidade foi inicializada ou uma partição NTFS criada. Existe um valor de carimbo de data / hora em algum lugar? Se alguém pudesse dar algum conselho, seria muito apreciado.

Obrigado!

-slashp


Apenas uma idéia, mas você poderia reverter o cálculo do volume UUID para obter uma data / hora? (Eu não sei como o UUID é gerado de modo que seria necessário alguma pesquisa para descobrir e pode não ser possível a todos.)
Chris Nava

11
@ChrisNava: o ID exclusivo usado no NTFS não é um UUID de 128 bits, mas um número aleatório de 64 bits. (Além disso, os sistemas modernos também não geram UUIDs baseados no tempo do tipo 1; os UUIDs aleatórios do tipo 4 são preferidos para a privacidade. Se fosse um UUID do tipo 1, porém, não haveria computação para reverter; o carimbo de data e hora é armazenado à vista.)
user1686

Respostas:


17

Sim. Você pode até fazer isso através de uma LAN.

A transação CIFS é TRANS2_QFSINFOe o nível de informação é SMB_QUERY_FS_VOLUME_INFO. A função nativa da API do Windows NT para consultar o tempo de criação de um volume é ZwQueryVolumeInformationFile(), que gera uma FILE_FS_VOLUME_INFORMATIONestrutura de dados (quase idêntica à do CIFS, nota) quando solicitada a FileFsVolumeInformationclasse de informações. Testar se essa consulta funciona faz parte do testador IFS que a Microsoft fornece aos desenvolvedores de drivers.

Curiosamente, ninguém parece ter escrito um utilitário útil que apenas consulta um volume e imprime seu carimbo de data / hora de criação na forma legível por humanos. 1 O mais próximo que você vai chegar, até onde eu sei, é acionar a procmonferramenta SysInternals e procurar as consultas de informações de volume que estão sendo transmitidas. Talvez alguém que esteja lendo isso se inspire para criar um volcomando aprimorado .

Sim, o registro de data e hora da criação do volume é inicializado corretamente e não é apenas definido como zero ou alguma outra constante. Não verifiquei, mas meu palpite para o local de armazenamento dessas informações é o $STANDARD_INFORMATIONatributo da $Volumeentrada MFT. Posso pensar em três outros lugares possíveis, mas esse é o mais lógico.


1grawity 'utility s só precisa de um pouco mais polonês, incluindo usos simples de FileTimeToSystemTime()e GetTimeFormat(), para torná-lo utilizável para os usuários finais que não pode decodificar Win32 TimeStamps em suas cabeças. ☺


Uau, eu lhe dou um +1 para esta resposta, porque era exatamente o que eu estava procurando. Infelizmente, eu não sou um programador de API do Win32 com conhecimento dos internos do sistema e estava procurando uma solução rápida. Bom pensamento com o procmon. Obrigado embora !!!
slashp

7
Algo como este ? (Aviso de código feio)
user1686

8

Não há "data de criação do volume" que eu conheço incorporada ao NTFS. No entanto, você deve conseguir aproximar a data de criação de perto observando a data de criação do System Volume Informationdiretório na raiz do volume.


2
Isso me dá uma aproximação muito boa. Obrigado pela sua resposta rápida! Agora eu sei a quem culpar a unidade não estar incluída em nossos backups :).
Janelas

0

Isso está exposto em algum lugar. Se você inicializar um CD do Windows XP e acessar o console de recuperação, a versão do chkdsk imprimirá a data de criação do volume após a execução.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.