http://support.microsoft.com/kb/216498/


域控制器降级失败后如何删除 Active Directory 中的数据

适用于: Microsoft Windows 2000 ServerMicrosoft Windows 2000 Advanced ServerMicrosoft Windows Server 2003 Standard Edition 显示较多内容


概要


本文介绍在域控制器降级失败后,如何删除 Active Directory 中的数据。

警告:如果使用“ADSI 编辑”管理单元、LDP 实用工具或任何其他 LDAP 版本 3 客户端,并且不恰当地修改了 Active Directory 对象的属性,则可能造成严重问题。要解决这些问题,您可能需要重新安装 Microsoft Windows 2000 Server、Microsoft Windows Server 2003、Microsoft Exchange 2000 Server 或 Microsoft Exchange Server 2003,或者 Windows 和 Exchange 二者都需要重新安装。Microsoft 不保证能够解决因为 Active Directory 对象属性修改不当而导致的问题。修改这些属性需要您自担风险。 


Active Directory 安装向导 (Dcpromo.exe) 用于将服务器提升为域控制器,以及将域控制器降级为成员服务器(或者在该域控制器是域中的最后一个域控制器时,将其降级为工作组中的独立服务器)。作为降级过程的一部分,此向导会将该域控制器的配置数据从 Active Directory 中删除。此数据的形式是“NTDS 设置”对象,在“Active Directory 站点和服务”中作为服务器对象的一个子对象存在。

此信息位于 Active Directory 的下列位置:

CN=NTDS Settings,CN=<servername>,CN=Servers,CN=<sitename>,CN=Sites,CN=Configuration,DC=<domain>...

“NTDS 设置”对象的属性包括:代表如何针对域控制器的复制伙伴标识域控制器的数据、计算机中保存的命名上下文、域控制器是否为全局编录服务器,以及默认查询策略。“NTDS 设置”对象也是一个容器,其中可以包含代表域控制器的直接复制伙伴的子对象。该数据是域控制器在环境中运行所必需的,但域控制器降级后就不再使用该数据了。

如果“NTDS 设置”对象未正确删除(例如,如果在降级尝试中错误地删除“NTDS 设置”对象),则管理员可以手动删除服务器对象的元数据。在 Windows Server 2008 和 Windows Server 2008 R2 中,管理员可以通过删除 Active Directory 用户和计算机管理单元中的服务器对象,删除服务器对象的元数据。

在 Windows Server 2003 和 Windows 2000 Server 中,管理员可以使用 Ntdsutil.exe 实用工具手动删除“NTDS 设置”对象。以下步骤列出了在特定域控制器的 Active Directory 中删除“NTDS 设置”对象的过程。在每个 Ntdsutil 菜单上,管理员键入 help 可以获取有关可用选项的详细信息。

Windows Server 2003 Service Pack 1 (SP1) 或更高版本的 Service Pack – Ntdsutil.exe 的增强版本

包含在 Windows Server 2003 的 Service Pack 1 或更高版本 Service Pack 中的 Ntdsutil.exe 版本已经得到增强,可完成元数据清除过程。在运行元数据清除时,SP1 或更高版本 Service Pack 中包含的 Ntdsutil.exe 版本将执行下列操作:

  • 删除“NTDSA 设置”或“NTDS 设置”主题。

  • 删除现有目标 DC 用于从要删除的源 DC 复制数据的入站 AD 连接对象。

  • 删除计算机帐户。

  • 删除 FRS 成员对象。

  • 删除 FRS 订阅者对象。

  • 尝试获取由要删除的 DC 所拥有的灵活单操作主机角色(又称为灵活单主机操作或 FSMO)。

警告:在手动删除任何服务器的“NTDS 设置”对象之前,管理员还必须确保在降级之后已进行了复制。错误使用 Ntdsutil 实用工具可能导致 Active Directory 功能的部分或全部丧失。

过程 1:仅 Windows Server 2003 SP1 或更高版本 Service Pack

  1. 单击“开始”,指向“程序”,指向“附件”,然后单击“命令提示符”

  2. 在命令提示符处,键入 ntdsutil,然后按 Enter。

  3. 键入 metadata cleanup,然后按 Enter。根据所给出的选项,管理员可以执行删除操作,但在实施删除之前还必须指定另外一些配置参数。

  4. 键入 connections,然后按 Enter。此菜单用于连接将发生这些更改的具体服务器。如果当前登录的用户没有管理权限,可以在建立连接之前指定要使用的替代凭据。为此,请键入 set credsDomainNameUserNamePassword,然后按 Enter。如果密码为空,则键入 null 作为密码参数。

  5. 键入 connect to server servername,然后按 Enter。然后出现一条确认消息,说明已成功建立该连接。如果出现错误,则确认连接中所用的域控制器是否可用,以及您提供的凭据对该服务器是否有管理权限。

    注意:如果尝试连接的服务器正是要删除的服务器,那么在尝试删除步骤 15 提到的服务器时,将显示以下错误消息:

    错误 2094。不能删除 DSA 对象。0x2094

  6. 键入 quit,然后按 Enter。将出现“清除元数据”菜单。

  7. 键入 select operation target,然后按 Enter。

  8. 键入 list domains,然后按 Enter。将显示一个列出目录林中所有域的列表,每一个域都有一个关联的编号。

  9. 键入 select domain number,然后按 Enter;其中 number 是与要删除的服务器所属的域相关联的编号。您选择的域将用于确定要删除的服务器是否为该域的最后一个域控制器。

  10. 键入 list sites,然后按 Enter。将出现一个站点列表,其中每个站点都带有一个关联的编号。

  11. 键入 select site number,然后按 Enter;其中 number 是与要删除的服务器所属站点相关联的编号。将出现一条确认消息,其中列出了所选的站点和域。

  12. 键入 list servers in site,然后按 Enter。将显示一个列出站点中所有服务器的列表,每个服务器都有一个关联的编号。

  13. 键入 select server number,其中 number 是与要删除的服务器关联的编号。将出现一条确认消息,其中会列出所选的服务器、该服务器的域名系统 (DNS) 主机名以及要删除的服务器的计算机帐户位置。

  14. 键入 quit,然后按 Enter。将出现“清除元数据”菜单。

  15. 键入 remove selected server,然后按 Enter。将出现一条确认消息,说明删除成功完成。如果出现以下错误消息,则说明“NTDS 设置”对象可能已从 Active Directory 中删除,原因可能是其他管理员删除了该“NTDS 设置”对象,或者在运行 DCPROMO 实用工具成功删除该对象后又执行了一次此操作。

    错误 8419 (0x20E3)
    找不到 DSA 对象



    注意:当您尝试绑定到要删除的域控制器时,也可能会出现此错误。Ntdsutil 绑定到的域控制器不能是要通过清除元数据来删除的域控制器。

  16. 键入 quit,然后在每个菜单上按 Enter,退出 Ntdsutil 实用工具。将出现一条确认消息,说明连接已成功断开。

  17. 在 DNS 的 _msdcs. 目录林的根域区域中删除 cname 记录。假定要重新安装并重新提升 DC,将创建一个新的“NTDS 设置”对象,它将具有新的 GUID 并在 DNS 中拥有一个匹配的 cname 记录。如果不希望现有 DC 使用旧的 cname 记录。

    最佳做法是删除主机名和其他 DNS 记录。如果已超出为脱机服务器分配的动态主机配置协议 (DHCP) 地址上所剩的租用时间,另一个客户端即可获得问题 DC 的 IP 地址。

  18. 在 DNS 控制台中,使用 DNS MMC 删除 DNS 中的 A 记录。A 记录也称为“主机”记录。若要删除 A 记录,请右键单击 A 记录,然后单击“删除”。另外,请删除 _msdcs 容器中的 cname 记录。为此,请展开“_msdcs”容器,右键单击“cname”,然后单击“删除”

    重要说明:如果这是 DNS 服务器,请在“名称服务器”选项卡下删除对该 DC 的引用。为此,在 DNS 控制台中,在“正向查找区域”下单击该域名,然后从“名称服务器”选项卡中删除该服务器。

    注意:如果有反向查找区域,也要将服务器从这些区域中删除。

  19. 如果删除的计算机是子域中的最后一个域控制器,而且该子域也已删除,请使用 ADSIEdit 删除该子域的 trustDomain 对象。为此,请按照下列步骤操作: 

    1. 单击“开始”,单击“运行”,键入 adsiedit.msc,然后单击“确定”

    2. 展开“域 NC”容器。

    3. 展开“DC=您的域, DC=COM, PRI, LOCAL, NET”

    4. 展开“CN=System”

    5. 右键单击“Trust Domain”对象,然后单击“删除”

  20. 使用“Active Directory 站点和服务”删除域控制器。为此,请按照下列步骤操作: 

    1. 启动“Active Directory 站点和服务”。

    2. 展开“站点”

    3. 展开服务器的站点。默认站点为“Default-First-Site-Name”。

    4. 展开“服务器”

    5. 右键单击域控制器,然后单击“删除”

  21. 当您在 Windows Server 2008 和更高版本中使用 DFS 复制时,Ntdsutil.exe 的当前版本不会清理 DFS 复制对象。在这种情况下,您可以使用 Adsiedit.msc 手动为 Active Directory 域服务 (AD DS) 更正 DFS 复制对象。若要进行此操作,请执行以下步骤:

    1. 在受影响的域中,以域管理员身份登录域控制器。


    2. 启动 Adsiedit.msc。


    3. 连接到默认命名上下文。

    4. 找到下面的 DFS 复制拓扑容器:

      CN=Topology、CN=Domain System Volume、CN=DFSR-Globalsettings、CN=System、DC=Your Domain、DC=Domain Suffix

    5. 删除具有旧计算机名称的 msDFSR-Member CN 对象。

过程 2:Windows 2000(所有版本)、Windows Server 2003 RTM

  1. 单击“开始”,指向“程序”,指向“附件”,然后单击“命令提示符”

  2. 在命令提示符处,键入 ntdsutil,然后按 Enter。

  3. 键入 metadata cleanup,然后按 Enter。根据所给出的选项,管理员可以执行删除操作,但在实施删除之前还必须指定另外一些配置参数。

  4. 键入 connections,然后按 Enter。此菜单用于连接将发生这些更改的具体服务器。如果当前登录的用户没有管理权限,则可以在建立连接之前指定要使用的替代凭据。为此,请键入 set credsDomainNameUserNamePassword,然后按 Enter。如果密码为空,则键入 null 作为密码参数。

  5. 键入 connect to server servername,然后按 Enter。然后出现一条确认消息,说明已成功建立该连接。如果出现错误,则确认连接中所用的域控制器是否可用,以及您提供的凭据对该服务器是否有管理权限。

    注意:如果尝试连接的服务器正是要删除的服务器,那么在尝试删除步骤 15 提到的服务器时,将显示以下错误消息:

    错误 2094。不能删除 DSA 对象。0x2094

  6. 键入 quit,然后按 Enter。将出现“清除元数据”菜单。

  7. 键入 select operation target,然后按 Enter。

  8. 键入 list domains,然后按 Enter。将显示一个列出目录林中所有域的列表,每一个域都有一个关联的编号。

  9. 键入 select domain number,然后按 Enter;其中 number 是与要删除的服务器所属的域相关联的编号。您选择的域将用于确定要删除的服务器是否为该域的最后一个域控制器。

  10. 键入 list sites,然后按 Enter。将显示一个站点列表,每个站点都有一个关联的编号。

  11. 键入 select site number,然后按 Enter;其中 number 是与要删除的服务器所属站点相关联的编号。将出现一条确认消息,其中列出了所选的站点和域。

  12. 键入 list servers in site,然后按 Enter。将显示一个列出站点中所有服务器的列表,每个服务器都有一个关联的编号。

  13. 键入 select server number,其中 number 是与要删除的服务器关联的编号。将出现一条确认消息,其中会列出所选的服务器、该服务器的域名系统 (DNS) 主机名以及要删除的服务器的计算机帐户位置。

  14. 键入 quit,然后按 Enter。将出现“清除元数据”菜单。

  15. 键入 remove selected server,然后按 Enter。将出现一条确认消息,说明删除成功完成。如果出现以下错误消息:

    错误 8419 (0x20E3)
    找不到 DSA 对象

    则说明“NTDS 设置”对象可能已从 Active Directory 中删除,原因可能是其他管理员删除了该“NTDS 设置”对象,或者在运行 Dcpromo 实用工具成功删除该对象后又执行了一次此操作。

    注意:当您尝试绑定到要删除的域控制器时,也可能会出现此错误。Ntdsutil 绑定到的域控制器不能是要通过清除元数据来删除的域控制器。

  16. 在每个菜单中键入 quit,退出 Ntdsutil 实用工具。将出现一条确认消息,说明连接已成功断开。

  17. 在 DNS 的 _msdcs.目录林的根域区域中删除 cname 记录。假定要重新安装并重新提升 DC,则如果使用新 GUID 和 DNS 中匹配的 cname 记录创建一个新“NTDS 设置”对象。您不希望现有 DC 使用旧的 cname 记录。

    最佳做法是删除主机名和其他 DNS 记录。如果已超出为脱机服务器分配的动态主机配置协议 (DHCP) 地址上所剩的租用时间,另一个客户端即可获得问题 DC 的 IP 地址。

既然“NTDS 设置”对象已删除,因此可以删除计算机帐户、FRS 成员对象、_msdcs 容器中的 cname(或别名)记录、DNS 中的 A(或主机)记录、已删除的子域的 trustDomain 对象以及域控制器。

注意:在 Windows Server 2003 RTM 中不需要手动删除 FRS 成员对象,因为在您运行 Ntdsutil.exe 实用工具时,它已经删除了 FRS 成员对象。另外,如果 DC 的计算机帐户包含其他页对象,则无法删除该计算机帐户的元数据。例如,DC 上可能安装了远程安装服务 (RIS)。

Windows 2000 Server 和 Windows Server 2003 的 Windows 支持工具功能中都附带有 Adsiedit 实用工具。要安装 Windows 支持工具,请按照下列步骤操作: 

  • Windows 2000 Server:在 Windows 2000 Server CD 上,打开 Support\Tools 文件夹,双击“Setup.exe”,然后按照屏幕上的说明操作。

  • Windows Server 2003:在 Windows Server 2003 CD 上,打开 Support\Tools 文件夹,双击“Suptools.msi”,单击“安装”,然后按照 Windows 支持工具安装向导中的步骤操作以完成安装。

  1. 使用 ADSIEdit 删除计算机帐户。为此,请按照下列步骤操作: 
    如果在试图删除 DSA 对象时出现“不能删除 DSA 对象”错误消息,请更改 UserAccountControl 值。要更改 UserAccountControl 值,请在 ADSIEdit 中右键单击该域控制器,然后单击“属性”。在“选择一个要查看的属性”下,单击“UserAccountControl”。单击“清除”,将该值更改为 4096,然后单击“设置”。现在您可以删除该对象了。

    注意:删除计算机对象时,也将删除 FRS 订阅者对象,因为它是计算机帐户的子对象。

    1. 单击“开始”,单击“运行”,在“打开”框中键入 adsiedit.msc,然后单击“确定”

    2. 展开“域 NC”容器

    3. 展开“DC=您的域名, DC=COM, PRI, LOCAL, NET”

    4. 展开“OU=Domain Controllers”

    5. 右键单击“CN=域控制器名,然后单击“删除”

  2. 使用 ADSIEdit 删除 FRS 成员对象。为此,请按照下列步骤操作: 

    1. 单击“开始”,单击“运行”,在“打开”框中键入 adsiedit.msc,然后单击“确定”

    2. 展开“域 NC”容器。

    3. 展开“DC=您的域, DC=COM, PRI, LOCAL, NET”

    4. 展开“CN=System”

    5. 展开“CN=File Replication Service”

    6. 展开“CN=Domain System Volume (SYSVOL share)”

    7. 右键单击要删除的域控制器,然后单击“删除”。

  3. 在 DNS 控制台中,使用 DNS MMC 删除 DNS 中的 A 记录。A 记录也称为“主机”记录。若要删除 A 记录,请右键单击 A 记录,然后单击“删除”。还要删除“_msdcs”容器中的 cname(也称为“别名”)记录。为此,请展开“_msdcs”容器,右键单击 cname,然后单击“删除”

    重要说明:如果这是一台 DNS 服务器,请在“名称服务器”选项卡中删除对该 DC 的引用。为此,在 DNS 控制台中,在“正向查找区域”下右键单击该域名,单击“属性”,然后从“名称服务器”选项卡中删除该服务器。

    注意:如果有反向查找区域,也要将服务器从这些区域中删除。

  4. 如果删除的计算机是子域中的最后一个域控制器,而且该子域也已删除,则使用 ADSIEdit 删除该子域的 trustDomain 对象。为此,请按照下列步骤操作: 

    1. 单击“开始”,单击“运行”,在“打开”框中键入 adsiedit.msc,然后单击“确定”

    2. 展开“域 NC”容器。

    3. 展开“DC=您的域, DC=COM, PRI, LOCAL, NET”。

    4. 展开“CN=System”

    5. 右键单击“Trust Domain”对象,然后单击“删除”

  5. 使用“Active Directory 站点和服务”删除域控制器。为此,请按照下列步骤操作: 

    1. 启动“Active Directory 站点和服务”。

    2. 展开“站点”

    3. 展开服务器的站点。默认站点为 Default-First-Site-Name

    4. 展开“服务器”

    5. 右键单击域控制器,然后单击“删除”

Ntdsutil.exe SP1 或更高版本的高级可选语法

Windows Server 2003 SP1 引入了新的可用语法。通过使用新语法,不再需要绑定到 DS 以及选择操作目标。要使用新语法,您必须知道或获取要降级的服务器的“NTDS 设置”对象的 DN。若要为元数据清除使用新的语法,请按照下列步骤操作: 

  1. 运行 ntdsutil。

  2. 切换到清除元数据提示符。

  3. 运行以下命令,

    remove selected server <配置容器中的服务器对象的 DN>

    下面给出了此命令的一个示例。

    注意:下面的示例仅为一行,只是此处已经过换行。

    Remove selected server cn=servername,cn=servers,cn=sitename,cn=sites,cn=configuration,dc=<forest_root_domain>

  4. 在 DNS 的 _msdcs.<目录林的根域> 区域中删除 cname 记录。假定要重新安装并重新提升 DC,将使用新 GUID 和 DNS 中匹配的 cname 记录创建一个新“NTDS 设置”对象。您不希望现有 DC 使用旧 cname 记录。


    最佳做法是删除主机名和其他 DNS 记录。如果已超出为脱机服务器分配的动态主机配置协议 (DHCP) 地址上所剩的租用时间,另一个客户端即可获得问题 DC 的 IP 地址。

  5. 如果删除的计算机是子域中的最后一个域控制器,而且该子域也已删除,请使用 ADSIEdit 删除该子域的 trustDomain 对象。为此,请按照下列步骤操作: 

    1. 单击“开始”,单击“运行”,键入 adsiedit.msc,然后单击“确定”

    2. 展开“域 NC”容器。

    3. 展开“DC=您的域名, DC=COM, PRI, LOCAL, NET”。

    4. 展开“CN=System”

    5. 右键单击“Trust Domain”对象,然后单击“删除”

  6. 使用“Active Directory 站点和服务”删除域控制器。为此,请按照下列步骤操作: 

    1. 启动“Active Directory 站点和服务”。

    2. 展开“站点”

    3. 展开服务器的站点。默认站点为 Default-First-Site-Name

    4. 展开“服务器”

    5. 右键单击域控制器,然后单击“删除”

更多信息


有关如何强制降级 Windows Server 2003 或 Windows 2000 域控制器的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

332199 在 Windows Server 2003 和 Windows 2000 Server 中使用 Active Directory 安装向导强制降级时,域控制器无法正常降级

确定服务器的 DN

有多种方法可获得要删除的服务器对像的 DN。下面的示例使用 Ldp.exe。要通过使用 Ldp.exe 获取 DN,请按照下列步骤操作: 

  1. 运行 LDP。

  2. 绑定到 rootDSE。

  3. 选择“视图”\“树”。基 DN 应为 cn=configuration,dc=rootdomain,dc=<suffix>。

  4. 展开“站点”

  5. 展开服务器对象所在的站点。

  6. 展开“服务器”

  7. 展开要删除的服务器。

  8. 在右侧查找以 DN 开头的行。

  9. 复制除 DN 之外的整行内容。

    LDP 结果第一部分的截取示例为:

    Expanding base 'CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=corp,DC=com'...Result <0>:(null) Matched DNs:获得 1 项:>> Dn:“CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=corp,DC=com”
    
    应复制的内容为: 
    
    "CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=corp,DC=com"

有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

887424 在 Windows Server 2003 上尝试使用 Ntdsutil 删除一个已从网络中删除的域控制器的元数据时,收到“DsRemoveDsDomainW error 0x2015”(DsRemoveDsDomainW 错误 0x2015)错误消息

参考


有关如何使用脚本删除域控制器的 Active Directory 元数据的更多信息,请访问下列 Microsoft TechNet 网站:

http://gallery.technet.microsoft.com/ScriptCenter/zh-cn/d31f091f-2642-4ede-9f97-0e1cc4d577f3


有关如何使用图形用户界面 (GUI) 在 Windows Server 2008 及更高版本中执行元数据清除的更多信息,请访问下列 Microsoft TechNet 网站:

http://technet.microsoft.com/en-us/library/cc816907(WS.10).aspx#bkmk_graphical


上次更新时间:2017年1月8日