ドメイン参加時に”この関数を完了できません”

ひさしぶりの投稿です。今日はドメイン参加したときに、あまり見かけないエラーを見かけたのでご紹介します。

この関数を完了できません

私のテスト環境で、あるコンピューターをドメインに参加しようとしたとき、こんなメッセージが出てきました。
実際の画面はこんな感じです。

画面7-3

トラブルシューティングを行おうとした私は手始めに、イベントビューアを見てみることにしました。
すると、イベントビューアではシステムログにNet JoinというソースのイベントID 4097で、次のようなメッセージが出てきました。

コンピューターDC4は、ドメインexample.comに参加しようとしましたが失敗しました。エラーコード 1332

なんだかさっぱりわかりませんね。
クライアント側ではその他、めぼしいログを見つけることができなかったので、ドメインコントローラー側の
ログを見てみることにしました。

まずはイベントビューアのシステムログ。
システムログでは、Directory-Services-SAMというソースのイベントID 16642を見つけました。

アカウント識別子アロケーターは、新しい識別子を割り当てられませんでした。このドメインコントローラーの識別子プールは、削除された可能性があります。問題が解決されない場合は、ドメインコントローラーを再起動して、イベントログのアロケーターの初期化状態を参照してください。

同じく、Directory-Services-SAMというソースのイベントID 16651もありました。

新しいアカウント識別子プールの要求に失敗しました。要求が成功するまで、操作を再実行します。
エラー:”役割の所有者の属性を読み取ることができませんでした”

ここで言う、識別子プールとはRIDプールのことで、RIDプールは既定で、最初にインストールしたドメインコントローラーにその役割が割り当てられることになっています。私はRIDプールをつかさどるドメインコントローラーが起動していないかと思ったのですが、私の環境では確かにRIDプールとなっているドメインコントローラーは起動しています。

また、RIDプールとなっているドメインコントローラーを再起動しましたが、状況は変化しませんでした。

続いて、ドメインコントローラーのDirectory Servicesログを見てみます。
こちらはActiveDirectory_DomainServiceソースのイベントID2092が出ています。

121105-1

RIDプールの役割を含む、FSMOが有効ではないと出ています。FSMOの役割が割り当てられているドメインコントローラーが起動していれば、後のドメインコントローラーはどうでもよいというわけではなく、FSMOの役割が割り当てられていないドメインコントローラーについても起動していないと今回のようなエラーが出てくるようです。

ログの説明を拡大したものがこちら。

このサーバーは次の FSMO 役割の所有者ですが有効ではないと判断されています。このサーバーが再起動されて以来、FSMO を含むパーティションについて、このサーバーはどのパートナーとも正しくレプリケートが行われていません。
この状態が修正されるまで、FSMO 操作マスターへのアクセスを必要とする操作は失敗します。
FSMO 役割: CN=RID Manager$,CN=System,DC=example,DC=com
ユーザー操作:
1. 初期の同期はシステムが起動するときに、レプリケーションの前にシステムによって行われる最初の動作です。その初期の同期が失敗したために FSMO 役割が有効ではないと判断された可能性があります。この処理についてはサポート技術情報 (KB) の記事 305476 によって説明されています。
2. このサーバーには 1 つ以上のレプリケーション パートナーがあり、これらのパートナーとのレプリケーションがすべて失敗しています。コマンド repadmin /showrepl を使うとレプリケーションのエラーを表示できます。問題となっているエラーを修正してください。例として、IP 接続の問題、DNS 名前解決、またはセキュリティ認証などの問題により正しいレプリケーションが妨げられている場合があります。
3. まれに、すべてのレプリケーション パートナーが、メンテナンスや障害回復などのために、予期された状況で停止している場合には、役割を強制して有効にすることができます。これは http://support.microsoft.com のサポート技術情報 (KB) の記事 255504 および 324801 で提供されている手順に従って行うことができます。
次の操作に影響がでる場合があります:
スキーマ: このフォレストのスキーマをこれ以上変更できなくなります。
ドメイン名前付け: このフォレストで、これ以上ドメインを追加および削除することができなくなります。
PDC: グループ ポリシーの更新や非 Active Directory ドメイン サービス アカウントのパスワードのリセットなどの、プライマリ ドメイン コントローラーの操作の実行がこれ以上できなくなります。
RID: 新しいユーザー アカウント、コンピューター アカウントまたはセキュリティ グループのセキュリティ識別子を新しく割り当てることができなくなります。
インフラストラクチャ: ユニバーサル グループ メンバーシップなどのドメインを越えた名前参照は、対象のオブジェクトが移動されたり名前が変更された場合に正しく更新されなくなります。

さらに別のログを見てみると、
ActiveDirectory_DomainServiceソースのイベントID1308が出ており、
ドメインコントローラーのレプリケーションに失敗していることが確認できました。

121105-2

次のディレクトリサービスとレプリケートする試みが連続して行われましたが継続的に失敗していることが、知識整合性チェッカー(KCC)により検出されました。

以上のことから、「ドメインコントローラーは起動してから一度も他のドメインコントローラーとレプリケーションしておらず、その結果、FSMOの所有権を放棄することになった」ということが確認できました。つまり、起動しているドメインコントローラーがFSMOの役割を行使できないため、ドメイン参加使用したコンピューターに対してSIDを割り当てることができなかった、というのが原因だったわけです。

そこで、他のドメインコントローラーも起動し、レプリケーションが行われたことを確認してから、もう一度ドメイン参加を行ってみると、ドメイン参加は成功しました。

レプリケーションが行われたことに関する確認は、ドメインコントローラーでrepadmin /showreplコマンド、本現象についてはサポート技術情報305476でそれぞれ確認できます。