在 ADSIEdit 中删除这两个 crossRef 对象是否安全?这是在 Win2K8 环境中,其中 DC 正在运行 DNS,并且缺少这两个区域。
我想这样做,因为我无法创建任何新区域,无论是正向还是反向。当我尝试这样做时,我得到的错误是
"The zone cannot be created. There was a server failure."
我还在 DNS 日志中反复看到事件 ID 4512,并显示以下消息
The DNS server was unable to create the built-in directory partition ForestDnsZones.domain.com. The error was 9906.
在测试环境中,我能够安全地删除它们,并且在重新启动 netlogon 和 DNS 服务后重新创建了区域/crossRef 对象。
在 ADSIEdit 中删除它们是否与通过 ntdsutil 删除复制上下文相同?
如果出现问题,有没有办法备份它们?
谢谢。
更新:
的结果:
ldifde -f con -d CN=0e4820e2-35e2-4fcf-bae9-789ca2003a
6b,CN=Partitions,CN=Configuration,DC=sub,DC=domain,DC=com
是:
Connecting to "dc2.sub.domain.com"
Logging in as current user using SSPI
Exporting directory to file con
Searching for entries...
Writing out entries.dn: CN=0e4820e2-35e2-4fcf-bae9-789ca2003a6b,CN=Partitions,CN
=Configuration,DC=sub,DC=domain,DC=com
changetype: add
objectClass: top
objectClass: crossRef
cn: 0e4820e2-35e2-4fcf-bae9-789ca2003a6b
distinguishedName:
CN=0e4820e2-35e2-4fcf-bae9-789ca2003a6b,CN=Partitions,CN=Configuration,DC=sub,D
C=domain,DC=com
instanceType: 4
whenCreated: 20071129065500.0Z
whenChanged: 20110702063659.0Z
nCName: DC=ForestDnsZones,DC=sub,DC=domain,DC=com
uSNCreated: 6080
uSNChanged: 8091
showInAdvancedViewOnly: TRUE
Enabled: FALSE
name: 0e4820e2-35e2-4fcf-bae9-789ca2003a6b
objectGUID:: RIDFRdDkrUO7JUySD8iRig==
dnsRoot: nonexistent.nonexistent.sub.domain.com
systemFlags: 5
objectCategory:
CN=Cross-Ref,CN=Schema,CN=Configuration,DC=sub,DC=domain,DC=com
dSCorePropagationData: 16010101000000.0Z
msDS-NC-Replica-Locations:
CN=NTDS Settings,CN=dc2,CN=Servers,CN=My-Site,CN=Sites,CN=Configuration,DC
=sub,DC=domain,DC=com
1 entries exported
The command has completed successfully
尝试为 ForestDNSZones 和 DomainDNSZones 建立新的命名上下文时遇到错误:
为了清楚起见,以下是 crossRef 对象的屏幕截图:
答案1
好吧,看来你需要比我计划的更多的指导。抱歉,但我并没有计划就你的问题进行长时间的讨论,而只是发布几篇帖子来引导你走向正确的方向。如果不清楚,我只是提出我的想法,如果我是你,我会怎么做。我希望你知道这里所做的事情的后果。我也希望这有助于解决你的问题。所以这是我回复的最终更新版本。
好的,就我个人而言,我会在尝试删除 crossref 之前备份 AD。您需要备份至少一个 DC,该 DC 包含您要恢复的任何分区的可写权限。如果您不确定谁托管哪个分区,请备份所有 DC。
您已经在环境中尝试过此过程。因此您知道涉及的内容。您可以使用任何能够删除 crossref 的工具来删除分区。我之前使用 adsiedit.msc 删除了 crossref,希望您可以用它删除 forestdnszones 和 domaindnszones。如果您按照这种方式操作,您将丢失数据,在最坏的情况下可能需要域/森林恢复和其他特定于应用程序的恢复程序。这不太可能,但有可能。所以让我们把这个免责声明说出来。
否则,您可以使用 ntdsutil 删除这些分区,因为您似乎知道这一点。“ntdsutil - 分区管理 - 删除 nc”会删除 crossref。删除 crossref 后,DC 会复制更改并从其数据库中删除分区。在此过程中确实会丢失数据,因此只有在您确定的情况下才可以这样做。
请注意,正如您所说,一个 DC 位于 msDS-NC-Replica-Locations 中,请使用 adsiedit 连接到该 DC 并查看 forestdnszones 和 domaindnszones 中存储的内容,以查看您拥有哪些区域。导航分区并查看 MicrosoftDNS 容器下的区域列表。删除 crossref 将删除正确托管应用程序分区的任何服务器上的所有区域数据。
您的屏幕截图和评论表明无法查看是否存在任何区域。在这种情况下,除非您的区域在其他地方,否则我预计存在重大 DNS 问题。要么您在检查时做错了,要么您的区域根本不在 domaindnszones 和 forestdnszones 中。请记住,如果有任何区域,您将在删除 crossref 时丢失它们。
您可能在这些分区中托管了一些其他区域。在 dnsmgmt.msc 中检查您的 DNS/DC,查看它们有哪些区域,然后打开区域的属性并检查复制范围,看看它是否与您即将删除的分区/交叉引用相匹配。由于每个 DNS 服务器都将区域的配置存储在注册表中,因此您可以检查每个区域的每个 dc/dns 上的 HKLM\Software\microsoft\windows nt\currentversion\dns server\zones,以查看区域的加载位置。如果您有静态记录或任何感兴趣的记录,请查看 dnscmd,因为它具有 /zoneexport 选项,可将区域数据导出为基于文件的区域文件。您稍后可以使用这些备份再次创建区域并将其转换为 dsintegrated。
您可以使用 dnscmd createbuiltindirectorypartitions 开关重新创建已删除的分区,具体如下:http://technet.microsoft.com/en-us/library/cc756116(WS.10).aspx#BKMK_4。
您还可以创建具有不同名称(如 DC=MyDnsPartition)的自己的应用程序分区,并将区域存储在其中,并选择林的所有 DC 或域的所有 DC 或自定义 DC 选择列表作为应用程序分区的成员,以控制区域复制的位置。ForestDNSZones 和 DomainDNSZones 是默认的应用程序分区,因为它满足大多数管理员的需求。您不必使用它们。您可以自己制作,如果您无法修复 crossref 并将其恢复为默认状态,则可以将这种灵活性用作一种选择。
在 DC1 等 DC/DNS 上执行类似下面的操作将创建分区并登记。您可能需要企业管理员权限。我还没有检查。
dnscmd /创建目录分区 MyDNSApp
然后通过登记将其他 DC 添加为副本目标。
dnscmd /enlistdirectorypartition MyDNSApp
如果您在 DC2 上执行上述操作,您将发现一个名为 DC=MyDNSApp 的分区最终从 DC1 复制到 DC2。这显然假设您有站点链接和副本拓扑配置,允许您从这些源进行复制。我不想在这里讨论这个,因为这是一个大话题。
删除分区后,您需要根据需要创建任何区域。如果您有区域来表示这些分区中的 AD 域,则需要重新创建区域。我会暂时将森林中的所有 DC 指向您首先创建分区然后创建区域的 DC。然后重新启动 netlogon 或对每个 dc 使用“nltest /dsregdns”以使 netlogon 服务重新注册记录。这可能需要一些时间。我也曾遇到过这种情况:当 dcs 没有足够快地注册记录时,创建一个空白区域(非 ad integraed)来表示域,根据需要将所有 DC 的 netlogon.dns 中的所有内容复制到 c:\windows\system32\dns 中的 domain.com.dns 文件中,根据需要为 DC 添加 A 记录,并从 dnsmgmt.msc 控制台中的文件重新加载区域,然后将其转换为 AD 集成以进行复制。我并不是说您需要这样做。我这么说是为了让你知道如果出现问题你可能需要做哪些工作。
希望这一切都有意义。祝你好运!
答案2
我可能会研究您的域名命名主机角色,看看您是否发现其中存在任何问题。
c:\> net helpmsg 9906
The application directory partition operation failed. The domain controller hold
ing the domain naming master role is down or unable to service the request or is
not running Windows Server 2003.
答案3
确保您的域命名主机 FSMO 角色所有者已启动并运行。您可以通过打开 AD 域和信任 mmc 并右键单击 AD 域和信任来查找谁拥有此角色。选择“操作主机”。它会告诉您哪个服务器拥有该角色。您也可以使用相同的方法将角色转移到另一台服务器。