von DK2000 » 09.10.2018, 11:08
Das ist auch kein Fehler im Dateisystem, eher ein Designfehler seitens Microsoft:
C:\Dokumente und Einstellungen gibt es nicht. Das ist nur ein 'Junction', eine spezielle Verknüpfung auf NTFS-Ebene.
Die Verknüpfung zeigt auf C:\Users (wird im Explorer als C:\Benutzer angezeigt).
In diesem Ordner gibt es jetzt eine weitere 'Junctions':
C:Users\All Users -> C:\ProgramData
Und in C:\ProgramData gibt es jetzt die meiner Ansicht nach problematische 'Junction':
C:\ProgramData\Anwendungsdaten -> C:\ProgramData
Und damit bildet sich eine unnötige Verschachtelung, die praktisch kein Ende hat.
Das Problem mit Robocopy ist jetzt aber, das es irgendwann mal in der Entwicklung stehen geblieben ist und nicht mehr alle Features vom NTFS kennt bzw. Unterstützt und Junctions gehören dazu. Da diese Junctions transparent zu Benutzerseite sind, erkennt Robocopy dort keine Junction (kennt es ja nicht), sondern einen normalen Ordner und kopiert den als normalen Ordner (in dem Falle den Inhalt C:\ProgramData). Beim Kopieren wird Robocopy dann aber erneut auf den vermeidlichen Ordner Anwendungsdaten treffen und diesen dann erneut kopieren, was wieder zum Inhalt von C:\ProgramData führt usw. Diese Schleife würde nie enden.
Das ist auch kein Fehler im Dateisystem, eher ein Designfehler seitens Microsoft:
[i]C:\Dokumente und Einstellungen[/i] gibt es nicht. Das ist nur ein 'Junction', eine spezielle Verknüpfung auf NTFS-Ebene.
Die Verknüpfung zeigt auf [i]C:\Users[/i] (wird im Explorer als C:\Benutzer angezeigt).
In diesem Ordner gibt es jetzt eine weitere 'Junctions':
[i]C:Users\All Users -> C:\ProgramData[/i]
Und in C:\ProgramData gibt es jetzt die meiner Ansicht nach problematische 'Junction':
[i]C:\ProgramData\Anwendungsdaten -> C:\ProgramData[/i]
Und damit bildet sich eine unnötige Verschachtelung, die praktisch kein Ende hat.
Das Problem mit Robocopy ist jetzt aber, das es irgendwann mal in der Entwicklung stehen geblieben ist und nicht mehr alle Features vom NTFS kennt bzw. Unterstützt und Junctions gehören dazu. Da diese Junctions transparent zu Benutzerseite sind, erkennt Robocopy dort keine Junction (kennt es ja nicht), sondern einen normalen Ordner und kopiert den als normalen Ordner (in dem Falle den Inhalt C:\ProgramData). Beim Kopieren wird Robocopy dann aber erneut auf den vermeidlichen Ordner Anwendungsdaten treffen und diesen dann erneut kopieren, was wieder zum Inhalt von C:\ProgramData führt usw. Diese Schleife würde nie enden.