前回は、Active Directoryのドメイン名変更に使用するRENDOMコマンドの使い方について解説した。今回は、そのRENDOMコマンドを実際に使用する際の操作内容について解説する。

RENDOMコマンドを使ったドメイン名の変更は、以下の手順で実施する。

  • すべてのドメインコントローラについて、バックアップを作成する
  • 既存のドメインに関する情報を、XML文書ファイルで出力する
  • そのXML文書ファイルの内容を、変更後の内容に合わせて修正する
  • 変更したXML文書ファイルをドメインにアップロードして、変更を反映させる

これから示す例では、ドメインコントローラとDNSサーバを兼ねるサーバ「helios」で運用している「old-domain.company.local」ドメインを、「new-domain.company.local」に名称変更する。

RENDOMコマンドを使ったドメイン名変更の手順(準備作業)

 1. まず、変更作業に使用するコンピュータ(コントロールステーション)にログオンする。このコンピュータは、ドメインのメンバーになっているサーバでなければならない。ログオンに使用するユーザーアカウントは、ドメインユニバーサルグループ「Enterprise Admins」のメンバーで、かつ、作業を行うコンピュータに対する管理者権限を持っている必要がある。一般的には、フォレストルートドメインのドメインコントローラに、Administratorユーザーの資格でログオンすればよい。

 2. [DNS]管理ツールを起動して、名称変更後の新ドメイン名と同名の前方参照ゾーンを作成する。ゾーンの種類は[Active Directory統合]ではなく[プライマリ]にして、かつ、動的更新を受け付ける設定にしておく。動的更新を受け付けるようにしておかないと、名称変更後のドメインに対応するSRVレコードなどを正しく登録できず、ドメインの動作に支障をきたすことになるので注意したい。

名称変更後のドメインに対応するDNS前方参照ゾーンを作成して、動的更新を受け付ける設定にしておく

 3. コマンドプロンプトを起動する。この後、カレントフォルダにXML文書を出力するため、書き込み権限があるフォルダをカレントフォルダにする必要がある。既定値は %UserProfile% だが、その下の Documents (または My Documents) にするのが現実的だろうか。

RENDOMコマンドを使ったドメイン名変更の手順(設定の変更)

 4. 「rendom /list」と入力して、名前付けコンテキストについて記述したXML文書ファイル「Domainlist.xml」を出力する。フォレストの機能レベルがWindows Server 2003、あるいはWindows Server 2008ネイティブになっていないと、この段階でエラーが発生する。

 5. そのファイルを copy コマンドでコピーして、バックアップを作成しておく(例 :「copy domainlist.xml domainlist-save.xml」)。

 6. オリジナルのXML文書ファイル「Domainlist.xml」を、テキストエディタで開く。XML文書のエンコードはUTF-8が既定値なので、UTF-8に対応したテキストエディタが必要になるが、これはWindows付属の「メモ帳」を使用すればよい。

 7. まず、ドメイン名について記述しているDNSname要素(<DNSname>~)とNetBiosName要素(<NetBiosName>~)のテキスト部分について、ドメイン名を現行のものから変更後のものに書き直す。その際に、Guid要素(<Guid>~)のテキストを変更しないように注意する。

 8. アプリケーションディレクトリパーティションに関する記述や、DcName要素(<DcName>~)で記述しているドメインコントローラのコンピュータ名についても、変更の必要があれば修正する。ただし、ドメイン名のみを変更するのであれば、DcName要素の修正は必要ない。

「domainlist.xml」ファイルの内容を、新しいドメイン構成に合わせて書き直す(左が変更前、右が変更後)。このとき、Guid要素を間違って書き換えないように注意

 9. 「Domainlist.xml」ファイルの変更が終わったら、保存してメモ帳を終了する。

 10. コマンドプロンプトで「rendom /showforest」と入力して、内容を検証する。「The operation completed successfully」または「操作は正常に終了しました」と表示すれば問題ない。

RENDOMコマンドを使ったドメイン名変更の手順(変更の反映)

 11. 「rendom /upload」と入力して、ドメイン名称変更用スクリプトをドメインにアップロードする。

 12. 動作検証用のファイル「dclist.xml」を生成しているかどうか、dirコマンドを使って確認する。次に、その「dclist.xml」ファイルをメモ帳で開いて、対象となるドメインコントローラに関する記述がすべて含まれているかどうかを確認する。

アップロード後に、「dclist.xml」を出力しているかどうかを確認する。その「Dclist.xml」の内容例が上の画面。DC要素()以下に、すべてのドメインコントローラに関する情報を記述してあるかどうかを確認する

 13. 「dsquery server -hasfsmo name」と入力して、FSMOの機能を担当しているサーバを確認する。この情報は、次の「14.」で必要になる。ただし、dsqueryコマンドではLDAP識別名を使って表示するが、次の操作で入力する必要があるのはFQDN(Fully Qualified Domain Name, 完全修飾ドメイン名)である点に注意したい。LDAP識別名を入力するとエラーになる。

 14. 「repadmin /syncall /d /e /P /q <DomainNamingMaster>」と入力して、フォレスト内のすべてのドメインコントローラに対して所要の情報を複製する。引数「DomainNamingMaster」には、ドメイン名前付け操作マスタ(ドメインネーミングマスタ)になっているコンピュータのFQDNを指定する。なお、ドメインコントローラが1台しかなく、かつDNSサーバも兼ねている場合には、この操作は省略できる。

 15. 「rendom /prepare」と入力して、ドメインコントローラが名前変更に対応できるかどうかを確認する。

 16. 「rendom /execute」と入力して、ドメイン名変更を実行する。

 17. 変更に成功すると、「dclist.xml」ファイルのState要素(<State>~)で「Done」と書き込まれる。不具合が発生したときには、このテキストが「Error」となる。

変更作業後の「dclist.xml」ファイル。State要素()のテキストが「Done」となっていれば問題ない

RENDOMコマンドを使ったドメイン名変更の手順(変更完了後の作業)

 18. ドメイン名の変更に成功したら、コンピュータを再起動して名前変更を反映させる。再起動後に、[Active Directoryユーザーとコンピュータ]などの管理ツールを使って、ドメイン名変更が反映されているかどうかを確認する。なお、ログオン時に表示しているユーザー名は前回ログオンに使用したものであり、そこではドメイン名が変更前のままになっているので、ログオンの際にユーザー名を入力し直す必要がある。

 19. コマンドプロンプトを起動して、ドメイン名変更の際に使用したフォルダ(XML文書ファイルの出力先になっていたフォルダ)に、カレントフォルダを移動する。

 20. 「rendom /end」と入力して、フォレストのフリーズ状態を解除する。

 21. [DNS]管理ツールを起動して、必要なレコードを作成しているかどうかを確認する。また、変更後のドメイン名に対応する前方参照ゾーンの種類を[プライマリ]から[Active Directory統合]に変更する。また、セキュリティで保護された更新だけを受け付けるように設定を変更する。

[Active Directoryユーザーとコンピュータ]などの管理ツールで、ドメイン名が変更できたかどうかを確認できる。また、新しいドメイン名に対応するDNSゾーンは、「Active Directory統合・セキュリティで保護された更新のみ受け入れ」に設定変更する

 22. 必要であれば、他のドメインとの信頼関係や、ドメインDFS、グループポリシーなどの設定を確認・復旧する。DFSの設定変更にはdfsutilコマンド、グループポリシーの設定変更にはgpfixupコマンドやrepadminコマンドを使用する。