Windows 2003 和 2008 伺服器中 DFS 命名空間的復原程式

本文說明在 Windows Server 中復原分散式文件系統命名空間 (DFSN) 的方法。

適用:Windows Server 2012 R2
原始 KB 編號: 969382

快速發佈

快速發佈文章會直接從 Microsoft 支援組織內提供資訊。 此處包含的資訊是為了響應新興或唯一的主題而建立,或是要補充其他 知識庫 資訊。

其他相關資訊

DFS 命名空間的復原程式取決於命名空間設定資料的遺失方式、命名空間的類型 (網域或獨立) ,以及數據的備份類型。 數據可能已透過 DFS 管理工具不當修改、直接在 Active Directory 或登錄內刪除,或已損毀。 組態數據的備份類型包括域控制器的系統狀態備份、DFS 根/命名空間伺服器的備份、透過 dfsutil.exe 公用程式導出的數據,以及 DFS 服務登錄機碼。

背景:

開始復原程式之前,請先判斷 DFS 命名空間遺失是因為意外的系統管理刪除命名空間內容,還是 DFS 設定資料遺失/損毀所造成。

DFSN 復原選項:
獨立 DFSN
登錄資料已刪除嗎?
使用命名空間伺服器的系統狀態備份,請參閱獨立 DFS 根目錄和鏈接的復原選項 1
使用 DFSUTIL 匯出的 DFSN 命名空間複本,請參閱獨立 DFS 根目錄和連結的復原選項 2
重新建立 DFS 命名空間
根或連結共用已刪除?
使用命名空間伺服器的系統狀態備份,請參閱共用資料夾的復原選項 1
使用已儲存的共享組態登錄數據,請參閱共用 Fodlers 的復原選項 2

網域 DFSN
Active Directory 設定資料已刪除嗎?
從備份還原 Active Directory DFS 設定數據,請參閱網域 DFS 根目錄和鏈接的復原選項 1
使用 DFSUTIL 匯出的 DFSN 功能變數名稱空間複本,請參閱 DFS 根目錄和連結的復原選項 2
重新建立命名空間,請參閱 DFS 根目錄和連結的復原選項 3
登錄資料已刪除嗎?
使用命名空間伺服器的系統狀態備份來復原登錄
重新建立命名空間,請參閱 DFS 根目錄和連結的復原選項 3

根或連結共用已刪除?
使用命名空間伺服器的系統狀態備份,請參閱共用資料夾的復原選項 1
使用已儲存的共享組態登錄數據,請參閱共用 Fodlers 的復原選項 2

下圖詳細說明數據 (Active Directory 或 DFS 命名空間伺服器的登錄) 如何受到針對 DFS 命名空間的各種作業所影響:



命名空間類型


修改類型


產生的組態變更


網域


網域 DFS 根目錄或連結


Active Directory、登錄


獨立


獨立根/連結


登錄


網域/獨立


共用資料夾


檔系統、登錄

利用 dfsutil.exe 公用程式來檢視 DFS 組態的內容。 Dfsutil 可在 Windows Server 2003 和 Windows XP 支援工具套件中使用,而且一旦透過 伺服器管理員 安裝分散式文件系統角色服務,它就會包含在 Windows Server 2008 中。 下列數據列出在 200 (3 dfsutil root \\contoso.com\DATA) 或 2008) 上執行命令 dfsutil /root:\\contoso.com\DATA /view (之後,名為 “DATA” 的 DFS 命名空間/根目錄設定:

DFS 公用程式 5.2 版 (建置在 5.2.3790.3959)

Copyright (c) Microsoft Corporation. 著作權所有,並保留一切權利。

具有 1 個連結的網域根目錄 [Blob 大小:704 個字節]

SiteCosting:ENABLED

根名稱=“\CONTOSO\DATA” State=“1” Timeout=“300” Attributes=“64”

Target Server=“2003SERVER1” Folder=“DATA” State=“2”[Site: Default-First-Site-Name]

鏈接名稱=“檔” State=“1” Timeout=“1800”

Target Server=“2003server1” Folder=“documentation” State=“2”[Site: Default-First-Site-Name]

Target Server=“2003server2” Folder=“documentation” State=“2”[Site: Default-First-Site-Name]

具有 1 個連結的根目錄 [Blob 大小:704 個字節]

此 DFS 命名空間包含名為 「Documentation」 的單一資料夾/連結,並包含兩個資料夾/鏈接目標:\\2003server1\documentation 和 \\2003server2\documentation。

DFSUtil 查詢的 DFS 設定數據會儲存在 Active Directory 內的下列位置:

CN=Dfs-Configuration,CN=System,DC=<domain DN>

在 Windows Server 2003 中,每個網域 DFS 根/命名空間都會儲存在 “fTDfs” 物件內,其中包含屬性 “pKT”,其中包含 (命名空間設定、命名空間伺服器、資料夾目標等) 組態數據。 例如,上述 dfsutil.exe 輸出中所列的 「DATA」 命名空間位於此位置的 fTDfs 物件:CN=DATA,CN=Dfs-Configuration,CN=System,DC=<domain DN>。 此物件中任何部分都不應該直接修改。

CN=Dfs-Configuration,CN=System,DC=<domain DN> |_fTDfs

在 Windows Server 2008 中,網域 DFS 根/命名空間可以在「Windows Server 2008 模式」中設定。 在此模式中,組態數據會儲存在 msDFS-NamespaceAnchor 類別物件之下。 類別 「msDFS-Namespacev2」 的物件代表每個根,而每個根目錄都包含代表每個裝載連結的 msDFS-Linkv2 物件。

CN=Dfs-Configuration,CN=System,DC=<domain DN>
|_msDFS-NamespaceAnchor
|_msDFS-Namespacev2
|_msDFS-Linkv2

每個 DFS 命名空間/根伺服器都會利用登錄數據來識別其裝載的根 () 。 如果沒有這項資訊,DFS 服務就不會從 Active Directory 取得設定數據,而且無法裝載根 (的) 。

針對 2003/2008 網域型 DFS 根目錄,此金鑰會儲存根關聯:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\Domain

針對「Windows Server 2008 模式」根目錄,下列索引鍵會儲存根關聯:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\DomainV2

此索引鍵內有伺服器所裝載之每個根目錄的子機碼,並透過兩個值 「LogicalShare」 和 “RootShare” 指定根共用。 “DATA” 根目錄的索引鍵如下所示:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\Domain\DATA

針對獨立 DFS 根目錄,設定數據不會儲存在 Active Directory 內。 設定資料會儲存在下列位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\Standalone

“Standalone” 機碼下方存在伺服器所裝載之特定獨立根 () 子機碼的子機碼,以及每個子機碼內的子機碼,其中包含裝載資料夾/鏈接的組態數據。

“LogicalShare” 和 “RootShare” 登錄值所指定的檔伺服器共用必須存在且可供存取,才能適當地操作 DFS 根目錄。 如果共用遺失或設定了不適當的許可權,則會拒絕存取根目錄。 建議您不要直接編輯這些登錄值。

備份:

若要備份 DFS 命名空間伺服器,需要系統狀態備份。 備份將包含伺服器 DFS 服務的登錄組態。 如果網域型命名空間伺服器也是域控制器,系統狀態也會包含Active Directory 資料庫的備份,其中以網域為基礎的 DFS 命名空間會儲存組態數據。 對於未在域控制器上執行的命名空間伺服器,請確定至少有一個域控制器會定期備份,以避免在域控制器發生失敗時遺失設定數據。 最後,請確定位於伺服器上的 DFS 相關資料夾包含在備份中。

如需系統狀態備份和還原的其他詳細數據,請參閱下列文章:

Windows Server 2003
備份的運作方式

Windows Server 2008
Windows Server 2008 的 Windows Server 備份逐步指南

請注意,Active Directory 系統狀態備份的一般貨架存留期只有 60 天:
Active Directory 系統狀態備份的實用架構

儲存 DFS 設定數據的替代方法是透過 DFSUtil.exe 公用程式。 透過 [匯出] 選項建立的輸出可用來重新建立因意外刪除而遺失的 DFS 設定資訊。

復原:

識別修改的範圍之後,應該執行適當的復原程式。

網域 DFS 根目錄和連結

選項 1 - 從備份還原 Active Directory DFS 設定數據

針對網域型 DFS,透過管理工具修改 DFS 根目錄對命名空間的影響最大。 這是因為每當透過 DFS API 執行修改時,所有根伺服器都會收到變更的通知,並且會視需要更新其登錄。 因此,從備份還原 Active Directory 內的 DFS 設定,也可能需要復原根伺服器登錄的工作。

以授權方式還原 DFS 設定 Blob。 這需要在 DS 還原模式中啟動 DC、從仍然包含有效 DFS 組態複本的備份還原 Active Directory 資料庫、將 DFS 根目錄物件標示為授權,然後在整個網域中複寫。 根據預設,DFS 根目錄會從 PDC FSMO 角色擁有者域控制器取得 DFS 設定數據。 若要防止復寫延遲影響根開始裝載還原命名空間 () 的時間,請考慮使用 PDC FSMO 作為要還原的域控制器。

授權還原程序詳述於下列文章:

執行 Active Directory 對象的授權還原

執行 Active Directory 對象的授權還原

還原 Active Directory:

Windows Server 2003:
從備份還原 Active Directory

  1. 以目錄服務還原模式啟動計算機。
  2. 若要啟動 Windows Server 2003 備份公用程式,請按兩下 [開始],指向 [所有程式],指向 [配件],指向 [系統工具],然後按兩下 [備份]。
  3. 在 [歡迎使用備份或還原精靈] 頁面上,按 [下一步]。
  4. 按兩下 [還原檔案和設定],然後按 [下一步]。
  5. 選取 [系統狀態],然後按 [下一步]。
  6. 在 [完成備份或還原精靈] 頁面上,按兩下 [進階]。
  7. 在 [將檔案還原至] 中,按兩下 [原始位置],然後按 [下一步]。
  8. 按兩下 [將現有的檔案保留 (建議) ],然後按 [下一步]。
  9. 按一下 [完成]。
  10. 當還原程式完成時,按兩下 [關閉],然後按兩下 [否] 以保留在目錄服務還原模式中。

注意事項

當備份程式提示時,請勿重新啟動。 如果執行重新啟動並進行 Active Directory 複寫,域控制器會再次復寫刪除。

Windows Server 2008:
執行 AD DS 的非授權還原

  1. 在 Windows 登入畫面上,按兩下 [切換使用者],然後按兩下 [其他使用者]。

  2. 輸入 .\administrator 作為使用者名稱,輸入伺服器的 DSRM 密碼,然後按 ENTER。

  3. 按兩下 [開始],以滑鼠右鍵按兩下 [命令提示字元],然後按兩下 [以系統管理員身分執行]。

  4. 在命令提示字元處輸入下列命令,然後按 ENTER:

    wbadmin get versions -backuptarget:\<targetDrive>:
    
    -machine:\<BackupComputerName>
    

    其中:

    <targetDrive> 是您想要還原的備份位置。

    <BackupComputerName> 是您要復原備份的計算機名稱。 當您已將多部電腦備份到相同位置,或您在進行備份後重新命名計算機時,此參數非常有用。

  5. 識別您想要還原的版本。 您必須在下一個步驟中完全輸入此版本。

  6. 在命令提示字元中,輸入下列命令 (包裝以) 讀性,然後按 ENTER:

    wbadmin start systemstaterecovery -version:<MM/DD/YYYY-HH:MM>
    
    -backuptarget:<targetDrive>: -machine:<BackupComputerName>
    
    -quiet
    

標示 DFS 設定資料授權:

請務必知道要還原之命名空間 () 的辨別名稱,讓 DFS 根物件 (的) 可以標示為授權。 其格式應為 “CN=<rootname,CN>=DFS-Configuration,CN=System,DC=”,如果任何卷標內有空格,則可能需要以引號括住。

  1. 在 [目錄服務還原模式] 中,按兩下 [開始],按一下[執行],輸入ntdsutil,然後按 ENTER。

  2. 在 ntdsutil: 提示中,輸入授權還原,然後按 ENTER。

  3. 若要還原物件的子樹,請輸入下列命令,然後按 ENTER:

    restore subtree DistinguishedName

    例如,若要還原網域 contoso.com中的所有 DFS 命名空間物件,請輸入:

    restore subtree “CN=Dfs-Configuration,CN=System,DC=contoso,dc=com”

    警告

    所有 DFS 命名空間都會受到這項作業影響,並將其傳回備份中包含的狀態。

    若要在網域 contoso.com中還原名為 「DATA」 根目錄的單一 DFS 命名空間物件,請輸入:

    restore subtree “CN=DATA,CN=Dfs-Configuration,CN=System,DC=contoso,dc=com”

    還原物件的子樹可確保 v1 和 v2 命名空間的作業都能順利完成。

  4. 按兩下訊息框中的 [是] 以確認命令。

  5. 在授權還原: 和 ntdsutil: 提示中,輸入 quit,然後按 ENTER。

  6. 在正常作業模式中重新啟動域控制器。

  7. 允許 Active Directory 複寫足夠的時間在整個網域中複寫物件。

確認所有 DFS 根目錄上的登錄數據

每個網域 DFS 命名空間/根伺服器的位置下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\Domain 都必須有適當的登錄數據,才能正確裝載還原的 DFS 根 (的) 。 如果透過 DFS 管理工具刪除 DFS 命名空間,您可能必須在每個根目錄上手動建立密鑰和 “LogicalShare” 和 “RootShare” 值。 一旦登錄數據就緒,請重新啟動每個根目錄上的 DFS 服務,以重新初始化 DFS 並取得還原的設定數據。

例如,若要為名為 “Data” 的 DFS 命名空間建立 “LogicalShare” 和 “RootShare”,其根目錄的共用資料夾名為 “DataShare”,則會使用下列步驟:

  1. 按兩下 [開始],按兩下 [執行],在 [開啟] 方塊中輸入 regedit ,然後按兩下 [確定]。
  2. 找出並按一下下列登錄子機碼:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfs\Roots\Domain
  3. 以滑鼠右鍵按兩下 [網域],指向 [新增],然後按兩下 [金鑰]。
  4. 輸入 「Data」 作為索引鍵名稱,然後按 ENTER。
  5. 以滑鼠右鍵按兩下 [資料] 索引鍵,指向 [新增],然後按兩下 [字串值]。
  6. 輸入 「LogicalShare」 作為值名稱。
  7. 以滑鼠右鍵按兩下 「LogicalShare」 值,然後按兩下 [修改]。
  8. 在 [值數據] 方塊中,輸入 “DataShare”,然後按兩下 [確定]。
  9. 以滑鼠右鍵按兩下 [資料] 索引鍵,指向 [新增],然後按兩下 [字串值]。
  10. 輸入 「RootShare」 作為值名稱。
  11. 以滑鼠右鍵按兩下 「RootShare」 值,然後按下 [修改]。
  12. 在 [值數據] 方塊中,輸入 “DataShare”,然後按兩下 [確定]。

選項 2 - 如果可以匯出,則匯入 DFS 設定

DFS 組態的匯出是由透過 dfsutil.exe 產生的文字檔和下列命令所組成:

Windows Server 2003:

 dfsutil /root:\\contoso.com\DATA /export:DATA-dfs-Root.txt

Windows Server 2008:

 dfsutil root export \\contoso.com\DATA DATA-dfs-root.txt

若要透過匯出檔案復原命名空間,請執行下列動作:

  1. 如果根目錄不存在,請使用 DFS 管理加以建立。 新增所有適當的根目標。 如果根目錄本身不存在,且不會新增檔案中定義的根目標,Dfsutil.exe 將無法匯入組態。 不過,您可以檢閱導出檔案的內容,以識別應手動新增哪些根目標。

  2. 匯入組態檔,以透過下列命令建立所有裝載的連結:Windows Server 2003:

    dfsutil /root:\\contoso.com\DATA /import: DATA-dfs-Root.txt
    

    Windows Server 2008:

    dfsutil root import set DATA-dfs-Root.txt \\contoso.com\DATA
    

    (其中網域為 contoso.com,則 “DATA” 是根目錄的名稱,而 DATA-dfs-Root.txt 是導出檔案)

    在建立根目錄之前嘗試匯入會導致錯誤「找不到元素」。

    嘗試新增已經有與根目錄相關聯之登錄組態數據的根目標,會導致「裝置尚未準備好使用」或「當該檔案已存在時無法建立檔案」錯誤。若要從受影響的伺服器移除登錄數據,請使用 DFSUtil 內的 [清除] 選項:

    Windows Server 2003:

    dfsutil /clean /server:<servername> /share:<sharename>
    

    Windows Server 2008:

    dfsutil diag clean \\<servername>\<sharename>
    
  3. 確認匯入成功。 您可能必須重新開啟任何 DFS 管理工具,以觀察匯入的連結。

選項 3 - 重新建立命名空間 (的)

視需要重新建立命名空間可能比較容易。 此活動會更新 Active Directory 內的組態和根目錄的登錄。 如果將伺服器新增為根目錄無法指出根目錄已由伺服器裝載,請檢查伺服器的登錄組態,以確定它還沒有原始根目錄的組態數據。 若要移除這類資料,請執行下列命令:

dfsutil /clean /server:servername /share:sharename

(其中 「servername」 是需要新增為新根目標的伺服器,而 「sharename」 是裝載根目錄的共享名稱)

在 Windows Server 2008 上:

dfsutil diag clean \\servername\sharename

Active Directory fTDfs 物件

如果直接刪除 Active Directory 內的 ftDfs 物件,請如「網域 DFS 根和連結」一節的選項 1 所述還原物件。 您應該不需要修復遺失的登錄數據,因為直接刪除 fTDfs 物件是在不使用 DFS API 的情況下執行,而且不會傳送通知至刪除的 DFS 根目錄。

如果 DFS 組態的匯出存在,則此程式會與「網域 DFS 根和連結」一節的選項 2 中的程式類似。

最後,您也可以重新建立 DFS 命名空間,確保每個 DFS 根目錄都已正確清除先前的設定。 See Option 3 of the "Domain DFS Root and Links" section for more details.

獨立 DFS 根目錄和連結

選項 1 - 從備份還原獨立 DFS 設定數據

如果獨立 DFS 命名空間/根伺服器發生設定資料遺失,建議您從備份還原伺服器的系統狀態。 此作業會自動將組態數據還原為適當的狀態。 不建議嘗試修改獨立 DFS 根目錄的登錄。

選項 2 - 如果可以匯出,則匯入 DFS 設定

如果根目錄 DFSUTIL.EXE 匯出存在,則可透過命令匯入:

Windows Server 2003:

dfsutil /root:\\server-name\namespace-name /import: DATA-dfs-Root.txt

Windows Server 2008:

dfsutil root import set DATA-dfs-Root.txt \\contoso.com\DATA

選項 3 - 重新建立命名空間 (的)

視需要重新建立獨立命名空間 () 可能比較容易。

共用資料夾

如果網域型或獨立 DFS 命名空間伺服器遺失 DFS 共用,且 DFS 組態仍然存在,則必須復原共用才能還原 DFS 功能。

選項 1 - 從備份還原獨立 DFS 設定數據

從遺失前所做的備份還原系統狀態。 系統狀態包含伺服器裝載共用的登錄數據。 請確定共用 () 的資料夾 () 也存在於伺服器上。

選項 2 - 從登入復原共享設定資料

如果無法使用 DFS 命名空間伺服器的系統狀態備份,但共用登錄資訊存在,則此資訊可用來還原伺服器的共用設定。 共用和指派的共享權限會儲存在下列登入機碼中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares

若要使用登錄編輯器儲存此登錄機碼,請單擊 [檔案] 功能表上的 [匯出]。

此登錄機碼可以匯入 DFS 命名空間伺服器,或作為共用資料夾共用名和位置的參考,以供手動建立。

若要使用登錄編輯器還原或匯入登錄機碼,請按兩下 [檔案] 選單上的 [匯入]。

復原共享之後,請重新啟動命名空間伺服器的 DFS 服務來初始化命名空間。

免責聲明

Microsoft 和/或其供應商不會針對此網站上所發佈檔和相關圖形中所含資訊的適用性、可靠性或正確性,提出任何表示或擔保, (任何用途的「數據」) 。 這些數據可能包含技術不準確或印刷錯誤,而且可能會隨時修訂而不通知。

在適用法律允許的最大範圍內,Microsoft 和/或其供應商會免責並排除所有明示、隱含或法定的表示法、擔保和條件,包括但不限於代表、擔保或職稱條件、非侵權、令人滿意的條件或品質、適售性與符合特定目的的材料適用性。