Active Directory の問題が単一のドメイン コントローラに限定されていると思われる場合、最初に修復を試みる最善の方法は DCPROMO コマンドを使用することです。このツールを使用すると、システムのドメイン コントローラ状態を解除し、代わりにシステムをメンバー サーバーにすることができます。その後、再度 DCPROMO コマンドを使用して、システムをドメイン コントローラ状態に昇格させることができます。これにより、影響を受けているドメイン コントローラに、Active Directory データベースの最新の、そしておそらくクリーンなコピーが作成されます。これで問題は解決です。
もちろん、物事が計画通りに進むことは稀です。降格中に何かが起こり、簡単な修正が大きな問題に発展してしまうこともあります。ドメインコントローラーが「トワイライトゾーン」に陥り、もはやドメインコントローラーであると認識していないにもかかわらず、Active Directoryにその記録が残っている状態です。そのため、Active Directoryツリー内の他のすべてのドメインコントローラーは、そのドメインコントローラーがまだ存在していると認識してしまいます。このDaily Drill Downでは、NTDSUTILを使用してこの問題を解決するための手動プロセスについて説明します。
何が問題になるのでしょうか?そして、なぜそれが問題になるのでしょうか?
ネットワークの問題、DNSサーバーや他のドメインコントローラーとの通信障害などにより、降格プロセスが失敗する可能性があります。同様に、サーバーがクラッシュする前にシステムを適切に降格できるとは限りません。例えば先週、ドメインコントローラーが落雷で壊れてしまいました。ハードウェア価格が低迷していたため、壊れたサーバーを修理するよりも新しいサーバーを購入する方が安価でした。その結果、Active Directoryには古いサーバーがまだドメインコントローラーであるという記録が残っていました。
通常、Active Directory に存在しないシステムがドメイン コントローラーとして登録されていても、それほど大きな問題にはなりません。Active Directory は引き続き正常に動作します。しかし、障害が発生したドメイン コントローラーが Active Directory にアクティブとして登録されていると、将来的に問題が発生する可能性があります。特に、障害が発生したドメイン コントローラーが操作マスターとして機能している場合は、その可能性が高くなります。ドメイン コントローラーが操作マスターの役割を保持していた場合、Active Directory がそのドメイン コントローラーがまだ存在していると認識している限り、それらの役割を強制的に引き継ぐことが困難になる可能性があります。操作マスターに障害が発生した場合に何が起こるかについては、Daily Drill Down の「操作マスターの役割を譲渡および強制するには、次の手順に従います」を参照してください。適切に機能する操作マスターは、Active Directory の正常な動作に不可欠であると言えるでしょう。
ドメインコントローラーに問題が発生しているために降格する必要がある場合でも、存在しなくなったドメインコントローラーを削除する必要がある場合でも、手順は同じです。これから説明する方法では、サーバーをActive Directoryから完全に削除します。サーバーを削除したら、サーバーを修復し、適切なタイミングで修復したサーバーをドメインに再参加させてから、DCPROMOを使用してサーバーをドメインコントローラーの状態に戻します。
クリーンアップ
作業を開始するには、まず「Active Directory ユーザーとコンピューター」ユーティリティを開き、「ドメインコントローラー」コンテナに移動します。障害が発生したドメインコントローラーを右クリックし、表示されるコンテキストメニューから「削除」コマンドを選択します。この方法はほとんどの場合失敗しますが、うまくいけば多くの作業を省くことができるので、試してみることをお勧めします。
Active Directory ユーザーとコンピューターからドメインコントローラーを削除できない場合は、NTDSUTIL ユーティリティを使ってドメインコントローラーを削除してみてください。注意点が1つあります。DCPROMO による降格が成功したように見えても、ドメインコントローラーが「ドメインコントローラー」コンテナーにまだ表示されている場合は、NTDSUTIL ユーティリティを使用する前に、レプリケーションが機能していること、およびレプリケーションサイクルが完了していることを確認してください。そうしないと、小さな問題が大きな問題に発展する可能性があります。詳細については、Daily Drill Down「Active Directory レプリケーションについて」をご覧ください。
複雑な手順が段落形式で記載されていると、理解しにくい場合があります。そこで、削除プロセスで実際に使用したテキストへのリンクを掲載します。これにより、通常の形式での削除プロセスが実際にどのようになっているかを確認できます。
コマンドプロンプトウィンドウを開いてプロセスを開始します。NTDSUTILと入力し、 Enterキーを押します。NTDSUTILユーティリティが起動します。次に、NTDSUTILプロンプトでMETADATA CLEANUPコマンドを入力します。
次のステップは、クリーンアップ操作を実行するサーバーに接続することです。技術的にはどのドメインコントローラーでもこの操作を実行できますが、ドメイン命名マスターまたはドメインのPDCエミュレーターに接続することをお勧めします。これらのサーバーがどちらも機能していない場合は、接続可能なドメインコントローラーに接続してください。
これを行うには、「CONNECTIONS」と入力して[Enter]キーを押します。すると、サーバー接続プロンプトが表示されます。必要なクリーンアップ作業を行う権限を持つユーザーとしてログインしていることを確認してください。そうでない場合は、次のコマンドを入力してください:
SET CREDS domain username password
ここで、「domain」は接続しているドメイン、「username」は管理者権限を持つユーザーの名前、「password」はそのユーザーのパスワードです。
SET CREDSコマンドではパスワードの入力が必要です。選択したユーザーアカウントがパスワードを使用していない場合は、パスワードの代わりに「null」という単語を使用してください。「 null 」は小文字で入力してください。
いよいよサーバーへの接続を実際に行います。そのためには、以下のコマンドを入力してください:
CONNECT TO SERVER servername
「servername」を接続先のサーバー名に置き換えてください。このコマンドを入力すると、2つのメッセージが表示されます。
これらのメッセージの1つは、NTDSUTILが指定された資格情報を使用して指定されたサーバーにバインドしていることを示します。次のメッセージは接続を確認するものです。これらのメッセージが表示されない場合は、資格情報を再入力してコマンドを再度実行してください。それでもコマンドが機能しない場合は、対象サーバーとの通信が可能かどうかを確認してください。
対象サーバーに接続したら、「QUIT」と入力して[Enter]キーを押します。すると、METADATA CLEANUPプロンプトに戻ります。次に、「SELECT OPERATION TARGET」と入力して[Enter]キーを押します。すると、「SELECT OPERATION TARGET」プロンプトが表示されます。次に、「LIST DOMAINS」コマンドを入力します。すると、NTDSUTILコマンドによってフォレスト内で認識されているドメインの数が表示され、各ドメインと対応する番号が表示されます。障害が発生しているドメインコントローラーが属するドメインを特定し、その番号をメモしてください。
次に、「SELECT DOMAIN number」と入力し、[Enter]を押します。このコマンドの「number」は、操作したいドメインに対応する番号に置き換えてください。
ドメインを選択すると、「現在のサイトがありません」、「現在のサーバーがありません」、「現在の名前付けコンテキストがありません」というメッセージが表示されるはずです。そのため、次の手順では、障害が発生しているドメインコントローラーが属するサイトに接続します。そのためには、「LIST SITES」と入力して[Enter]キーを押します。利用可能なすべてのサイトの一覧が表示されます。先ほどドメインを選択したのと同じように、適切なサイトを選択する必要があります。「SELECT SITE number」(「number」はサイトの番号)と入力して[Enter]キーを押します。適切なサイトに接続したことを確認するメッセージが表示されます。
ドメインとサイトを選択したら、次に作業するサーバーを選択する必要があります。手順はドメインまたはサイトの選択とほぼ同じです。まず、「LIST SERVERS IN SITE」と入力して[Enter]キーを押し、サイト内のすべてのサーバーの一覧を取得する必要があります。障害が発生しているドメインコントローラーに対応する番号をメモし、「SELECT SERVER number」(「number」はサーバーに対応する番号)と入力して[Enter]キーを押します。接続先のサーバーを確認するための、やや長めのメッセージが表示されます。
この確認メッセージをよくお読みになり、正しいサーバーを選択したことを必ずご確認ください。そうしないと、ドメインから正常に動作しているサーバーを削除してしまう可能性があります。誤って間違ったサーバーを選択した場合は、LIST SERVERS IN SITE コマンドと SELECT SERVER number コマンドを再度使用して、正しいサーバーを選択してください。QUIT と入力してEnterキーを押すと、METADATA CLEANUP プロンプトに戻ります。
最後にもう一度、正しいサーバーが選択されていることを確認してください。深呼吸をして、「REMOVE SELECTED SERVER」コマンドを入力してください。図Aのようなダイアログボックスが表示されるはずです。
図A |
![]() |
このダイアログ ボックスは、NTDSUTIL で REMOVE SELECTED SERVER コマンドを入力すると表示されます。 |
図に示すように、ダイアログボックスには、Active Directoryからサーバーを本当に削除するかどうかを尋ねるメッセージが表示されます。このダイアログボックスには、サーバーがドメイン内の最後のサーバーであるかどうかも表示されます。「はい」をクリックすると、数秒後に、選択したサーバーへの参照が、前の手順で接続したサーバーから削除されたことを示す確認メッセージが表示されます。サーバーは削除されましたが、残りのドメインコントローラーからサーバーへの参照が消える前に、レプリケーションが完了する必要があります。
次に、QUITコマンドを2回入力し、続いてEXITコマンドを入力します。これにより、NTDSUTILコマンドが終了し、コマンドプロンプトウィンドウが閉じます。
他に何が問題になるでしょうか?
すべてを正しく実行したとしても、プロセスが次のエラーメッセージで終了する可能性があります:
エラー 8419 (0x20E3)
DSA オブジェクトが見つかりません
このエラーが表示された場合、通常はオブジェクトがActive Directoryから既に削除されていることを意味します。これにはいくつかの理由が考えられます。DCPROMO操作が成功したか、別の管理者が既に削除プロセスを完了している可能性があります。
いずれにせよ、このエラーメッセージが表示された場合は、通常、オブジェクトが実際に削除されたと想定するのが安全であり、メッセージの原因となっている別の問題が原因ではないと考えられます。例えば、サーバーがDNSサーバーまたは選択したドメインコントローラーとの通信に問題を抱えていた場合、プロセスのかなり早い段階でエラーメッセージが表示されているはずです。
結論
ドメインコントローラーの降格は簡単なはずです。DCPROMOコマンドはドメインコントローラーを降格し、サーバーのActive Directoryへの参照をすべて削除します。しかし、計画通りに進まず、DCPROMOが失敗すると問題が発生します。幸いなことに、NTDSUTILを少し操作するだけで、Active Directoryをすぐにクリーンアップできます。