如何更改Active-Directory集成的DNS区域的复制范围?

时间:2011-04-08 08:29:53

标签: .net powershell active-directory dns wmi

与此问题相关:How to set the replication scope of an AD-Integrated DNS zone using WMI?

我需要更改(使用PowerShell,因此.NET,ADSI或WMI)Active-Directory集成的DNS区域的复制范围,即存储在其中的区域的目录分区(DomainDnsZones或ForestDnsZone)。

这可以通过编程方式完成吗?

3 个答案:

答案 0 :(得分:1)

当使用GUI或DNSCMD更改区域的复制范围时,我观察到以下过程:

1)将所有DNS记录对象从旧位置复制到新位置。

2)如果(且仅当)副本成功完成,则删除旧位置中的对象。我观察了一个过程中断的情况,在新位置留下了区域的部分副本。它引起了一些问题,因为DNS服务不喜欢在不同的位置看到同一区域的两个版本。

我甚至不确定它是那么简单。例如,在复制过程中是否跟踪了更改?我的猜测是否定的。考虑尚未了解更改的复制合作伙伴:他们仍将继续更新旧分区中的区域,直到DNS服务检测到区域已移动为止。

因此,如果您可以使用ADSI将旧分区中的所有DNS区域对象复制到新分区,则从旧分区中删除对象,这应该可以解决问题。

因此,虽然有可能,但并不简单。即使我已经完成了所有ADSI脚本,我想我仍然会按照DNSCMD或GUI来完成这项任务。

答案 1 :(得分:0)

不知道你是否可以使用WMI执行此操作,但dnscmd可以执行此操作。请注意,如果您远程执行此操作且DNS服务器运行的是2k8 / 2k8 R2,则需要安装Vista或更高版本的dnscmd才能支持改进的RPC身份验证。

HOWTO for Server 2003

Server 2008 documentation of same command

答案 2 :(得分:0)

$Zones = Get-WMIObject -Computer $ServerName -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone"

然后使用:

$Zones | Get-Member

并查看您搜索的内容是否存在。