Windows Server 2003 でドメイン コントローラーの Metadata Cleanup を実施する手順

適用対象: Microsoft Windows Server 2003 Service Pack 1Microsoft Windows Server 2003 Service Pack 2

現象


Active Directory ドメイン環境でドメイン コントローラーとして構成されているサーバーを撤去する場合、 dcpromo コマンドを撤去対象のサーバーで実行し、降格作業を実施する必要があります。しかし、通常の方法での降格ができない場合があります。
具体的には、長期間複製ができていないなどの理由で /forceremoval オプションを付与して強制降格をする場合や、ハードウェアが破損し、 OS が起動しないなどのケースがこれにあたります。
このとき、稼働中のドメインには、撤去したドメイン コントローラーの情報が残存します。
これにより同名でドメイン コントローラーの再昇格ができなかったり、ドメイン コントローラーにエラー イベントが記録され続けるなどの問題が発生する可能性があります。

解決方法


撤去したドメイン コントローラーの情報を Active Directory ドメイン環境から削除するために、正常に動作しているドメイン コントローラーにおいて、下記の手順で Metadata Cleanup と呼ばれる手順を実施します。

- 手順概要
[A] ntdsutil コマンドによる NTDS オブジェクトの削除
[B] 複製に使用する接続オブジェクトの削除
[C] ドメイン コントローラーのコンピューター オブジェクトの削除 (削除されているかの確認)
[D] FRS のオブジェクトの削除 (削除されているかの確認)
[E] DNS レコードの削除 (削除されているかの確認)

以下に、各手順における詳細な手順を示します。

注釈 1:
下記の作業を実施するためには、サポート ツールを事前にインストールしておく必要があります。
サポート ツールは、Windows インストール メディアの Support\Tools フォルダにある SUPTOOLS.MSI をダブルクリックすることでインストールできます。

また、各サービス パック用のサポート ツールは弊社サイトからも入手できます。
以下は、 Windows Server 2003 Service Pack 2 用のリンクです。

Download Windows Server 2003 Service Pack 2 32-bit Support Tools from Official Microsoft Download Center
http://www.microsoft.com/en-us/download/details.aspx?id=15326

注釈 2:
解説に用いるコマンド ラインの例や図は、下記の環境を前提とし、DC02.test.local が dcpromo による通常降格が実施されずに撤去されたため、 DC02 の情報をドメインから削除することを想定したものです。

ドメイン名: test.local
ドメイン コントローラー: DC01.test.local および DC02.test.local の 2 台構成
FSMO の役割の所有者: DC01.test.local
ドメインの構成: シングル フォレスト、シングル ドメイン
サイトの構成: Default-First-Site-Name のみ

[A] ntdsutil コマンドによる NTDS オブジェクトの削除
作業対象: 正常に稼働している任意のドメイン コントローラー 1 台

- 手順
1. 復旧できないドメイン コントローラーと同じドメインに所属するドメイン コントローラーに、ドメインの管理者権限を持つユーザーでログオンします。

2. コマンド プロンプトを起動し、"ntdsutil" と入力して Enter キーを押します。
C:\>ntdsutil

3. "metadata cleanup" と入力し、Enter キーを押します。
ntdsutil: metadata cleanup

4. "connections" と入力し、Enter キーを押します。
metadata cleanup: connections

5. "connect to server localhost" と入力して Enter キーを押します。"~ localhost に接続しました。" というメッセージが表示されることを確認します。
server connections: connect to server localhost
localhost に結合しています...
ローカルでログオンしているユーザーの資格情報を使って localhost に接続しました。

6. "quit" と入力し、Enter キーを押します。
server connections: quit

7. "select operation target" と入力し、Enter キーを押します。
metadata cleanup: select operation target

8. "list domains" と入力し、Enter キーを押します。(フォレスト内に複数のドメインが存在する場合、複数のドメインが表示されます。)
select operation target: list domains
1 個のドメインを検出しました
0 - DC=test,DC=local

9. "select domain <Domain Number>" と入力し、Enter キーを押します。<Domain Number> には、手順 8 で出力された削除対象のドメイン コントローラーが所属するドメインに対応する番号を指定します。(想定環境では DC=test,DC=local を示す 0 を選択します)
select operation target: select domain 0
現在のサイトがありません
ドメイン - DC=test,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません

10. "list sites" と入力し、Enter キーを押します。
select operation target: list sites
1 個のサイトを検出しました
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local

11. "select site <Site Number>" と入力し、Enter キーを押します。<Site Number> には、手順 10 で出力された削除対象のドメイン コントローラーが所属するサイトの番号を指定します。(想定環境では Default-First-Site-Name を示す 0 を選択します)
select operation target: select site 0
サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
ドメイン - DC=test,DC=local
現在のサーバーがありません
現在の名前付けコンテキストがありません

12. "list servers in site" と入力し、Enter キーを押します。
select operation target: list server in site
2 個のサーバーを検出しました
0 - CN=DC01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
1 - CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local

13. "select server <Server Number>" と入力し、Enter キーを押します。<Server Number> には手順 12 で出力された削除対象のドメイン コントローラーの番号を指定します。(想定環境では、 DC02 を示す 1 を選択します)
select operation target: select server 1
サイト - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
ドメイン - DC=test,DC=local
サーバー - CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
        DSA オブジェクト - CN=NTDS Settings,CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
        DNS ホスト名 - DC02.test.local
        コンピュータ オブジェクト - CN=DC02,OU=Domain Controllers,DC=test,DC=local
現在の名前付けコンテキストがありません

14. "quit" と入力し、Enter キーを押します。
select operation target: quit

15. "remove selected server" と入力し、Enter キーを押します。
metadata cleanup: remove selected server

16. "サーバーの削除確認ダイアログ" が表示されましたら、メッセージに含まれるサーバー名が、削除対象の DC 名であることを確認し、"はい" をクリックします。


17. "要素が見つかりません" などのメッセージが表示される可能性がありますが、最後に下記の太字のようなメッセージが表示されていれば、正常に削除ができたと判断できますので、 "quit" を入力し、Enter キーを 2 回押して ntdsutil ユーティリティを終了します。
metadata cleanup: remove selected server
選択されたサーバーから FSMO 役割を転送/強制処理しています。
選択されたサーバーのために FRS メタデータを削除しています。
"CN=DC02,OU=Domain Controllers,DC=test,DC=local" 下で FRS メンバを検索しています。

FRS メンバ "CN=DC02,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=test,DC=local" を削除しています。
"CN=DC02,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=test,DC=local" 下のサブツリーを削除しています。
"CN=DC02,OU=Domain Controllers,DC=test,DC=local" 下のサブツリーを削除しています。
CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local 上の FRS 設定の削除に失敗しました。原因は次のとおりです: "要素が見つかりません。";
メタデータのクリーンアップは続行されます。
"CN=DC02,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local" をサーバー "localhost"から削除しました
metadata cleanup: quit
ntdsutil: quit
localhost から切断しています...

[B] 複製に使用する接続オブジェクトの削除
作業対象: 正常に稼働している任意のドメイン コントローラー 1 台

- 手順
1. [Active Directory サイトとサービス] スナップインを起動します。

2. [Sites] - [<サイト名>] - [Servers] - [<ドメイン コントローラー名>] - [NTDS Settings] を選択します。


3. 右ペインに [レプリケート元サーバー] が削除対象のドメイン コントローラーとなっているオブジェクトが存在していれば、左ペインの [NTDS Settings] を右クリックし、[すべてのタスク] - [レプリケーション トポロジの確認] をクリックします。


4. [レプリケーション トポロジの確認] というポップアップが表示されたら、[OK] をクリックします。


5. 右ペインにて [最新の情報に更新] し、削除対象のドメイン コントローラーとのオブジェクトが削除されることを確認します。


6. 手順 2 から手順 5 までの作業を [Sites] - [<サイト名>] - [Servers] の削除対象のドメイン コントローラーを除くすべてのドメイン コントローラーについて実施します。

7. 左ペインにて [Sites] - [<削除対象のドメイン コントローラーのサイト名>] - [Servers] - [<削除対象のドメイン コントローラー名>] を選択した状態で右クリックして表示されるメニューで [削除] をクリックします。


[C] ドメインコントローラーのコンピューターオブジェクトの削除 (削除されているかの確認)
作業対象: 正常に稼働している任意のドメイン コントローラー 1 台

- 手順
1. [Active Directory ユーザーとコンピュータ] スナップインを起動します。

2. [Domain Controllers] 配下に存在する削除対象のドメイン コントローラーを削除します。(存在しない場合には、すでに削除されているため、手順 [D] に進みます。)


[D] FRS のオブジェクトの削除 (削除されているかの確認)
作業対象: 正常に稼働している任意のドメイン コントローラー 1 台

- 手順
1. [スタート] - [ファイル名を指定して実行] を選択し、"adsiedit.msc" と入力して [OK] をクリックします。

2. 左ペインのツリーを [Domain NC [<ドメイン名>]] - [<ドメインの DN>] - [CN=System] - [CN=File Replication Service] - [CN=Domain System Volume (SYSVOL share)] の順に展開します。


3. 右ペインに [CN=<削除対象のドメイン コントローラー] が存在していれば削除し、手順 [E] に進みます。

[E] DNS レコードの削除 (削除されているかの確認)
作業対象: 正常に稼働している任意のドメイン コントローラー 1 台

- 手順
1. [DNS] スナップインを起動します。

2. [前方参照ゾーン] - [_msdcs.<フォレスト ルート ドメイン>] 配下に、"データ" が削除対象のドメイン コントローラーとなっている CNAME レコードが存在すれば削除します。


3. [前方参照ゾーン] - [<削除したドメイン コントローラーが所属するドメイン>] ゾーン配下の NS レコードのプロパティを開きます。


4. [ネーム サーバー] タブで削除対象のドメイン コントローラーの FQDN が表示されていれば、そのエントリを選択し、[削除] をクリックし、[OK] をクリックします。


5. [前方参照ゾーン] - [<削除したドメイン コントローラーが所属するドメイン>] ゾーン配下に "名前" が削除対象のドメイン コントローラーとなっている A レコードが存在すれば削除します。


以上で削除対象のドメイン コントローラーの情報の削除手順は終了です。

詳細


ドメイン コントローラーの Metadata Cleanup の手順については、下記のサポート技術情報でも解説されています。

ドメイン コントローラーの降格に失敗した後、Active Directory のデータを削除する方法
http://support.microsoft.com/kb/216498

また、Windows Server 2008 以降のドメイン コントローラーでは、ntdsutil コマンドを使用することなく Active Directory ユーザーとコンピューター MMC スナップインから作業手順 [A] と同等の作業を実施することができます。

詳細な手順は下記の技術情報に記載されています。

Clean up server metadata Active Directory
http://technet.microsoft.com/en-us/library/cc816907(v=ws.10).aspx