Como ler a saída “fsutil usn readjournal C:”

2

Existe um utilitário que pode ser executado na linha de comando do Microsoft Windows chamada fsutil . Um dos comandos que ele aceita é fsutil usn readjournal <volume pathname> junto com vários outros argumentos. Existe documentação sobre como ler os dados produzidos pelo programa? Meus interesses específicos são como interpretar e usar os campos File ID e Parent file ID . Como File name não inclui o caminho completo, não está claro como se deve determinar se o arquivo pode ser interessante com base na localização.

Exemplo de registro

Usn               : 9149751384
File name         : Preferences~RF101ac0ae.TMP
File name length  : 52
Reason            : 0x80000200: File delete | Close
Time stamp        : 7/12/2018 11:04:30
File attributes   : 0x00000020: Archive
File ID           : 0000000000000000000500000000a67b
Parent file ID    : 0000000000000000000500000003fa3c
Source info       : 0x00000000: *NONE*
Security ID       : 0
Major version     : 3
Minor version     : 0
Record length     : 128
    
por Noctis Skytower 12.07.2018 / 18:15

1 resposta

2

Essa saída corresponde aos dados USN_RECORD_V3 estrutura. Em relação às linhas de ID, cada objeto em um volume NTFS possui um identificador numérico. A linha "ID do arquivo" fornece o ID do arquivo afetado por essa atualização. o "ID do arquivo pai" é o ID do diretório que o contém.

Para obter um caminho para o arquivo, você pode usar outro modo deste utilitário: fsutil file queryFileNameById . Ele leva um caminho de volume e um ID de arquivo (com 0x prefixados) e retorna um caminho completo. Eu digo "a" caminho e não "o" caminho porque o NTFS permite hardlinks, que dão caminhos diferentes para o mesmo arquivo. Exatamente qual caminho é retornado nesse caso é arbitrário. A grande maioria dos arquivos tem apenas um link / caminho.

Vamos fazer um exemplo. Eu tenho esse registro USN:

Usn               : 46966427728
File name         : settings.dat
File name length  : 24
Reason            : 0x80000001: Data overwrite | Close
Time stamp        : 7/11/2018 21:50:57
File attributes   : 0x00000020: Archive
File ID           : 00000000000000000005000000170d13
Parent file ID    : 0000000000000000001200000019ab0e
Source info       : 0x00000000: *NONE*
Security ID       : 0
Major version     : 3
Minor version     : 0
Record length     : 104

Vamos usar o ID do arquivo para encontrar o caminho para o arquivo:

fsutil file queryFileNameById C:\ 0x00000000000000000005000000170d13

O resultado:

A random link name to this file is \?\C:\Users\Ben\AppData\Local\Packages\Microsoft.Windows.Photos_8wekyb3d8bbwe\Settings\settings.dat

Parece que esse arquivo é algum tipo de armazenamento de configuração para o aplicativo Fotos. No caso do seu registro USN, o arquivo provavelmente já foi excluído agora, então você terá que usar o ID pai para encontrar onde ele estava. Se eu consultar o ID pai do meu arquivo ...

fsutil file queryFileNameById C:\ 0x0000000000000000001200000019ab0e

... recebo apenas o caminho para a pasta, não o arquivo settings.dat :

A random link name to this file is \?\C:\Users\Ben\AppData\Local\Packages\Microsoft.Windows.Photos_8wekyb3d8bbwe\Settings
    
por 12.07.2018 / 19:44