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

下图详细介绍了针对 DFS 命名空间的各种操作对 DFS 命名空间的各种操作 (Active Directory 或 DFS 命名空间的注册表) 数据的影响:



命名空间类型


修改类型


生成的配置更改


Domain


域 DFS 根或链接


Active Directory、注册表


独立


独立根/链接


注册表


域/独立


共享文件夹


文件系统、注册表

使用 dfsutil.exe 实用工具查看 DFS 配置的内容。 Dfsutil 在 Windows Server 2003 和 Windows XP 支持工具包中可用,在通过 服务器管理器 安装分布式文件系统角色服务后,它将包含在 Windows Server 2008 中。 以下数据列出了在 2003) 或 2008) 上运行 dfsutil /root:\\contoso.com\DATA /view 命令 ( (后 dfsutil root \\contoso.com\DATA ,名为“DATA”的 DFS 命名空间/根的配置:

DFS 实用工具版本 5.2 (基于 5.2.3790.3959)

版权所有 (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]

链接名称=“documentation” 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

在“独立”项下,存在服务器托管的特定独立根 () 的子项,并在每个子项中包含托管文件夹/链接的配置数据。

由“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 子树 DistinguishedName

    例如,若要还原域 contoso.com中的所有 DFS 命名空间对象,请键入:

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

    警告

    此操作将影响所有 DFS 命名空间,并将它们返回到备份中包含的状态。

    若要为域中 contoso.com名为“DATA”的根还原单个 DFS 命名空间对象,请键入:

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

    还原对象的子树可确保针对 v1 和 v2 命名空间成功完成操作。

  4. 单击消息框中的“是”以确认命令。

  5. 在权威还原: 和 ntdsutil: 提示处,键入“退出”,然后按 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 根。 有关详细信息,请参阅“域 DFS 根和链接”部分的选项 3。

独立 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 和/或其供应商拒绝并排除所有明示、默示或法定的陈述、保证和条件,包括但不限于与材料有关的所有权、不侵权、令人满意的条件或质量、适销性和特定用途适用性的陈述、保证或条件。