与此问题相关:How to set the replication scope of an AD-Integrated DNS zone using WMI?。
我需要更改(使用PowerShell,因此.NET,ADSI或WMI)Active-Directory集成的DNS区域的复制范围,即存储在其中的区域的目录分区(DomainDnsZones或ForestDnsZone)。
这可以通过编程方式完成吗?
答案 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身份验证。
答案 2 :(得分:0)
$Zones = Get-WMIObject -Computer $ServerName -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone"
然后使用:
$Zones | Get-Member
并查看您搜索的内容是否存在。