コマンドでWindowsのDNSレコード(Aレコード)を変更する


序文

DNSレコードを変更するにあたり、以下のコマンドを作成する。
 ・ゾーン情報を一覧出力
 ・レコード変更

※1
DNSCMDを利用するので、DNSサーバ上で実行する必要がある。

※2
もちろん、数件であればDNSレコードを直接ダブルクリックして変更した方が早い。
ただし操作ミスが起こりうる事、事前レビューがあまり意味をなさない事から、コマンド化することを強く推奨する。

ゾーン情報の出力

Syntax

dnscmd <DNSサーバ> /ZonePrint <Zone名>

例えば次のケースの場合、以下のコマンドで出力が出来る。
 DNSサーバ :contosoDNS
 Zone名  :stage.contoso.co.jp

dnscmd contosodns /ZonePrint stage.contoso.co.jp

レコード追加

Syntax

dnscmd <ServName> /recordadd <ZoneName> <Node> <RecordType> <IP>

※/fオプションを付けると、確認無しで実行する事が出来る。バッチ化する際は/fコマンド推奨。

以下のケースの場合
 DNSサーバ:contosoDNS
 ホスト名:Serv02
 IP Address:192.168.10.2
 ゾーン名:stage.contoso.co.jp

dnscmd contosoDNS /recordadd stage.contoso.co.jp Serv02 A 192.168.10.2

レコード削除

Syntax

dnscmd <ServName> /recorddelete <ZoneName> <Node> <RecordType> <IP>

以下のケースの場合
 DNSサーバ:contosoDNS
 ホスト名:Serv02
 IP Address:192.168.10.1
 ゾーン名:stage.contoso.co.jp

dnscmd contosoDNS /recorddelete stage.contoso.co.jp Serv02 A 192.168.10.1

DNSレコードを変更する場合

削除と追加を、それぞれ実行すればOK。
(追加では古い情報は削除されない為、削除が必須。)

以下のケースの場合
 DNSサーバ:contosoDNS
 ホスト名:Serv02
 旧IP Address:192.168.10.1
 新IP Address:192.168.10.2
 ゾーン名:stage.contoso.co.jp

dnscmd contosoDNS /recorddelete stage.contoso.co.jp Serv02 A 192.168.10.1 /f
dnscmd contosoDNS /recordadd stage.contoso.co.jp Serv02 A 192.168.10.2 /f

※/fコマンドは無くてもOK。

参考

Microsoft Docs 「DNSCMD」
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/dnscmd