Wie macht OneDrive seinen Ordner für ältere Windows-Versionen funktionsunfähig?

58

Nach dem Herbst 2017-Creators-Update für Windows 10 kann auf den OneDrive-Ordner nicht mehr mit früheren Windows-Versionen zugegriffen werden. Diese Kuriosität ist auf der offiziellen Seite beschrieben :

Wenn Sie das Herbst 2017 Creators Update für Windows 10 installiert haben und OneDrive-Dateien mit einem externen Laufwerk synchronisieren, können Sie Ihre OneDrive-Dateien möglicherweise nicht öffnen, wenn Sie das externe Laufwerk auf einen Computer verschieben, auf dem ein älteres Betriebssystem als Herbst 2017 Creators Update ausgeführt wird für Windows 10.

Die vorgeschlagene Problemumgehung lautet "Verwenden Sie einen Computer, auf dem das Erstellerupdate für Herbst 2017 für Windows 10 (oder neuer) ausgeführt wird, um den Inhalt zu öffnen" .

Ich habe das Problem mit Windows 7 erfolgreich reproduziert, indem ich eine Festplatte mit einem OneDrive-Ordner angeschlossen habe, der zuvor mit Windows 10 erstellt wurde. Wenn ich jetzt versuche, etwas mit dem Verzeichnis zu tun (es zu löschen oder cdhinein), erhalte ich eine Fehlermeldung:

The file cannot be accessed by the system.

Es gibt laut FS keine logischen Fehler chkdsk, auch ich bin der Besitzer des Ordners und habe alle Sicherheitsrechte. Keine Prozesse verwenden das Volume. Trotzdem kann ich mit diesem (und einzigem) Ordner nichts anfangen. Was ist der Sperrmechanismus?

Enkryptor
quelle

Antworten:

72

NTFS verfügt über eine Funktion, die als Analysepunkte bezeichnet wird und in der eine Datei oder ein Verzeichnis für eine spezielle Verarbeitung durch das Betriebssystem markiert werden kann. Es wird verwendet, um einige Funktionen zu implementieren - z. B. Volume-Mount-Punkte (die unix-artige Alternative zu Laufwerksbuchstaben); Verknüpfungen und Symlinks; GitVFS-Verzeichnisse mit geringer Dichte; Dateien, die tatsächlich in einem WIM-Image gespeichert sind; Dateien, die auf ein Band oder einen anderen langsamen Speicher ausgelagert wurden; und so weiter.

Neuere Versionen von OneDrive verwenden auch Analysepunkte, um "Online-Dateien" zu implementieren - sie sind zunächst Platzhalter, werden jedoch bei Bedarf heruntergeladen. Frühere Versionen haben dies auf Shell-Ebene getan, was mit vielen Programmen nicht funktioniert hat. Durch die Verwendung eines Analysepunkts und das Verschieben des automatischen Herunterladens in das Kernbetriebssystem können sie von lokalen Dateien kaum unterschieden werden.

Natürlich führen neue Tags zu einem Fehler, wenn über ein älteres Betriebssystem auf den Pfad zugegriffen wird. Der NTFS-Treiber weiß nicht, wie er mit solchen Elementen umgehen soll, und lehnt den Zugriff einfach ab. Es könnte zB ein leeres Verzeichnis anzeigen, aber das könnte schnell zu mehr Schaden führen, wenn das ältere Betriebssystem versucht, darauf zu schreiben.

Sie können fsutil reparsepoint über Cmd verwenden, um das gegebenenfalls an eine Datei oder ein Verzeichnis angehängte Analysepunkt-Tag anzuzeigen.

Grawity
quelle
11
Du hattest recht fsutil reparsepoint query OneDrivezeigte die Daten und fsutil reparsepoint delete OneDrive"entsperrte" erfolgreich das Verzeichnis.
Enkryptor
1
Sind die Analysepunkte nicht erweiterbar / installierbar? Sicherlich unterstützt das Windows-Betriebssystem GitVFS nicht von Haus aus.
usr
3
Das Windows-Betriebssystem hat tatsächlich Änderungen erhalten, um GitVFS zu unterstützen. IIRC hatte immer eine "minimale Win10-Version" -Anforderung. Wie bei OneDrive gehe ich davon aus, dass es nur teilweise unterstützt wird - die Möglichkeit für Benutzer oder benutzerdefinierte Treiber, sich in das Betriebssystem einzuklinken ... Weiß nicht, ob es bedeutet, beliebige Analysepunkte zu unterstützen, oder ob es bedeutet, einen bestimmten Analysepunkt zu unterstützen, aber das zuzulassen Implementierung installierbar sein.
Grawity
4
@usr In Zukunft wird ProjFS wahrscheinlich die unterstützte Option für ähnliche Funktionen sein, da es nur im Benutzermodus implementiert werden kann. Es ist jedoch noch nicht in einer stabilen Version verfügbar. ProjFS selbst ist (war?) Als Dateisystem-Filtertreiber implementiert , der als Erweiterungspunkt für eine Reihe von Windows-Versionen verfügbar war (ich glaube XP). OneDrive selbst verwendet (verwendet?) CldFlt ("Cloud Files Mini Filter Driver").
Bob