PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vista | Win 7: Eigene Dateien auslagern mit Junctions


Panasonic
2009-10-12, 18:42:21
Inspiriert von diesem Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=467208) habe ich heute mal ein wenig herumgespielt und konnte meinen Verdacht bestätigen, dass man das Problem mit Junctions (Verbindungen) lösen kann. Der Weg ist bequem und man braucht nicht in der Registry arbeiten, wie es viele andere Anleitungen vorgeben.

Um Junctions zu erstellen kann man Boardmittel von Vista | Windows 7, Total Commander mit PlugIn "ntfslinks", Sysinternals Junctions oder Link Shell Extension benutzen (und bestimmt noch viele andere).

Ich habe Link Shell Extension benutzt, weil es eine GUI bietet und total simpel in der Bedienung ist.

1. Installiert vcredist und danach Link Shell Extension. Achtet auf die richtigen Version (abhängig von Eurem OS).

2. Aktiviert den integrierten Administrator von Windows Vista | Windows 7 und meldet Euch mit dem Administrator-Konto an.

3. Kopiert das zu verschiebende Userunterverzeichnis (!), also nicht c:\Users, sondern c:\Users\<Benutzername> auf die gewünschte Partition (keine Netzlaufwerke oder -Freigaben verwenden!).

4. Macht einen Rechtsklick auf das Userunterverzeichnis auf der neuen Partition und wählt im Kontextmenü Pick Link Source aus.

5. Geht wieder in das Verzeichnis c:\Users, macht dort einen Rechtsklick und wählt Drop as... und dann Junction.

6. Meldet den integrierten Administrator ab, meldet Euch als normaler Admin an und deaktiviert wieder das Konto des integrierten Administrators.

Die grünen Schritte sind nur notwendig, wenn Ihr nur ein Adminkonto habt und hier die Eigenen Dateien verschieben wollt.

Das System "merkt" nicht, dass der Ordner nicht mehr auf c:\Users liegt. Wundert Euch also nicht, wenn c:\ in der Adressleiste steht, wenn Ihr in Euren Eigenen Dateien hantiert. Daher funktioniert alles weiterhin wie gewohnt, auch Datensicherungen usw.

Achtung: Alles auf eigene Gefahr, ich garantiere für nichts. Außerdem muss man beachten, dass die NTFS Berechtigungen nicht übernommen werden.
Achtung: : Die Junctions innerhalb des Benutzerordners gehen beim kopieren verloren. Ich hatte dadurch keine negaiven Auswirkungen, wer auf Nummer sicher gehen will, sollte die Junctions nachbauen.

Hinweis: Man kann die Junctions sehen, wenn man in den Ordneroptionen "Geschützte Systemdateien" nicht ausblendet.

Panasonic
2009-10-12, 18:45:48
Hier mal Bilder:

Der reale Speicherort ist e:\test, auch wenn dies aus der Adressleiste nicht hervorgeht:
http://www.abload.de/img/adressleiste5a07.png

Hier die Junction auf c:\Users:
http://www.abload.de/img/junctionnzey.png

Der tatsächliche Speicherort der Eigenen Dateien von "Test":
http://www.abload.de/img/real2bcc.png

KillerCookie
2009-10-14, 01:22:51
Hallo,

ich habe mich mal kurz in LSE eingelesen, welches ja ein "Smart Copy" Feature bereitstellt. Du schreibst hier aber nur von normalem Kopieren (meinst du verschieben?) des Benutzerordners. Dabei werden alle Junctions innerhalb des Benutzerordners zerstört (partitionsübergreifendes Kopieren/Verschieben wird vom Explorer nicht unterstützt). Oder sind sie im Beispiel etwa noch vorhanden?

Ohne die Junctions würden einige Lokalisierungen und Kompatibilitätsfeatures entfallen.


BTW:
Windows 7 hält noch ein ganz tolles Feature bereit, welches aber auch nicht gerade zimperlich mit den Junctions umgeht.

Standardmäßig sind alle virtuellen Ordner der Eigenen Dateien (Eigene Bilder usw.) mit einem realen Ordner unter "C:\users\$username\" verknüpft. Windows sieht ja vor, dass man diese Belegung per Eigenschaften der virtuellen Ordner ändert. So weit so gut... wäre da nicht der "Eigene Dokumente" Ordner.

Dieser (so würde man vermuten) ist für Textdokumente bestimmt und daher mit "C:\users\$username\Documents" verbunden. Allerdings existiert eine Junction Namens "C:\users\$username\Eigene Dateien", welche statisch auf den gleichen Ordner linkt. Darüber hinaus liegen im Ordner 3 weitere Junctions (Eigene Bilder, Eigene Musik, Eigene Videos - die Eigenen Dateien von XP) welche wieder statisch auf die zugehörigen Ordner im Users-Verzeichnis zeigen. Der Ordner "Documents" wird also doppelt verwendet.

Verschiebt man nun "Eigene Dokumente" auf eine andere Partition, so zeigt die Junction "Eigene Dateien" ins leere und die 3 darinliegenden Junctions werden gelöscht. Da diese aber ohnenhin statisch sind verlieren sie auch beim verlagern der Ordner "music", "pictures" oder "videos" ihren Sinn. Die Kompatibilität zu einem Programm welche diese nutzt ist dahin.

Ist das so gewollt, oder hat man den Plan nicht bis zum Ende gedacht? Sehe ich etwas falsch? Helft mir... ;)

Anhang (Liste aller Junctions, deutsches x64):

"C:\users\$username\Anwendungsdaten" <==> "C:\Users\$username\AppData\Roaming"
"C:\users\$username\Cookies" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Cookies"
"C:\users\$username\Druckumgebung" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Printer Shortcuts"
"C:\users\$username\Eigene Dateien" <==> "C:\Users\$username\Documents"
"C:\users\$username\Lokale Einstellungen" <==> "C:\Users\$username\AppData\Local"
"C:\users\$username\Netzwerkumgebung" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Network Shortcuts"
"C:\users\$username\Recent" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Recent"
"C:\users\$username\SendTo" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\SendTo"
"C:\users\$username\Startmenü" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Start Menu"
"C:\users\$username\Vorlagen" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Templates"
"C:\users\$username\AppData\Local\Anwendungsdaten" <==> "C:\Users\$username\AppData\Local"
"C:\users\$username\AppData\Local\Temporary Internet Files" <==> "C:\Users\$username\AppData\Local\Microsoft\Windows\Temporary Internet Files"
"C:\users\$username\AppData\Local\Verlauf" <==> "C:\Users\$username\AppData\Local\Microsoft\Windows\History"
"C:\users\$username\AppData\Roaming\Microsoft\Windows\Start Menu\Programme" <==> "C:\Users\$username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs"
"C:\users\$username\Documents\Eigene Bilder" <==> "C:\Users\$username\Pictures"
"C:\users\$username\Documents\Eigene Musik" <==> "C:\Users\$username\Music"
"C:\users\$username\Documents\Eigene Videos" <==> "C:\Users\$username\Videos"


MfG Maik

Panasonic
2009-10-14, 08:16:39
Ich habe kein Problem mit fehlenden Junctions feststellen können (allerdings verschiebe und kopiere ich auch immer im Total Commander). Ich werde das heute Abend aber auch gerne noch mal testen und prüfen.

MfG

Panasonic
2009-10-15, 20:08:55
In meinem Userverzeichnis gab es keine weiteren Junctions. Auch sind bis heute keine Probleme aufgetreten. Man kann das Verfahren also wohl mit einem guten Gewissen empfehlen.

HeldImZelt
2009-10-15, 22:23:09
Die Verknüpfungen verschwinden dadurch und die Auswirkungen sind nicht so einfach absehbar. Es würde mich nicht wundern, wenn einige Links mehrfach verbunden sind, dessen Verbindung dadurch getrennt wird. Man müsste sämtliche Pfade und Verknüpfungen sauber dereferenzieren und validieren, um verbindliche Aussagen treffen zu können. In der derzeitigen Form kann man sich das ganze Userprofil zerschießen, weil die Verknüpfungen unwiderruflich entfernt werden.
http://www.abload.de/img/symlinksz6zw.png

Panasonic
2009-10-16, 20:56:04
Wer auf Nummer sicher gehen will, kann die Junctions ja nachbauen.

KillerCookie
2009-10-17, 13:25:43
Ist eigentlich schon eine Möglichkeit bekannt, wie man bei der Installation den Users-Pfad anpassen kann (unattended Optionen)? So wäre das Problem ja gleich bei der Wurzel gepackt.

Maik