MKLINKとJunction.exe


27

SysInternalsには、Windowsでジャンクション(別名:再解析ポイント、別名:シンボリックリンク)を作成するjunction.exeプログラムがあります。

ただし、Windows には、同じことを行うように見えるmklinkも付属しています。

大きな違いはありますか?

SysInternalsが独自のプログラムを持っている場合、標準のMKLinkプログラムに欠陥があると私は信じがちです。


5
Junctionリンクされたページによると、2010年9月に公開されました。同様に、リンク先のページMKLINKの公開日は2012年4月です。これはJunctionmklink実行可能ファイルがWindowsに追加される前に作成されたことを強く示しているようです。(私は完全な答えではなく、それぞれが最初に登場したときに、さらに、したがってコメントを掘っていない誰かが私のゲストをこれに拡張し、適切な答えを作成し、になりたい場合。。)
からCVn

おっとっと!私は逃しました。Junctionはmklinkより前の日付であるように見えます。ありがとう。
abelenky

回答:


41

比較

Mark Russinovichのjunctionプログラムは、接合点の作成(および削除)という特定の目標を念頭に置いて設計されました。それは何年も維持されていましたが、新しい機能はこれまで追加されていません。最新バージョンは2016年7月4日にリリースされました。

についてはmklink、Windows Vista以降で使用可能な組み込みコマンドです。ハードリンク、ジャンクションポイント、およびシンボリックリンクを作成できます。特定の削除機能は提供されていません。リンクがファイルを指すかディレクトリを指すかによって、単にdelor rdコマンドを使用できます。


ちょっとした歴史

Vistaより前のWindowsオペレーティングシステムには、すぐにジャンクションポイントを作成する方法がありませんでした。公式のリソースキットのコピーを入手するか、サードパーティのプログラムを使用するか、自分で作成する必要がありました。

2000年

junctionツールの最初のバージョンがリリースされました。公式ウェブサイトを引用:

Windows 2000以降は、ディレクトリシンボリックリンクをサポートします。このディレクトリでは、コンピューター上の別のディレクトリへのシンボリックリンクとして機能します。[...]

残念ながら、Windowsにはジャンクションを作成するためのツールが付属していませんlinkd。ジャンクションを作成するためのプログラムに付属しているWin2Kリソースキットを購入する必要があります。そこで、独自のジャンクション作成ツールであるJunctionを作成することにしました。

出典:ジャンクション

2005-06

このmklinkコマンドは、初期ベータ段階でWindows Vistaで導入されました。

2005年7月27日に出荷された公式のBeta 1から利用できました。当初は、シンボリックリンクとハードリンクしか作成できませんでした。ジャンクションポイントを作成する機能は、2005年12月19日にリリースされたコミュニティテクノロジープレビュー(CTP)によって後から登場しました。

どうやらコマンドは、2006年の後半に初めて公開されるまで、まったく気付かれなかったようです。ここに私が見つけることができた最も早い参照があります:

これで、Windows Vistaでシンボリックリンクを作成できます。

C:\test>ver

Microsoft Windows [Version 6.0.5365]

C:\test>mklink
Creates a symbolic link.

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

[...]

ソース:Windows Vistaのシンボリックリンク

また:

Malcolm [MSFT](エキスパート):
Q:シンボリックリンクを作成する簡単な方法はありますか?
A: CMDを開き、「mklink」と入力します。このツールを使用すると、ジャンクション、ハードリンク、シンボリックリンクを作成できます。

出典:NTFS Beta Chat Transcript(2006年7月12日)


追加情報

ファイルまたはディレクトリには、ユーザー定義データのコレクションである再解析ポイントを含めることができます。このデータの形式は、データを保存するアプリケーションと、データを解釈してファイルを処理するためにインストールするファイルシステムフィルターによって認識されます。

たとえば、再解析ポイントは、NTFSファイルシステムリンクとMicrosoft Remote Storage Server(RSS)を実装するために使用されます。

ソース:再解析ポイント

NTFSファイルシステムでサポートされているファイルリンクには、ハードリンク、ジャンクション、シンボリックリンクの3種類があります。

出典:ハードリンクとジャンクション

ハードリンク

ハードリンクは、複数のパスが同じボリューム内の1つのファイルを参照するファイルのファイルシステム表現です。[...]そのファイルへの変更は、それを参照するハードリンクを介してアクセスするアプリケーションに即座に表示されます。ただし、ディレクトリエントリのサイズと属性情報は、変更が行われたリンクについてのみ更新されます。

出典:ハードリンクとジャンクション

ジャンクション

ジャンクション(ソフトリンクとも呼ばれます)は、参照するストレージオブジェクトが個別のディレクトリであるという点でハードリンクと異なり、ジャンクションは同じコンピューター上の異なるローカルボリュームにあるディレクトリをリンクできます。

出典:ハードリンクとジャンクション

ジャンクションポイントは、ローカルボリューム上のディレクトリにのみリンクできます。リモート共有へのジャンクションポイントはサポートされていません。

ソース:NTFSジャンクションポイント

シンボリックリンク

シンボリックリンクは、別のファイルシステムオブジェクトを指すファイルシステムオブジェクトです。指し示されているオブジェクトは、ターゲットと呼ばれます。

シンボリックリンクはユーザーに対して透過的です。リンクは通常のファイルまたはディレクトリとして表示され、ユーザーまたはアプリケーションはまったく同じ方法で操作できます。

出典:シンボリックリンク

[シンボリックリンク]は、Windows VistaでNTFSファイルシステムに加えられた変更で導入されましたが、Windows XPのフィルタードライバーを介して利用できます。

NTFSジャンクションポイント(Windows 2000以降で使用可能)とは異なり、シンボリックリンクはファイルまたはリモートSMBネットワークパスを指すこともできます。NTFSジャンクションポイントはローカルドライブ上の絶対パスのみをサポートしますが、NTFSシンボリックリンクは相対パスを使用したリンクを許可します。

Windows Vista / Windows 7のデフォルトのセキュリティ設定では、昇格していない管理者とすべての非管理者がシンボリックリンクを作成することは許可されていません。

ソース:NTFSシンボリックリンク

参考文献


あなたが私のものよりもはるかに詳細な答えをしようとしているなら、NTFS Reparse Pointsはさらに別のフレーバーであることを言及するかもしれません。
パラドロイド

(明確にするために、ハードリンクを参照)
パラドロイド

質の高い答え。
sshow

2
注意:「ファイル」シンボリックリンク(mklinkターゲットタイプに関係なくプレーンで作成)と「ディレクトリ」シンボリックリンク(作成mklink /d)があります。ターゲットに対して適切なタイプのリンクを作成することが最善です。
kbolino

Junction.exeが2016年に更新された理由と、なぜSysInternalsで同製品を出荷し続けるのか興味があります。彼らは非難に反対ですか?考えてみてください、そうです...おそらくそれらのツールの半分は、Windowsで十分な代替品があります。優れた詳細な回答。
アダムプロッチャー

2

コメントですでに述べたように、junction.exeVista / Winserver 2008の前に出てきましたmklink。これにはコマンドが付属していました。

したがって、Vista以降で使用する意味はありません。とにかく、Vistaよりも古いバージョンのWindowsはサポートされなくなりました。

また、Vista / WinServer 2008およびコマンドで導入されたNTFSシンボリックリンクNTFSジャンクションのみ)junction.exeはサポートしていません。mlink

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.