OS:Windows Server 2016
別のフォルダーYへのジャンクションポイントを含むフォルダーXがある場合(同じマシンと同じボリューム上)。次に、ネットワークを介してXを共有する場合、Xに接続するリモートユーザーはYにリダイレクトされますか?
ユースケースは、フォルダーの場所/名前Yが、スケジュールされたタスクの実行後に時々変更される場合です。ただし、リモートユーザーは常に同じネットワーク共有名(X)を使用する必要があります。タスクの実行中にジャンクションポイントを更新できました。
これを達成できる他の技術はありますか?次の方法である程度成功しました。Xという名前のネットワーク共有を再作成または更新し、Yを直接指すようにします。ただし、これはXが最上位の共有である場合にのみ機能します。
次の場合にも機能するソリューションを探しています。XをYの共有とします。次に、YにサブフォルダーAが含まれている場合、リモートユーザーはネットワークパスX\Aを介してそれにアクセスできます。しかし、X\Bなどのネットワークパスを介して、リモートユーザーがマシン上のまったく異なるパスにアクセスできる必要がある場合も必要です。したがって、Y\Bから別のパスへのジャンクションポイントを作成するという私の考え。 (リモートユーザーがX\B経由でアクセスする)
出来ますか?
はい、SMBファイルサーバーは自動的にディレクトリジャンクションをたどります(mklink /j
)ターゲットが共有フォルダーの外部を指している場合でも、透過的に。 (実験的にテストされています。)
一方、サーバーはシンボリックリンクをたどりません(mklink /d
)–クライアントに任され、デフォルトでもフォローされません(このオプションを有効にした場合、ターゲットは明らかに別の共有フォルダーである必要があります)。詳細については、harrymcの投稿を参照してください。
3番目のオプションとして、Windows Serverでは、共有を DFS名前空間 として作成できます。この場合、両方を通常のファイルにすることができます。別のサーバー上であっても、別の共有を指す可能性のあるファイルおよび特別な「参照」ディレクトリ。 (これらの紹介は常にクライアント側で行われ、すべてのWindowsバージョン、libsmbclient、さらにはLinux cifs.koで認識されます。)
フォルダYを別のマシンに移動する必要がある場合は、DFSがおそらく推奨されるオプションです。 (Active Directoryは必要ありませんが、すべてのファイルサーバーで共通の認証を行うと作業が簡単になります。)
デフォルトのクライアントWindowsは、シンボリックリンクのチェーンを禁止します。
その動作を制御するコマンドは fsutil であり、記事 Fsutilの動作 でさらに説明されています。
あなたが探している特定の振る舞いはSymlinkEvaluation
という名前です。コマンドプロンプトにコマンドfsutil behavior query SymlinkEvaluation
を入力すると、現在の値が表示される場合があります。以下は私のWindows10のデフォルトです:
SymlinkEvaluation
の動作コードの名前はL2L
、L2R
、R2L
、およびR2R
で、次のことを意味します。
L
は「ローカル」を表し、R
は「リモート」を表しますL
またはR
-before2
-は、リンク自体の場所を参照します(ターゲットではありません)。 リンクにアクセスしているマシンに対して。L
またはR
-after2
-はリンクの場所を参照します LINK自体が配置されているマシンを基準にしたターゲット。たとえば、SymlinkEvaluation R2L
を設定すると、リンクへのアクセスを制御できるようになります。
R
)L
)したがって、可能性は次のとおりです。
L2L:{0|1}
L2R:{0|1}
R2R:{0|1}
R2L:{0|1}
ここで、0
は無効を表し、1
は有効を表します。
あなたが探しているかもしれないコマンドは:
fsutil behavior set SymlinkEvaluation R2L:1
これはサーバーではなくクライアントで行われることを覚えておいてください。