So lesen Sie die Ausgabe "fsutil usn readjournal C:"

675
Noctis Skytower

Es gibt ein Dienstprogramm, das auf der Microsoft Windows-Befehlszeile aufgerufen werden kann fsutil. Einer der Befehle, die es akzeptiert, ist fsutil usn readjournal <volume pathname>zusammen mit mehreren anderen Argumenten. Gibt es eine Dokumentation zum Lesen der vom Programm erzeugten Daten? Meine spezifischen Interessen sind, wie man die Felder File IDund interpretiert und verwendet Parent file ID. Da File namenicht der vollständige Pfad enthalten ist, ist unklar, wie festgestellt werden soll, ob die Datei basierend auf dem Speicherort von Interesse ist.

Beispiel Record

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 
2

1 Antwort auf die Frage

2
Ben N

Diese Ausgabe entspricht der USN_RECORD_V3Datenstruktur. In Bezug auf die ID-Zeilen hat jedes Objekt auf einem NTFS-Volume einen numerischen Bezeichner. Die Zeile "Datei-ID" gibt Ihnen die ID der von diesem Update betroffenen Datei an. Die "ID der übergeordneten Datei" ist die ID des Verzeichnisses, das sie enthält.

Um einen Pfad zu der Datei zu erhalten, können Sie einen anderen Modus dieses Dienstprogramm verwenden: fsutil file queryFileNameById. Es nimmt einen Volume-Pfad und eine Datei-ID (mit 0xvorangestelltem) und gibt einen vollständigen Pfad zurück. Ich sage "einen" Pfad und nicht "den" Pfad, weil NTFS Hardlinks erlaubt, die der gleichen Datei unterschiedliche Pfade geben. Welcher Pfad in diesem Fall zurückgegeben wird, ist beliebig. Die große Mehrheit der Dateien hat jedoch nur einen Link / Pfad.

Lass uns ein Beispiel machen. Ich habe diesen USN-Rekord:

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 

Verwenden Sie die Datei-ID, um den Pfad zur Datei zu finden:

fsutil file queryFileNameById C:\ 0x00000000000000000005000000170d13 

Das Ergebnis:

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

Anscheinend handelt es sich bei dieser Datei um eine Art Konfigurationsspeicher für die Foto-App. Im Fall Ihres USN-Datensatzes wird die Datei wahrscheinlich jetzt gelöscht. Sie müssen also die übergeordnete ID verwenden, um herauszufinden, wo sie sich befand. Wenn ich nach der übergeordneten ID meiner Datei frage ...

fsutil file queryFileNameById C:\ 0x0000000000000000001200000019ab0e 

... ich bekomme nur den Pfad zum Ordner, nicht die settings.datDatei:

A random link name to this file is \\?\C:\Users\Ben\AppData\Local\Packages\Microsoft.Windows.Photos_8wekyb3d8bbwe\Settings 
Wissen Sie, wie Sie programmgesteuert auf diese Informationen zugreifen können? Ich könnte in Python 3.7 ein Programm schreiben, das die Standardausgabe liest und die Zeilen von "fsutil" analysiert, aber ein Paket, das solche Details bereits verarbeitet, wäre ideal. Noctis Skytower vor 6 Jahren 0
@NoctisSkytower Der Zugriff auf diese Informationen erfolgt in der Regel [mit DeviceIoControl] (https://msdn.microsoft.com/de-de/library/windows/desktop/aa364586 (v = vs.85) .aspx), einem nativen Windows Funktion. [Dieses Python-Tool] (https://github.com/PoorBillionaire/USN-Journal-Parser) könnte jedoch dem entsprechen, wonach Sie suchen. Ben N vor 6 Jahren 0
Ja, das Programm ist mir aufgefallen, aber die Verwendung war nicht klar. Es scheint auch nicht als Unterstützung für die Optionen "wait" und "tail" des Befehls "fsutil usn readjournal" zu gelten. Die Analyse der Standardausgabe scheint momentan die beste Wahl zu sein. Noctis Skytower vor 6 Jahren 0