Hello Tiago Gomes,感謝您在 Microsoft Q&A 社群發問。
DFS 命名空間的遷移策略主要取決於您使用的是網域型命名空間 (Domain-based Namespace) 還是獨立型命名空間 (Standalone Namespace)。為了確保 UNC 路徑在遷移期間保持不變,我們通常會利用多目標伺服器的架構特性來達成零停機 (Zero-downtime) 遷移。以下提供針對這兩種情境的安全遷移標準程序:
如果您使用的是「網域型命名空間」(例如 \\DomainName\Namespace):
因為 UNC 路徑是以網域為基礎,這是最常見且最安全的遷移情況。我們只需要將新伺服器加入為該命名空間的伺服器,待 AD 複寫完成後再將舊伺服器移除,即可無縫轉移。
- 在新伺服器上安裝 DFS 命名空間 角色。
- 開啟 DFS 管理 (DFS Management) 主控台,展開 命名空間 (Namespaces),在您要遷移的命名空間上點擊右鍵,選擇 新增命名空間伺服器 (Add Namespace Server),並將新伺服器加入為根目錄目標。
- 確保 Active Directory 複寫已將 DFS 設定同步到所有網域控制站,並等待用戶端的 DFS 轉介快取 (Referral Cache) 過期並更新,讓用戶端能自動探索到新伺服器的路徑。
- 回到 DFS 管理 主控台,選擇您的命名空間,在 命名空間伺服器 索引標籤下,對舊伺服器點擊右鍵,選擇 移除 (Remove)。
如果您使用的是「獨立型命名空間」(例如 \\OldServerName\Namespace):
由於獨立型命名空間的 UNC 路徑包含舊伺服器的實體主機名稱,要完美保留原有路徑供指令碼使用會比較具挑戰性。我們建議採取匯出 / 匯入,並搭配 DNS 別名的進階因應措施:
- 開啟舊伺服器的命令提示字元 (以系統管理員身分執行),匯出目前的命名空間設定:
dfsutil root export \\OldServerName\Namespace C:\DFS_export.xml
- 將舊伺服器降級、關機或更改主機名稱後,在 DNS 中建立一個與舊伺服器同名的 CNAME 或 A 紀錄 指向新伺服器。為確保新伺服器能夠接受舊名稱的 SMB 連線,您會需要在新伺服器登錄檔中設定
DisableStrictNameChecking(值為 1) 以及註冊對應的 SPN。 - 在新伺服器上安裝 DFS 角色,並匯入剛才的設定:
dfsutil root import set C:\DFS_export.xml \\NewServerName\Namespace
(備註:如果環境允許,強烈建議趁此機會重建為網域型命名空間,並透過群組原則 (GPO) 或登入指令碼逐步將舊有 UNC 路徑轉換為網域型路徑,以避免未來的伺服器硬體綁定限制。)
官方參考文件: