2011-04-08 76 views

回答

1

当GUI或DNSCMD是用来改变区域的复制范围,我观察到下列的过程:

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

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

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

因此,如果您可以使用ADSI将旧分区中的所有DNS区域对象复制到新分区,然后从旧分区中删除对象,那就应该这样做。

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

0

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

HOWTO for Server 2003

Server 2008 documentation of same command

+0

感谢您的提示,我已经知道dnscmd(它也可以在第一个位置创建分区)。但如果可能的话,我真的更喜欢避免调用命令行工具。 – Massimo 2011-04-08 12:57:20

+0

是的,我能理解'保持本土'的本能。有几件事我发现dnscmd会这样做,看起来没有记录曝光。很多DNS WMI类是只读的,除了查询我发现它几乎没有用处。 – 2011-04-08 15:26:31

+0

你实际上可以创建区域,甚至是DS集成的区域;但复制范围设置为Windows 2000模式(即在系统目录分区中),并且看起来没有办法对其进行更改。 – Massimo 2011-04-09 14:59:40

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

然后使用:

 
$Zones | Get-Member 

,看看你搜索是存在的。

+0

尝试过,但是甚至没有任何事情与复制范围和/或目录分区有关。 – Massimo 2011-04-09 15:00:08