「ディレクトリジャンクション」と「ディレクトリシンボリックリンク」?



Directory Junctionvsdirectory Symbolic Link



解決:

ジャンクションは、同じように動作しますが、ディレクトリシンボリックリンクとはまったく同じではありません。主な違いは、リモートサーバーを見ている場合、 ジャンクションはサーバーで処理されますディレクトリシンボリックリンクはクライアントで処理されます 。これは、ローカルファイルシステム上のシンボリックリンクがリモートファイルシステムを指すことができることを意味するという事実に関するマシューのコメントも参照してください。

Aliceという名前のマシンに、ジャンクションポイントを配置するとします。c: myjpとディレクトリのシンボリックリンクc: mysymlink、両方ともc: targetfolder。あなたがアリスを使用している間、あなたはそれらの間の大きな違いに気付かないでしょう。ただし、Bobという名前の別のマシンを使用している場合は、ジャンクションポイント



\ Alice c $ myjpは\アリス c $ targetfolder

しかし、シンボリックリンク



\ Alice c $ mysymlinkは\ Bob c $ targetfolder

(警告:デフォルトでは、システムはリモートボリューム上のシンボリックリンクをたどらないため、ほとんどの場合、2番目の例は実際には次のいずれかになります。 'ファイルが見つかりません' また 「タイプが無効になっているため、シンボリックリンクをたどることができません。」

ディレクトリシンボリックリンクとファイルシンボリックリンクの違いは、1つはディレクトリを表し、もう1つはファイルを表すということです。リンクの作成時にリンクのターゲットが存在する必要はないため、ファイルシステムは、それがディレクトリであることをアプリケーションに通知するかどうかを知る必要があります。



シンボリックリンクの作成には特別な特権(デフォルトでは、昇格されたプロセスでのみ使用可能)が必要ですが、ジャンクションの作成にはファイルシステムへのアクセスのみが必要であることに注意してください。


シンボリックリンクにはより多くの機能があり、ジャンクションは制限があるためほとんどレガシー機能のように見えますが、これらの制限のセキュリティへの影響は、特にジャンクションがシンボリックリンクよりも優先される理由です。 リモートターゲティングはシンボリックリンクをより機能的にしますが、セキュリティプロファイルも向上させますが、ジャンクションはローカルパスに制限されているため、より安全であると見なされる可能性があります。 。したがって、ローカルリンクが必要で、絶対パスを使用できる場合は、ジャンクションを使用することをお勧めします。それ以外の場合は、追加された機能のシンボリックリンクを検討してください。

ここに画像の説明を入力してください

**速度/複雑さの違いに関する記述は、NTFS再解析ポイントに関するウィキペディアのエントリの未確認の記述に基づいています(よく読んでください)。*


その他のNTFSリンクの比較

このトピックに関する他のいくつかの比較がありますが、これらは上記の利点をリストしていないため、ジャンクションを検討するときに誤解を招く可能性があります。

ここから取られた(良い入門書)

ここに画像の説明を入力してください

MKLinkのSS64ページから

ここに画像の説明を入力してください


用語についてのコメント

ジャンクションはシンボリックリンクです

ジャンクションとシンボリックリンクは、処理方法の前述の違いを除けば、実際には同じ方法(リパースポイント)で同じことを行っています。実際、技術的には、ジャンクションはシンボリックリンクであり、ドキュメントでは、ここでの場合のように、ジャンクションをシンボリックリンクと呼ぶ場合があります。ですから、それは用語に関して知っておくべきことです。

NTFS

OPでこれが指定されていても、「シンボリックリンク」はNTFSに固有ではない非常に一般的な用語であることを指摘する価値があります。したがって、具体的には、この比較はNTFSジャンクションとNTFSシンボリックリンクに関するものです。


複雑な話は脳を傷つけます-私はチャートが好きです:

仮定するMyLinkはシンボリックリンクであり、MyJuncはを指すジャンクションです作成されたターゲット。

例えば

ターゲットディレクトリへのシンボリックリンクを作成するためのmklink / D MyLink C: T_Dir

ターゲットディレクトリへのディレクトリジャンクションを作成するためのmklink / J MyJunc C: T_Dir

構文はどこにありますかローカルマシンで入力されたmklink [/ J、/ D] [リンクパス] [ターゲットパス]


リンクパス|ターゲットパス|アクセス時.. | | (ローカル)| (リモート)| | | C: MyLink | C: T_Dir | C: T_Dir | [ローカルに戻る] C: MyJunc | C: T_Dir | C: T_Dir | [リモートにつながる] | | \ Svr  MyLink | C: T_Dir | C: T_Dir | [ローカルに戻る] \ Svr  MyJunc | C: T_Dir | ***ローカルを作成してポイントする必要があります*** | | C: MyLink | \ Sv2  T_Dir | \ Sv2  T_Dir |エラー* 1C: MyJunc | \ Sv2  T_Dir | ***エラー-ローカルを指す必要があります*** | | \ Svr  MyLink | \ Sv2  T_Dir |エラー* 1 \ Svr  MyJunc | \ Sv2  T_Dir | ***ターゲットデバイスを使用してリンクを作成する必要があります***

エラー* 1-ローカルマシン上のリモートシンボリックリンクへのアクセスのブロックを解除した場合、これは機能しますが、ブロックが解除されたローカルマシンでのみ機能します。