torstenv 10 Geschrieben 16. März 2012 Melden Teilen Geschrieben 16. März 2012 Hi! Windows lügt mir die falsche CTime für manche Dateien vor. Wie kann ich die korrekten Werte für die CTime unter Windows auslesen? Auf meinem WSUS Server kam am 14.3. ein neues Update an, das ich mir genauer angesehen habe. WSUS teilt in seiner Konsole korrekt mit, dass die Datei am 14.3. gespeichert wurde (Arrival Date). Suche ich den Patch im Filesystem, finde ich in den Eigenschaften der Datei alle Zeiten (Erstellt, Geändert, Letzter Zugriff) auf 22.2.12 23:42 Uhr. Das ist aber definitiv nicht korrekt, denn die Datei ist erst am 14.3. auf meinem WSUS Server gespeichert worden. Mir ist unter Windows nicht gelungen, den "echten" Zeitstempel herauszufinden, zu dem die Datei dort gespeichert wurde. Dennoch, es ist sicher, dass die Datei erst am 14.3. auf unserem FS abgelegt wurde. Das sieht man in der Arrival-Time in der WSUS Update Tabelle. Aber mir ist es nicht gelungen, dieses Datum dem "normalen" FileSystem für den entsprechenden Patch zu entlocken. Weder über Windows Explorer Dialoge, noch über Power-Shell. Man könnte denken, dass die Daten nunmal so da stehen, daher kann Windows nichts anderes anzeigen, aber das ist nicht so. Ich habe Cygwin auf einer Maschine und siehe da: ------------------------------------------------------------------- $ cd //fs/WSUSContent/61 $ ls -lc D3AD47874138837ED935FA6A93EF431F9D1D6C61.cab -rw-r--r-- 1 torsten mkpasswd 139489 Mar 14 02:04 D3AD47874138837ED935FA6A93EF431F9D1D6C61.cab ------------------------------------------------------------------- -lc ist unter Unix (Cywin eben) die Creation Time. Die Eigenschaften der Datei zeigen im Windows Explorer den 22. Feb (falsch), unter Cygwin den 14.3. (korrekt). Also ist die Info im Filesystem ja doch vorhanden und auch auslesbar!!! Aber wie kriege ich die da mit Windows Bordmitteln raus, anstatt Cygwin? Und warum zeigt mir Windows mit allen Bordmitteln (die ich bisher gefunden habe) die falsche CTime an? T. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 16. März 2012 Melden Teilen Geschrieben 16. März 2012 Weshalb fehlen in WSUS.DE - Datumsstempel im Filesystem passen nicht die Infos bezüglich Cygwin? Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Weshalb fehlen in WSUS.DE - Datumsstempel im Filesystem passen nicht die Infos bezüglich Cygwin? Weil ich das erst später gemerkt habe, dass ich die infos mit Cygwin auslesen kann. Aber danke für den Hinweis, ich werde es da nachtragen. Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 Wikipedia hat mich darauf hingewiesen, dass NTFS 4 Zeiten liefert: Erzeugung Änderung Änderung nach POSIX letzter Zugriff Meine Vermutung ist, dass ich mit Windows Bordmitteln den Zeitstempel "Änderung nach Posix" nicht auslesen kann. Bleibt die Frage: Weiß jemand, wie man an diesen Zeitstempel kommt? Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 16. März 2012 Autor Melden Teilen Geschrieben 16. März 2012 BOOL WINAPI GetFileTime( __in HANDLE hFile, __out_opt LPFILETIME lpCreationTime, __out_opt LPFILETIME lpLastAccessTime, __out_opt LPFILETIME lpLastWriteTime ); Das sind alles die "falschen" Zeiten. Zitieren Link zu diesem Kommentar
torstenv 10 Geschrieben 22. März 2012 Autor Melden Teilen Geschrieben 22. März 2012 Ich habe zwar außer Cygwin kein Tool gefunden, das die gesuchte Zeit her gibt, aber eine API, mit der ich was coden kann: pinvoke.net: ntqueryinformationfile (ntdll) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.