Migrate 200 Domains from Windows Server 2003 DNS to Another Server

domain-name-systemwindows-server-2003

We are migrating just under 200 domains from a DNS server at another location (we have remote desktop access) to a server at our location. Is there a simple, scripted way of doing all of the zone transfers at once? Each server is Windows 2003, and the domains are internet domains, not Active Directory stuff.

Best Answer

Zow! Sounds like a lot of fun.

You could use the DNSCMD utility from the Windows Support Tools to enumerate the zones, then export the zones using the /ZoneExport parameter, then import them with the /ZoneAdd parameter. It shouldn't be too bad of a script.

The export is a little quirky, because it exports to the %windir%\system32\dns directory on the server hosting the zones.

@echo off
set SRC=source-server
set DST=destination-server

for /f "usebackq delims= " %%i in (`dnscmd %SRC% /EnumZones ^| find "Primary"`) do call :DOZONE %%i
goto end

:DOZONE
dnscmd %SRC% /ZoneExport %1 %1.dns
dnscmd %DST% /ZoneAdd %1 /Primary /file \\%SRC%\C$\Windows\System32\DNS\%1.dns

:end

Admittedly, I don't have a scratch DNS server or two at hand, but the syntax should be pretty close. I tested everything but the "ZoneAdd".