MKLINK vs Junction.exe


27

SysInternals a un programme junction.exe qui crée des jonctions (alias. Points d'analyse , alias. Liens symboliques) dans Windows.

Cependant, Windows est également livré avec un mklink qui semble faire la même chose.

Y a-t-il une différence significative?

J'ai tendance à croire que si SysInternals a son propre programme, ils ont vu une lacune dans le programme MKLink standard.


5
Junctiona été publié en septembre 2010, selon la page liée. De même, la page liée MKLINKa une date de publication en avril 2012. Cela semblerait indiquer fortement qu'elle a Junctionété créée avant l' mklinkajout de l' exécutable à Windows. (Je n'ai pas approfondi quand chacun est apparu à l'origine, d'où un commentaire plutôt qu'une réponse complète. Si quelqu'un veut développer cela et créer une réponse correcte, soyez mon invité.)
un CVn

Oops! J'ai manqué ça. Il semble que Junction soit antérieur à mklink. Merci.
abelenky

Réponses:


41

Comparaison

Le junctionprogramme de Mark Russinovich a été conçu avec un objectif précis en tête: créer (et supprimer) des points de jonction. Il a été maintenu au fil des ans, mais aucune nouvelle fonctionnalité n'a été ajoutée jusqu'à présent. La dernière version a été publiée le 4 juillet 2016.

Quant à mklink, c'est une commande intégrée disponible dans Windows Vista et versions ultérieures. Il peut créer des liens matériels, des points de jonction et des liens symboliques. Une fonction de suppression spécifique n'est pas fournie; vous pouvez simplement utiliser les commandes delou rd, selon que le lien pointe vers un fichier ou un répertoire, respectivement.


Un peu d'histoire

Avant Vista, les systèmes d'exploitation Windows ne fournissaient pas de moyen de créer des points de jonction prêts à l' emploi : vous deviez soit obtenir une copie du Kit de ressources officiel , utiliser un programme tiers ou en écrire un vous-même.

2000

La première version de l' junctionoutil a été publiée. Citant le site officiel:

Windows 2000 et versions ultérieures prennent en charge les liens symboliques de répertoire, où un répertoire sert de lien symbolique vers un autre répertoire de l'ordinateur. [...]

Malheureusement, Windows n'est fourni avec aucun outil pour créer des jonctions - vous devez acheter le Kit de ressources Win2K, qui est fourni avec le linkdprogramme de création de jonctions. J'ai donc décidé d'écrire mon propre outil de création de jonction : Junction .

Source: Jonction

2005-06

La mklinkcommande a été introduite avec Windows Vista au début de la phase bêta.

Il était disponible depuis la sortie officielle de la Bêta 1 le 27 juillet 2005. Initialement, il ne pouvait créer que des liens symboliques et des liens physiques; la possibilité de créer des points de jonction est venue plus tard avec le Community Technology Preview (CTP) publié le 19 décembre 2005.

Apparemment, la commande est passée totalement inaperçue jusqu'à un certain temps plus tard en 2006, lorsqu'elle a été révélée pour la première fois. Voici la première référence que j'ai pu trouver:

Vous pouvez maintenant créer un lien symbolique dans Windows Vista.

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

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

[...]

Source: lien symbolique dans Windows Vista

Également:

Malcolm [MSFT] (Expert):
Q: Existe - t-il un moyen très simple de créer un lien symbolique?
R: Ouvrez CMD et tapez 'mklink'. Cet outil vous permettra de créer des jonctions, des liens physiques et des liens symboliques.

Source: NTFS Beta Chat Transcript (12 juillet 2006)


Information additionnelle

Un fichier ou un répertoire peut contenir un point d'analyse, qui est une collection de données définies par l'utilisateur. Le format de ces données est compris par l'application qui stocke les données et un filtre de système de fichiers que vous installez pour interpréter les données et traiter le fichier.

Par exemple, les points d'analyse sont utilisés pour implémenter les liens du système de fichiers NTFS et le Microsoft Remote Storage Server (RSS).

Source: points de réparation

Il existe trois types de liens de fichiers pris en charge dans le système de fichiers NTFS: les liens matériels, les jonctions et les liens symboliques.

Source: Liens durs et jonctions

Liens durs

Un lien dur est la représentation du système de fichiers d'un fichier par laquelle plus d'un chemin fait référence à un seul fichier dans le même volume. [...] Toutes les modifications apportées à ce fichier sont instantanément visibles pour les applications qui y accèdent via les liens physiques qui le référencent. Toutefois, la taille des entrées d'annuaire et les informations d'attribut sont mises à jour uniquement pour le lien via lequel la modification a été effectuée.

Source: Liens durs et jonctions

Jonctions

Une jonction (également appelée liaison logicielle) diffère d'une liaison matérielle en ce que les objets de stockage auxquels elle fait référence sont des répertoires distincts, et une jonction peut lier des répertoires situés sur différents volumes locaux sur le même ordinateur.

Source: Liens durs et jonctions

Les points de jonction peuvent uniquement être liés à des répertoires sur un volume local; les points de jonction vers des partages distants ne sont pas pris en charge.

Source: point de jonction NTFS

Liens symboliques

Un lien symbolique est un objet de système de fichiers qui pointe vers un autre objet de système de fichiers. L'objet pointé est appelé la cible.

Les liens symboliques sont transparents pour les utilisateurs; les liens apparaissent sous forme de fichiers ou de répertoires normaux et peuvent être utilisés par l'utilisateur ou l'application exactement de la même manière.

Source: Liens symboliques

[Liens symboliques] ont été introduits avec les modifications apportées au système de fichiers NTFS avec Windows Vista , mais disponibles via les pilotes de filtre pour Windows XP .

Contrairement à un point de jonction NTFS (disponible depuis Windows 2000), un lien symbolique peut également pointer vers un fichier ou un chemin réseau SMB distant . Alors que les points de jonction NTFS ne prennent en charge que les chemins absolus sur les lecteurs locaux, les liens symboliques NTFS permettent la liaison à l'aide de chemins relatifs.

Les paramètres de sécurité par défaut de Windows Vista / Windows 7 interdisent aux administrateurs non élevés et à tous les non-administrateurs de créer des liens symboliques.

Source: lien symbolique NTFS

Lectures complémentaires


Si vous voulez faire une réponse beaucoup plus détaillée que la mienne, vous pourriez aussi bien mentionner que les points de réparation NTFS sont encore une autre saveur.
paradroid

(se référant aux liens durs, pour clarifier)
paradroid

Réponse de qualité pure.
sshow

2
NB: Il existe des liens symboliques "fichier" (réalisés par plain mklinkquel que soit le type de cible) et il existe des liens symboliques "répertoire" (réalisés par mklink /d). Il est préférable de créer le bon type de lien pour la cible.
kbolino

Je suis curieux de savoir pourquoi junction.exe a été mis à jour en 2016 et pourquoi continue-t-il de l'expédier avec SysInternals? Sont-ils contre la profanation? À bien y penser, oui, ils le sont ... Probablement la moitié de ces outils ont suffisamment de remplacements dans Windows. Excellente réponse détaillée.
Adam Plocher

2

Comme déjà mentionné dans les commentaires, junction.exeest sorti avant Vista / Winserver 2008, fourni avec la mklinkcommande.

Il est donc inutile de l'utiliser à partir de Vista. Les versions de Windows antérieures à Vista ne sont plus prises en charge de toute façon.

En outre, junction.exene prend pas en charge les liens symboliques NTFS (uniquement les jonctions NTFS ), qui ont été introduits avec Vista / WinServer 2008 et la mlinkcommande.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.