MKLINK vs. Junction.exe

27

SysInternals hat ein Programm junction.exe , das unter Windows Junctions (aka. Reparse points , aka. Symlinks) erstellt.

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

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.

abelenky
quelle
5
Junctionwurde im September 2010 laut der verlinkten Seite veröffentlicht. Ebenso hat die Seite, für MKLINKdie ein Link besteht, ein Veröffentlichungsdatum im April 2012. Dies scheint stark darauf hinzudeuten, dass sie Junctionerstellt wurde, bevor die mklinkausführbare Datei zu Windows hinzugefügt wurde. (Ich habe nicht weiter darauf eingegangen, wann die beiden ursprünglich erschienen sind, daher ein Kommentar statt einer vollständigen Antwort. Wenn jemand dies erweitern und eine richtige Antwort erstellen möchte, sei mein Gast.)
ein Lebenslauf
Hoppla! Das habe ich vermisst. Es scheint, dass Junction mklink vorausdatiert. Vielen Dank.
abelenky

Antworten:

41

Vergleich

Mark Russinovichs junctionProgramm wurde mit dem Ziel entworfen, Kreuzungspunkte zu erstellen (und zu 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.

Was mklinkist es ein in Windows Vista Befehl in gebaut und später. 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 deloder verwenden rd, je nachdem, ob der Link auf eine Datei oder ein Verzeichnis verweist.


Ein bisschen Geschichte

Vor Vista war es unter Windows-Betriebssystemen nicht möglich, Anschlusspunkte sofort zu erstellen: Entweder mussten Sie eine Kopie des offiziellen Resource Kits besorgen, ein Programm eines Drittanbieters verwenden oder selbst eines erstellen.

2000

Die erste Version des junctionTools 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 linkdProgramm zum Erstellen von Junctions geliefert wird . Ich habe mich daher entschlossen, mein eigenes Werkzeug zum Erstellen von Junctions zu schreiben: Junction .

Quelle: Junction

2005-06

Der mklinkBefehl 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, und von einem Dateisystemfilter, den Sie installieren, um die Daten zu interpretieren und die Datei zu verarbeiten.

Beispielsweise werden Analysepunkte zum Implementieren von NTFS-Dateisystemverknüpfungen und des Microsoft Remote Storage Server (RSS) verwendet.

Quelle: Analysepunkte

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

Ein fester Link 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 Links werden als normale Dateien oder Verzeichnisse angezeigt und können vom Benutzer oder der Anwendung auf genau dieselbe 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 Remote- 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 ohne Administratorberechtigung und alle Nichtadministratoren symbolische Links erstellen.

Quelle: symbolischer NTFS-Link

Weitere Lektüre

und31415
quelle
Wenn Sie eine viel ausführlichere Antwort geben als meine, können Sie auch erwähnen, dass NTFS-Analysepunkte eine weitere Variante sind.
Paradroid
(unter Bezugnahme auf Hard Links, um zu verdeutlichen)
Paradroid
Reine Qualitätsantwort.
sshow
2
NB: Es gibt symbolische "Datei" -Verbindungen ( mklinkunabhängig vom Zieltyp) und es gibt symbolische "Verzeichnis" -Verbindungen (erstellt von mklink /d). Es ist am besten, die richtige Art von Link für das Ziel zu erstellen.
kbolino
Ich bin gespannt, warum junction.exe 2016 aktualisiert wurde und warum es weiterhin mit SysInternals ausgeliefert wird. Sind sie gegen die Abschiebung? Kommen Sie und denken Sie darüber nach, ja, das sind sie ... Wahrscheinlich hat die Hälfte dieser Tools ausreichende Ersetzungen in Windows. Hervorragende ausführliche Antwort.
Adam Plocher
2

Wie bereits in den Kommentaren erwähnt, junction.exekam vor Vista / Winserver 2008 heraus, was mit dem mklinkBefehl kam.

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

Auch junction.exenicht unterstützt NTFS symbolische Links (nur NTFS - Junctions ), die mit Vista / WinServer 2008 und dem eingeführt wurde mlinkBefehl.

paradroid
quelle