能否透過網路共享追蹤 NTFS 接合點?

能否透過網路共享追蹤 NTFS 接合點?

作業系統:Windows Server 2016

如果我有一個資料夾 X,其中包含到另一個資料夾 Y 的連接點(在同一台電腦和同一磁碟區上)。那麼,如果我透過網路共用 X,連接到 X 的遠端使用者是否會被重定向到 Y?

用例是資料夾位置/名稱 Y 在計劃任務執行後不時發生變化。但我希望遠端用戶始終使用相同的網路共享名稱(X)。我可以在任務執行期間更新連線點。

還有其他技術可以實現這一目標嗎?我使用以下方法取得了一些成功:我重新建立或更新名為 X 的網路共享,並使其直接指向 Y。

我正在尋找一種也適用於以下情況的解決方案:讓 X 成為 Y 的共用。但我還需要這樣的情況:透過網路路徑(例如 X\B),遠端使用者應該能夠存取電腦上完全不同的路徑。因此我的想法是創建一個從 Y\B 到另一條路徑的交會點。 (遠端使用者將透過 X\B 存取)

是否可以?

答案1

是的,SMB 檔案伺服器將自動mklink /j透明地追蹤目錄連線 ( ),即使目標指向共用資料夾之外。 (經過實驗測試。)

另一方面,伺服器不會遵循符號連結 ( mklink /d) – 它們留給客戶端,預設情況下客戶端也不會遵循它們(如果啟用此選項,目標顯然必須是另一個共用資料夾)。請參閱 harrymc 的帖子以了解更多資訊。

作為第三個選項,在 Windows Server 上,您可以建立共用作為DFS命名空間,在該目錄下您可以同時擁有常規文件和特殊的“引用”目錄,這些目錄可能指向另一個共享 - 甚至在另一台伺服器上。 (這些引用始終遵循客戶端,並且所有 Windows 版本、libsmbclient、甚至 Linux cifs.ko 都可以識別它們。)

如果需要將資料夾 Y 移至另一台計算機,DFS 可能是首選。 (它不需要 Active Directory,儘管所有檔案伺服器的通用身份驗證確實使事情變得更容易。)

答案2

預設用戶端 Windows 不允許符號連結鏈。

控制該行為的命令是 fsutil,在文章中進一步記錄 Fsutil 行為

您正在尋找的特定行為名為SymlinkEvaluation。您可以透過在命令提示字元中輸入命令來查看其當前值 fsutil behavior query SymlinkEvaluation。以下是我的 Windows 10 上的預設設定:

在此輸入影像描述

的行為代碼SymlinkEvaluation的名稱為 L2LL2RR2LR2R,意義如下:

  • L代表“本地”,R代表“遠端”
  • 第一個LR--2指的是連結本身的位置(而不是其目標)相對於機器訪問鏈接
  • 第二個LR--2指的是連結的位置相對於 LINK 本身所在機器的目標

例如,設定SymlinkEvaluation R2L意味著您可以控制對連結的存取:

  • 位於遠端電腦上 ( R)
  • 指向同一台遠端電腦上的目標 ( L)

因此,可能性是:

  1. 本地到本地的符號鏈接,L2L:{0|1}
  2. 本地到遠程的符號鏈接,L2R:{0|1}
  3. 遠端到本地符號鏈接,R2R:{0|1}
  4. 遠程到遠程符號鏈接,R2L:{0|1}

其中0代表禁用,1代表啟用。

您可能正在尋找的命令是:

fsutil behavior set SymlinkEvaluation R2L:1

請記住,這是在客戶端而不是伺服器上完成的。

答案3

2022 年 9 月:網路共享連線似乎已停止運作。

https://learn.microsoft.com/en-us/sysinternals/downloads/junction

最後更新:2022 年 7 月 19 日

筆記

Windows 不支援與遠端共用上的目錄的聯結。

過去,我在網路共享伺服器上創建了連接,指向不同的驅動器。一切正常。到目前為止我已經有一段時間沒有使用它了,但是事情壞了。

  • 在客戶端,雙擊連線圖示沒有任何反應—沒有任何顯示或變更。
  • 在客戶端,「屬性」將聯結顯示為資料夾,但它有 0 個位元組和 0 個檔案。
  • 右鍵單擊該圖示並選擇“在新視窗中開啟”沒有任何反應。
  • 「映射網路磁碟機」或直接前往 \server\share 都不起作用

在伺服器端,執行這些操作沒有幫助:

  • 為聯結目標設定新共享。
  • 重新開始,建立新的連接,新的共享,重置「安全」選項卡

Windows 10 專業版 21H2 19044.1889 Windows 功能體驗套件 120.2212.4180.0

感謝偉大的微軟打破了另一個生產力功能。

相關內容