Windows Confidential Verknüpfungsverfolgung

Raymond Chen

Wenn das Ziel einer Verknüpfung verschoben wird, versucht die Windows-Shell, den neuen Speicherort; suchenDies wird als "Auflösen" bezeichnet.die Verknüpfung. Jedoch welche Algorithmus die Shell verwendet, Ziel suchen?

Die Antwort lautet: Es hängt.

Windows 95

Wenn Verknüpfungen in Windows 95 eingeführt wurden, Dateisysteme viel Intelligenz nachverfolgen-Objekt zugeordnet keinen. Die Windows 95-Shell verwendet einen einfachen Suchen Algorithmus, um zu Verlorene Verknüpfung Ziel zu ermitteln: Wenn eine Verknüpfung erstellt ist, werden verschiedene Eigenschaften der das Ziel der Verknüpfung in der Verknüpfungsdatei selbst aufgezeichnet – Eigenschaften wie den Namen der Datei, Dateigröße, Zeitpunkt der Erstellung der Zeit zuletzt geändert, sowie Informationen über das Laufwerk, die Datei enthält.

Diese Eigenschaften aktualisiert wurden, in regelmäßigen Abständen, wenn die Verknüpfung verwendet wird und das Ziel der Verknüpfung fehlende geht, die Shell startet eine Datei mit so viele Eigenschaften wie möglich gemeinsam mit der beabsichtigten Zieldatei gesucht. Wenn Sie eine Datei, die genug das ursprüngliche Ziel ähnelt findet, deklariert es das Ziel als müssen gefunden wurde.

Andere Eigenschaften haben unterschiedliche Bedeutung, aber Erstellungszeit hat die größte Stärke, da diese Eigenschaft ist an eine Datei angefügt bleiben, auch wenn es geändert wurde und auch umbenannt. Datei System tunneling verhindert diese Informationen, die die Datei zugeordnet, selbst wenn Programme unwissentlich auf eine Weise funktionieren, die normalerweise Informationen zerstört hätte.

Die Suche beginnt in dem Verzeichnis, das die Datei letzten bekannten Stelle war. Selbst suchen den Ausgangspunkt kann jedoch etwas Arbeit Wenn das Laufwerk geändert wurde;beispielsweise, wenn das Verknüpfungsziel der auf einem Netzlaufwerk zugeordnet wurde, auf Laufwerk "O"aber jetzt auf Laufwerk "P" zugeordnet ist

Nach das letzten bekannten Verzeichnis suchen, wird die Suche in Unterverzeichnissen;dann nach außen erweitert werden, auf die übergeordnete Verzeichnis und gleichgeordneten Verzeichnisse;dann wird in den Verzeichnis Großeltern, Tanten, Uncles und Cousinen verschoben – ziemlich viel jeder Relative Menschheit bekannt. Wenn die Suche für zwei Minuten mit kein Glück weiterhin auftritt, wird der Aufwand (auch wenn nicht alle potentiellen Verzeichnisse gesucht haben) abgebrochen.

Die NT-Methode

Windows NT-Datei System Leute an die Windows 95 Kontextmenü Auflösungsalgorithmus gesucht und scoffed. " Wir können besser als die Aktionen ausführen: Wir sind objektorientierte! „ Jedes NTFS-Objekt verfügt über einen Objektbezeichner;eine Verknüpfung mit einem Ziel, der auf einem NTFS-Volume zeichnet auch den Objektbezeichner des das Verknüpfungsziel sowie den Objektbezeichner des Laufwerks selbst.

Wenn es Zeit zum Auflösen der Verknüpfung kommt, fragt die Shell der verteilter Überwachung Verbindungsdienst um das ursprüngliche Objekt zu suchen. In einer Domäne kann dies überraschend Ergebnisse wie die Datei zu suchen, auch wenn das Laufwerk von einem Computer übernommen und in ein anderes installiert erzeugen.

Es gibt eine Anzahl Möglichkeiten, die Administratoren den Algorithmus auswirken können, den möchte, dass die Shell verwenden. Wenn Sie das Aktivieren nicht Shellshortcuts beim roaming (LinkResolveIgnoreLinkInfo) Richtlinie verfolgen, die Shell versucht nicht, um das ursprüngliche Laufwerk zu suchen. Das Verknüpfungsziel befand sich auf einem Netzlaufwerk, versucht die Shell nicht die ursprünglichen Netzwerkressource beim Bestimmen der Startposition für die Suche von Windows 95-Format zu lokalisieren. Nur wird davon der Laufwerkbuchstabe; korrekt istWenn es nicht ist, auch geschieht, was passiert.

Diese Richtlinie wurde für Umgebungen erstellt, die einen Pool von identischen Netzwerkressourcen haben, in denen die Last durch ein Anmeldeskript, (das Laufwerk "O" z. B.) eine Verbindung mit einem anderen Server abhängig von der Benutzer herstellen, müssen verteilt wird. Obwohl zwei Benutzer zu zwei physisch auf verschiedenen Servern herstellen, sind Sie logisch identisch. Wenn Sie diese Richtlinie festlegen, wird eine Verknüpfung zu O:\program.exe das Programm gerade auf Laufwerk "O", ausgeführtselbst wenn Laufwerk "O"ist nicht auf die gleiche Netzwerkressource als "verbunden werden, beim Erstellen die Verknüpfung.

Es gibt auch ein paar Richtlinien, mit denen Sie die zwei Speicherort Objekts Algorithmen zu deaktivieren, nachdem der Anfangspunkt hat bestimmt wurde: Die werden nicht die verfolgungsbasierte Methode verwenden, wenn den ausgefallenen NTFS Objekt Überwachung Algorithmus; Auflösen von Shell-Verknüpfungen (NoResolveTrack) Richtlinie deaktiviert werden.Das ist nicht die suchbasierte Methode verwenden, wenn low-tech Windows 95-Suchalgorithmus Auflösen von Shell-Verknüpfungen (NoResolveSearch) Richtlinie deaktiviert werden.

Reparieren fehlerhafte Verknüpfungen ist einer der die undankbare Aufträge der Shell: Personen erkennen nicht selbst, dass Sie auf die Funktion verlassen sind, bis er nicht funktioniert mehr.

Raymond Chen Website, The Old New Thing und seinem gleichnamigen Buch (Addison-Wesley 2007) befassen sich mit Windows-Geschichte und der Win32-Programmierung. Er codiert manchmal Informationen durch (schlecht) in Deutsch übersetzen.