.: Daniel Melanchthon :.

Banging your head against a wall uses 150 Calories an hour.

Kein Zugriff auf Verzeichnisse unter Windows Vista?

Kein Zugriff auf Verzeichnisse unter Windows Vista?

  • Comments 22
  • Likes

Immer öfter sehe ich die Frage, warum man selbst als Administrator unter Windows Vista auf bestimmte Verzeichnisse keinen Zugriff hat. Wenn man die Diskussionen ein wenig verfolgt, stellt sich oft heraus, dass die Verzeichnisse mit dem kleinen Pfeil daran gemeint sind. Wer sich mit der neuen Ablagestruktur noch nie beschäftigt hat, äußert dann schon mal schnell interessante Verschwörungstheorien oder fühlt sich als Administrator bevormundet. Nichts von alledem ist hier jedoch der Fall.

Was vielen nicht auffällt, ist die Tatsache, dass diese Verzeichnisse keine echten Verzeichnisse sind. Es handelt sich dabei um NTFS Links, die einen virtuellen Ordner darstellen, der in Wirklichkeit auf einen ganz anderen Pfad verweist. In Windows Vista wird diese Technik bevorzugt verwendet, damit Anwendungen, die nicht die Systemfunktion zum Herausfinden des jeweiligen Pfades benutzen, sondern die Pfade hart kodiert haben, trotzdem unter Windows Vista funktionieren.

Die neue Ablagestruktur kann damit von allen Programmen verwendet werden, die die Systemfuntionen richtig benutzen. Die Anwendungen, die das nicht tun, werden schlichtweg an den neuen Ort geleitet, ohne dass sie etwas davon bemerken.

Soweit zum Hintergrund. Es bleibt die Frage, warum man nun auf diese Links keinen Zugriff hat. Hier ist es wichtig, sich einmal die NTFS Berechtigungen auf diesen Links anzuschauen. Everyone - also allen Benutzern - ist dort Ordner auflisten und Daten lesen verboten. Das bedeutet aber nicht, dass man keinen Zugriff auf die Links hat. Ein kleiner Versuch auf der Kommandozeile zeigt, wie diese Links funktionieren. Nehmen wir zum Beispiel den Ordner My Documents. Wenn ich in meinem Ordner Dokumente einen Unterordner mit dem Namen Test erzeuge, dann sehe ich an der Kommandozeile folgendes:

C:\>dir C:\Users\daniel\Documents\Test
Datenträger in Laufwerk C: ist Vista
Volumeseriennummer: 8451-BEE1

Verzeichnis von C:\Users\daniel\Documents\Test

24.11.2006 15:01 <DIR> .
24.11.2006 15:01 <DIR> ..
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 14.832.345.088 Bytes frei

Diesen Weg nimmt jede Anwendung, die regelkonform den Ablageort meiner eigenen Dateien mit Hilfe der vom System zur Verfügung gestellten Funktionen ermittelt. Wenn die Anwendung aber den Pfad, der unter Windows XP üblich war, hart kodiert hat, dann nutzt sie folgenden Weg:

C:\>dir "C:\Documents and Settings\daniel\My Documents\Test"
Datenträger in Laufwerk C: ist Vista
Volumeseriennummer: 8451-BEE1

Verzeichnis von C:\Documents and Settings\daniel\My Documents\Test

24.11.2006 15:01 <DIR> .
24.11.2006 15:01 <DIR> ..
0 Datei(en), 0 Bytes
2 Verzeichnis(se), 14.832.345.088 Bytes frei

Wie man sieht, merkt die Anwendung von der Umlenkung nichts. Sie funktioniert einfach weiter, weil sie glaubt, im richtigen Verzeichnis zu schreiben, obwohl es unter Windows Vista die falsche Stelle ist. Anstatt die Anwendung hier aber auflaufen zu lassen, wird sie unter Windows Vista über den Link an die richtige Stelle umgeleitet. Diese Links sind also aus Abwärtskompatibilitätsgründen da.

Wer derartige Links selbst für eigene Zwecke erzeugen möchte, kann das unter Windows Vista mit dem mitgelieferten Programm mklink.exe tun:

C:\Users\daniel>mklink
Erstellt eine symbolische Verknüpfung.

MKLINK [[/D] | [/H] | [/J]] Verknüpfung Ziel

/D Erstellt eine symbolische Verknüpfung für ein Verzeichis.
Standardmäßig wird eine symbolische Verknüpfung für
eine Datei erstellt.
/H Erstellt eine feste Verknüpfung anstelle einer
symbolischen Verknüpfung.
/J Erstellt eine Verzeichnisverbindung.
Verknüpfung Gibt den Namen für die symbolischen Verknüpfung an.
Ziel Gibt den Pfad (relativ oder absolut) an, auf den die
neue Verknüpfung verweist.

Bleibt die Frage, warum nun ein Anwender die Links nicht direkt anklicken kann. Der Grund ist dafür trivial: Obwohl NTFS Links schon lange technisch möglich sind, sind die wenigsten Anwendungen darauf vorbereitet, weil diese Links bisher nicht oder nur sehr selten benutzt wurden.

Wenn ich zum Beispiel das Programm TreeSize benutze, um damit den Platzverbrauch der Ordner, Unterordner und Dateien auf dem Laufwerk zu ermitteln, dann kommen dabei völlig falsche Werte heraus, weil das Programm die Links nicht von echten Verzeichnissen unterscheidet und dann doppelt und dreifach zählt oder sich sogar im Kreis drehen kann. Das Verbot für jeden, von Links Ordner auflisten und Daten lesen zu können, sorgt dafür, dass genau das nicht passiert.

Damit die Anwender von diesen Links nicht irritiert werden und vor allem die Übersichtlichkeit von Ordnern wie C:\Users\daniel erhalten bleibt, blendet Windows Vista standardmäßig diese Links aus. Das Ausblenden lässt sich über die Einstellungen des Explorers auf dem Ansicht-Tab unter Extras | Ordneroptionen... konfigurieren. Dort findet man die Option Geschützte Systemdateien ausblenden (empfohlen), welche standardmässig aktiviert ist.

Diese Option sollte auch nicht ausgeschaltet werden, weil das Verhalten sich dabei von den Vorgängerversionen unterscheidet. Unter Windows Vista reicht es aus, die versteckten Dateien einblenden zu lassen, wenn man die Systemordner sehen möchte, die bei Windows XP bei gleicher Konfiguration damit noch nicht zu sehen bekam.

Wie man auf dem zweiten Screenshot sieht, ist damit die Übersichtlichkeit gewahrt und trotzdem der Ordner AppData, der normalerweise ausgeblendet ist, sichtbar. Ein weitergehendes Einblenden von geschützten Systemdatein ist meiner Meinung nach hier nicht wirklich sinnvoll - wer es aber unübersichtlich mag, kann natürlich gern die Option deaktivieren :-)

Comments
  • PingBack from http://blog.jensthebrain.de/archives/2006/11/25/vista-admins-geschutzte-systemdateien-ausblenden/

  • Hallo,

    wird durch das Verstecken nicht möglichen Schädlingen Tür und Tor geöffnet ? Vor allem das ja auch dem Virenscanner vorgegaukelt werden kann er habe alle Dateien nach Viren gescannt?

    Grüße

    enno

  • @Enno: Durch das VErstecken wird keinem Schädlilng Tür und Tor geöffnet. Auch ein Virenscanner hat damit keine Probleme. Es handelt sich nur um einen Link.

  • Hallo,

    vielen Dank für diesen echt hilfreichen Beitrag. Ich hatte nach der Installation von Vista einfach aus alter XP-Gewohnheit die Option zum Ausblenden geschützter Systemdateien deaktiviert und wunderte mich über das Ordner- und Sprachwirrwar auf meiner Platte und eben auch über die Zugriffsberechtigungen. Jetzt weiss ich endlich warum das so ist und vor allem dass es so sein soll :-)

  • Wer wissen will, was NTFS-Links sind, und warum man auf diese per default keinen Zugrfiff hat (ähnlich wie unter 2000 und XP mit "System Volume Information" (obwohl diverse Hacker es immer wieder geschafft haben Pornos

  • Wer wissen will, was NTFS-Links sind, und warum man auf diese per default keinen Zugrfiff hat (ähnlich

  • Vorallem für Programmierer und Systemadmins könnte es interessant sein diese Funktion zu deaktiviern ("Geschützte Systemdateien ausblenden"). Sonst hat man den Fall das ein Programm zwar in C:\Programme seine Config findet wenn man aber nachschaut liegt die Config net dort sondern unter C:\Documents\User\Programme\Programmname oder sonst wo.

    Gruß Floyd

  • @Floyd: Das ist zwar eine interessante Theorie, aber nicht wirklich der Fall.

  • @dmelanchthon: Hab von nem einem Arbeitskollegen erfahren das er genau diesen Fall schon mit der CTP hatte.

  • mklink gibt es auch für Windows 2000, XP und 2003. Und zwar hier: http://www.zdnet.de/builder/program/0,39023551,39149226,00.htm

  • mklink zum Erzeugen einer symbolischen Verknüpfung ist klar - aber wie kann man sich die Informationen über bestehende symbolische Verknüpfungen anzeigen lassen?

    Dies wäre z.B. wichtig, wenn man seine eigenen Dateien auf ein anderes Laufwerk verschieben möchte.

    Gruss

    BuckFix

  • Das Anzeigen geht mit dem DIR-Kommando (imho dir /AL). Allerdigs kannst Du damit nicht die Eigenen Dateien auf ein anderes Laufwerk verschieben.

  • leider habe ich nun ein Problem. Meine Spielstände habe ich gespeichert und auf eine CD gebrannt, bevor ich Windows Vista Home Premium installiert habe. Nach der Installation (C/Programm Files/...) wollte ich jetzt die Spielstände in die Ordner kopieren. Mir wird aber der Zugriff verweigert, obwohl ich im Benutzerkonto der Adm.Rechte habe und die Benutzerrechte im Ordner Programm Data geändert habe.

    Kann mir eventuell jemand einen Rat geben?

    Würde mich darüber freuen, zumal ich gerne meine Spiele an der zuvor gespeicherten Stelle wieder aufnehmen würde.

    Viele Grüße,

    Lia

  • Hallo Lia,

    bitte nimm als erstes die Berechtigungsänderung zurück. Das ist keine sinnvolle Aktion und Du richtest damit möglicherweise mehr Schaden an, als Du Nutzen daraus ziehen kannst, wen Du nicht sehr genau weißt, was Du da tust. Sie ist nicht notwendig für das, was Du vorhast. Als zweites beschreib doch bitte einmal etwas genauer, wie Du vorgegangen bist. Du kannst die Spielstände ganz einfach mit dem Windows Explorer zurückkopieren, solange Du nicht den Link, sondern in den richtigen Zielpfad benutzt. Wo lagen die Speilstände auf Deinem alten System genau und wo willst Du sie jetzt hinschieben (genauer Pfad)?

    Es gibt übrigens auch für Windows Vista eigene Newsgroups (zum Beispiel microsoft.public.de.windows.vista.spiele), in denen Du solche Fragen stellen kannst: http://support.microsoft.com/newsgroups/default.aspx.

    VG, Daniel

  • vielen Dank für die Hinweise. Bei Windows XP waren die Spielstände immer in den Ordnern unter C/Programme/Spielname. Dort habe ich sodann den gesamten Ordner mit der Save.Datei gebrannt. Durch eine Neuinstallation von Windows Vista Home Premium waren die Spiele und Anwendungen nicht mehr vorhanden und ich mußte diese alle neu installieren. Den Pfad hat Vista automatisch genommen, unter C/Programm Files/Ordnerspielnamen wie z.B. Passage3. Nun habe ich diese Spiele gesucht, um den alten Spielstand hinzu zu fügen, konnte den Pfad aber nicht finden. Auch in der "Suche" wurden mir nur Verknüpfungen gezeigt. Nachdem ich dann in den Ordnereinstellungen den Haken bei den geschützen Systemdateien nicht anzeigen, entfernt habe, entdeckte ich dann den Ordner Programm Data, Files. Allerdings habe ich keine Chance diesen zu öffnen, um an die Installationsordner meiner Spiele zu kommen. Wäre es sinnvoll, die gerade installierten Spiele wieder zu deinstallieren, um einen anderen Pfad anzugeben, welchen ich erreichen kann?

    Lia

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment