it-swarm.com.de

MKLINK vs. Junction.exe

SysInternals hat ein Programm junction.exe , das Junctions (aka. Analysepunkte (auch bekannt als Symlinks) in Windows.

Windows wird jedoch auch mit einem mklink ausgeliefert, der anscheinend dasselbe tut.

Gibt es einen signifikanten Unterschied?

Ich neige dazu zu glauben, dass SysInternals, wenn sie ein eigenes Programm haben, einen Mangel im Standard-MKLink-Programm sehen.

27
abelenky

Vergleich

Mark Russinovichs Programm junction wurde mit einem bestimmten Ziel entworfen: Knotenpunkte erstellen (und löschen). Es wurde im Laufe der Jahre beibehalten, es wurden jedoch noch keine neuen Funktionen hinzugefügt. Die neueste Version wurde am 4. Juli 2016 veröffentlicht.

Bei mklink handelt es sich um einen integrierten Befehl, der in Windows Vista und höher verfügbar ist. Es können feste Verknüpfungen, Knotenpunkte und symbolische Verknüpfungen erstellt werden. Eine bestimmte Löschfunktion ist nicht vorgesehen. Sie können einfach die Befehle del oder rd verwenden, je nachdem, ob der Link auf eine Datei oder ein Verzeichnis verweist.


Ein bisschen Geschichte

Vor Vista boten Windows-Betriebssysteme keine sofort einsatzbereite Möglichkeit, Abzweigungspunkte zu erstellen: Sie mussten entweder eine Kopie des offiziellen Resource Kit herunterladen, ein Drittanbieter-Paket verwenden. Partyprogramm, oder schreib selbst eins.

2000

Die erste Version des Tools junction wurde veröffentlicht. Zitieren der offiziellen Website:

Windows 2000 und höher unterstützt symbolische Verzeichnisverknüpfungen, wobei ein Verzeichnis als symbolische Verknüpfung zu einem anderen Verzeichnis auf dem Computer dient. [...]

Leider wird Windows ohne Tools zum Erstellen von Junctions ausgeliefert. Sie müssen das Win2K Resource Kit erwerben, das mit dem Programm linkd zum Erstellen von Junctions geliefert wird. Ich habe mich daher entschlossen, mein eigenes Tool zum Erstellen von Junctions zu schreiben: Junction .

Quelle: Junction

2005-06

Der Befehl mklink wurde in der frühen Beta-Phase mit Windows Vista eingeführt.

Es war seit der offiziellen Beta 1 verfügbar, die am 27. Juli 2005 ausgeliefert wurde. Zunächst konnten nur symbolische und harte Links erstellt werden. Die Möglichkeit, Knotenpunkte zu erstellen, wurde später mit der am 19. Dezember 2005 veröffentlichten Community Technology Preview (CTP) eingeführt.

Anscheinend blieb der Befehl bis einige Zeit später im Jahr 2006, als er erstmals veröffentlicht wurde, völlig unbemerkt. Hier ist die früheste Referenz, die ich finden konnte:

Sie können jetzt in Windows Vista eine symbolische Verknüpfung erstellen.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

[...]

Quelle: Symbolischer Link in Windows Vista

Ebenfalls:

Malcolm [MSFT] (Experte):
F: Gibt es eine wirklich einfache Möglichkeit, einen Symlink zu erstellen?
A: Öffnen Sie CMD und geben Sie 'mklink' ein. Mit diesem Tool können Sie Junctions, Hardlinks und symbolische Links erstellen.

Quelle: NTFS Beta Chat Transcript (12. Juli 2006)


Zusätzliche Information

Eine Datei oder ein Verzeichnis kann einen Analysepunkt enthalten, bei dem es sich um eine Sammlung benutzerdefinierter Daten handelt. Das Format dieser Daten wird von der Anwendung verstanden, in der die Daten gespeichert sind, sowie von einem Dateisystemfilter, den Sie installieren, um die Daten zu interpretieren und die Datei zu verarbeiten.

Beispielsweise werden Analysepunkte verwendet, um NTFS-Dateisystemverknüpfungen und den Microsoft Remote Storage Server (RSS) zu implementieren.

Quelle: Reparse Points

Es gibt drei Arten von Dateilinks, die im NTFS-Dateisystem unterstützt werden: Hardlinks, Junctions und symbolische Links.

Quelle: Hard Links and Junctions

Harte Verbindungen

Eine feste Verknüpfung ist die Dateisystemdarstellung einer Datei, bei der mehr als ein Pfad auf eine einzelne Datei in demselben Volume verweist. [...] Alle Änderungen an dieser Datei sind für Anwendungen, die über die darauf verweisenden Hardlinks darauf zugreifen, sofort sichtbar. Die Verzeichniseintragsgröße und die Attributinformationen werden jedoch nur für die Verknüpfung aktualisiert, über die die Änderung vorgenommen wurde.

Quelle: Hard Links and Junctions

Kreuzungen

Eine Junction (auch als Softlink bezeichnet) unterscheidet sich von einer Hardlink darin, dass die von ihr referenzierten Speicherobjekte separate Verzeichnisse sind und eine Junction Verzeichnisse auf verschiedenen lokalen Volumes auf demselben Computer verknüpfen kann.

Quelle: Hard Links and Junctions

Knotenpunkte können nur mit Verzeichnissen auf einem lokalen Volume verknüpft werden. Verbindungspunkte zu Remote-Freigaben werden nicht unterstützt.

Quelle: NTFS-Knotenpunkt

Symbolische Links

Eine symbolische Verknüpfung ist ein Dateisystemobjekt, das auf ein anderes Dateisystemobjekt verweist. Das Objekt, auf das gezeigt wird, wird als Ziel bezeichnet.

Symbolische Links sind für Benutzer transparent. Die Verknüpfungen werden als normale Dateien oder Verzeichnisse angezeigt und können vom Benutzer oder der Anwendung auf genau die gleiche Weise bearbeitet werden.

Quelle: Symbolische Links

[Symbolische Links] wurden mit den Änderungen am NTFS-Dateisystem unter Windows Vista eingeführt, sind jedoch über Filtertreiber für Windows XP verfügbar.

Im Gegensatz zu einem NTFS-Knotenpunkt (verfügbar seit Windows 2000) kann eine symbolische Verknüpfung auch auf eine Datei oder einen entfernten SMB Netzwerkpfad verweisen . Während NTFS-Knotenpunkte nur absolute Pfade auf lokalen Laufwerken unterstützen, ermöglichen die symbolischen NTFS-Verknüpfungen das Verknüpfen unter Verwendung relativer Pfade.

Die Standardsicherheitseinstellungen in Windows Vista/ Windows 7 verhindern, dass Administratoren mit oder ohne Administratorberechtigung symbolische Links erstellen.

Quelle: NTFS symbolischer Link

Weitere Lektüre

40
and31415

Wie bereits in den Kommentaren erwähnt, wurde junction.exe vor Vista/Winserver 2008 veröffentlicht, das mit dem Befehl mklink geliefert wurde.

Daher macht es keinen Sinn, es ab Vista zu verwenden. Versionen von Windows älter als Vista werden ohnehin nicht mehr unterstützt.

Außerdem unterstützt junction.exe keine symbolischen NTFS-Links (nur NTFS-Junctions ) , die mit Vista/WinServer 2008 und dem Befehl mlink eingeführt wurden.

2
paradroid