
私たちは、別の場所にある DNS サーバー (リモート デスクトップ アクセスあり) から私たちの場所にあるサーバーに 200 個弱のドメインを移行しています。すべてのゾーン転送を一度に実行する簡単なスクリプト化の方法はありますか? 各サーバーは Windows 2003 で、ドメインは Active Directory のものではなくインターネット ドメインです。
答え1
うわー!とても楽しそうですね。
Windows サポート ツールの DNSCMD ユーティリティを使用してゾーンを列挙し、/ZoneExport パラメータを使用してゾーンをエクスポートし、/ZoneAdd パラメータを使用してそれらをインポートすることができます。スクリプトとしてはそれほど悪くないはずです。
このエクスポートは、ゾーンをホストしているサーバーの %windir%\system32\dns ディレクトリにエクスポートされるため、少し奇妙です。
@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
確かに、手元にスクラッチ DNS サーバーが 1 台か 2 台あるわけではありませんが、構文はかなり近いはずです。「ZoneAdd」以外のすべてをテストしました。
答え2
それを実行するためのスクリプトがあるかどうかはわかりませんが、DNS ゾーンを別のサーバーに移動する簡単な方法は、新しいサーバーをさまざまなゾーンのセカンダリにして、情報が転送されたらプライマリにすることです。これは便利で「クロスプラットフォーム」なので、どのような場合でも確実に機能します。
dnscmd.exe を参照してコマンド ラインでこれを実行し、セカンダリの作成をスクリプト化できるようにします。
答え3
%SystemRoot%\System32\DNS フォルダをソース DNS サーバーから宛先にコピーし、いくつかのレジストリ キーをエクスポート/インポートする必要があります。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Zones HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones
DNS フォルダーをコピーするだけでは機能しません。少なくとも、宛先の w2k8 DNS サーバーの場合はそうでした。+
このMS KBからすべてのプロセスを確認できます。