我们一直在移动数据中心,我有很多不正确的旧记录,但在 DNS 中作为 CNAME 记录,但是具有直接 IP(例如 192.168.100.n)的 A 记录,它们都在移动到新子网 (10.19.100.n)。
我只需要编写一个 powershell 脚本来更改所有这些记录。我找到了这个网站:
http://www.indented.co.uk/index.php/2008/12/30/administering-microsoft-dns-in-powershell/
从中我制作了这个简单的脚本:
$dnsServer = "meldc2"
$scope = New-Object Management.ManagementScope("\\$dnsServer\root\MicrosoftDNS")
$path = New-Object Management.ManagementPath("MicrosoftDNS_Zone")
$options = New-Object Management.ObjectGetOptions($Null,[System.TimeSpan]::MaxValue, $True)
$ZoneClass= New-Object Management.ManagementClass($scope,$path,$options)
$Zones = Get-WMIObject -Computer $dnsServer -Namespace "root\MicrosoftDNS" -Class "MicrosoftDNS_Zone"
$Zones | Get-Member
foreach($Z in $Zones) {
$Z | Select-Object Name,DsIntegrated,ZoneType,Reverse,Data
}
但这只会让我得到一个根区域列表。我不明白如何遍历每个区域中的所有条目。此外,我看到的所有示例都涉及添加新区域,但我找不到任何关于修改现有 A 记录的示例。
我将
dnscmd
用于修改 DNS 记录:这可以用
batch
or中的一个循环包装PowerShell
,例如: