Nicht verstecktes Verzeichnis wird im Explorer nicht angezeigt, aber das Programm, das es erstellt hat, kann darauf zugreifen

26

Ich verwende IMAPSize, um meine Postfächer zu sichern. Der Vorgang .emlspeichert den Inhalt Ihrer Mailbox nur in Dateien auf Ihrer Festplatte. Wie auch immer, das erste Postfach, das ich gesichert habe, wird wie erwartet angezeigt. Der nächste wird jedoch nicht im Explorer angezeigt. Wenn ich ihn in die Adressleiste eingebe, wird mir mitgeteilt, dass er nicht vorhanden ist.

IMAPSize besteht jedoch darauf, dass die Dateien vorhanden sind. (Viele Plattenschreib wurde während des Betriebs durchgeführt werden.) Außerdem wird das Verzeichnis nicht erscheinen im Windows - Verzeichnis Dialog und - wie ich GNU - Tools installiert haben - es zeigt in ls(aber nicht in der nativen dir). Ich kann nicht cdin das Verzeichnis lszugreifen , aber es scheint möglich zu sein, darauf zuzugreifen (und tatsächlich scheinen die Verzeichnisse und Dateien, die ich erwarte, dort zu sein).

Eingabeaufforderungsfenster mit den Listen

Beachten Sie auch, dass der Zeitstempel und die Dateigröße backup.dbin dirund unterschiedlich sind ls -l.

Kurzum: Was ist hier los und wie behebe ich das !?

Xophmeister
quelle
1
Der einzige auffällige Unterschied, den ich sehe, besteht darin, ls -ldass eine merkwürdige Anzahl von Hardlinks zu den "versteckten" Verzeichnissen und Dateien angezeigt wird. Ich weiß nicht, warum das so ist und wie ein Hardlink überhaupt in NTFS-Land interpretiert wird.
Xophmeister
... Nur zur Bestätigung: Ich kann auf die Daten in den "versteckten" Dateien von der Kommandozeile aus mit cat(einem anderen GNU-Coreutil) zugreifen . Auch hier können native Windows-Tools (z. B. type) die Datei nicht einmal finden.
Xophmeister

Antworten:

63

Lassen Sie mich raten: Das Programm, das die Datei erstellt hat, und auch die GNU-Dienstprogramme werden nicht als Administrator ausgeführt.

Zunächst etwas Geschichte. In den Tagen von Windows XP gingen viele Programme davon aus, dass sie immer als Administrator ausgeführt werden und an Orte wie C:\Windowsund C:\Program Files (x86)mit wilder Hingabe schreiben würden . Unter Vista hat Microsoft versucht, weniger Administratoren zu gewinnen, aber Standardbenutzer können nicht an diese Orte schreiben. Sie brauchten diese zweifelhaften Programme, um weiterarbeiten zu können (sonst würden die Leute nicht upgraden). Deshalb haben sie eine magische Funktion namens UAC-Virtualisierung eingeführt .

Programme, die als Standardbenutzer ausgeführt werden, sind möglicherweise der Meinung, dass das Schreiben an wichtige Speicherorte erfolgreich war, aber in Wirklichkeit hat Windows die Daten an einem benutzerspezifischen Speicherort entfernt. Wenn diese Programme in einem Verzeichnis nach Dateien suchen, überprüft Windows, ob sich Dateien im virtuellen Speicher dieses Speicherorts befinden, und fügt sie in diesem Fall der Verzeichnisliste hinzu. (Es gibt äquivalente Funktionen für die Registrierung.)

Es sieht so aus, als ob Ihr Mail-Programm versucht hat, an eine Stelle unter zu schreiben, Program Files (x86)während es als normaler Benutzer ausgeführt wird. Das Schreiben wurde umgeleitet, sodass es nicht an diesen Ort ging. Das Programm kann es immer noch sehen, weil Windows die Illusion dafür aufrecht erhält. Der Explorer sieht es nicht, weil er dem Betriebssystem mitteilt, dass es sich gut verhält und daher keine Umleitung benötigt. Der Befehl der Eingabeaufforderung dirist kein Programm (es ist nur eine Funktion von cmd.exe), daher wird er auch als "gut bekannt" angesehen und daher werden die Kompatibilitätsdateien nicht angezeigt. lsist ein Programm, das offensichtlich nicht bekannt ist, so dass es die Kompatibilitätsdateien anzeigen kann.

Ihre Akte finden Sie hier:

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\IMAPSize\backup

Beim Stöbern VirtualStorewerden Sie möglicherweise überrascht sein, welche Programme sich nicht gut verhalten und das Sicherheitsnetz für die Virtualisierung benötigen.

Wenn Sie die Umleitung beenden möchten, führen Sie das Programm als Administrator aus, oder speichern Sie Ihre Sicherungen an einem Speicherort, an den Sie tatsächlich ohne Administratorrechte schreiben können.

Ben N
quelle
16
Und hier dachte ich, ich kenne Windows. Entweder ist das ein gelungener Aprilscherz, oder ich habe heute etwas Bedeutendes gelernt. Danke, @Ben N!
Aganju
3
@Aganju Vor ein paar Monaten musste ich einem Windows-Benutzer helfen, ein Schlüsselpaar für WinSCP zu erstellen. Und diese wurden auf die gleiche Weise unsichtbar, wie in der Frage beschrieben. Zu der Zeit stellte ich eine Erklärung auf, die der in dieser Antwort ziemlich ähnlich war. Ich habe mir nicht die Mühe gemacht, meine Hypothese zu überprüfen, da das Problem dadurch behoben wurde, dass die Datei stattdessen in das Ausgangsverzeichnis des Benutzers gestellt wurde. Aber zumindest kann ich bestätigen, dass diese Antwort für mich überhaupt nicht wie ein Witz aussieht.
Kasperd
3
Nun, ich werde verdammt sein! Da sind sie alle. Das ist seltsames Verhalten, auch wenn es beabsichtigt ist. Ich dachte, ich hätte einen Dateisystemfehler! ... Dies würde auch erklären, warum meine erste Mailbox-Sicherung angezeigt wird: Das Programm wurde zuerst über das Installationsprogramm ausgeführt ("Möchten Sie jetzt so und so ausführen?") hätte es zu Administratorrechten erhöht; während der "versteckte" Lauf als lokaler Benutzer war.
Xophmeister
1
@Aganju Ich schätze, du hast Vista noch nie viel benutzt. Es gab eine Funktion, mit der Sie virtualisierte Dateien im Explorer anzeigen konnten. weil das Problem für ein paar Jahre ausreichend häufig war. Als Win7 auf den Markt kam, hörte die am häufigsten verwendete Software auf, davon auszugehen, dass sie in Unterordner ihres Installationsverzeichnisses schreiben konnte. und die Funktion wurde in den neuesten Versionen von Windows deutlich weniger sichtbar gemacht oder möglicherweise komplett entfernt.
Dan Neely
4
@ Xophmeister Es ist ein Kompromiss. Wie in der Antwort erwähnt, war das Schreiben von Software in ein eigenes Anwendungsverzeichnis vor Vista beängstigend. Dies ist eine massive Sicherheitslücke, die behoben werden musste. Die Alternativen waren: 1) Verhindern Sie das Schreiben und unterbrechen Sie alle Anwendungen. 2) Verwenden Sie Virtualisierung, um die Dateien an einem sicheren Ort zu speichern. 1) ist offensichtlich unhaltbar und sehr gegen Microsofts SOP, und am Ende würde es nur dazu führen, dass jeder wieder alles unter Administrator läuft wie zuvor. Es kann verwirrend sein, aber es ist immer noch wahrscheinlich die beste Option. Schreiben Sie nicht in gefährliche Verzeichnisse.
Luaan