Active Directory レプリケーション イベント ID 2108 および 1084 は、Active Directory Domain Servicesの受信レプリケーション中に発生します

この記事では、Active Directory Domain Services (AD DS) の受信レプリケーションが発生したときにイベント ID 2108 と 1084 を取得する問題の解決策について説明します。

適用対象: Windows Server 2016、Windows Server 2012 R2
元の KB 番号: 837932

現象

Active Directory Domain Services (AD DS) の受信レプリケーションが発生すると、Microsoft Windows Server 2003 Service Pack 1 (SP1) を実行している宛先ドメイン コントローラーが、Windows Server 2016を介してディレクトリ サービス ログに次のイベントをログに記録します。

イベント ID 1084: 内部イベント: Active Directory Domain Servicesは、次のソース ディレクトリ サービスから受け取った変更で次のオブジェクトを更新できませんでした。 これは、ディレクトリ サービスでActive Directory Domain Servicesへの変更の適用中にエラーが発生したためです。

オブジェクト: CN=<cn パス>

オブジェクト GUID: <objectguid>

ソース ディレクトリ サービス: NTDSA._msdcs。<forst ルート DNS ドメイン名>

この更新プログラムの問題が修正されるまで、ディレクトリ サービスとソース ディレクトリ サービスの同期はブロックされます。

この操作は、次回のスケジュールされたレプリケーションで再試行されます。

ユーザー アクション:

この条件が低いシステム リソース (物理メモリや仮想メモリの不足など) に関連しているように見える場合は、ローカル コンピューターを再起動します。

その他のデータ:

エラー値: <エラー コード><のエラー文字列>

注:

  • [エラー値] テキストのエラー コード>と<エラー文字列>は、<ログ エントリに表示される実際の値を表します。
  • Windows 2000 Server 以降、イベント 1804 が記録されています。

Windows Server 2003 SP1 を実行している宛先ドメイン コントローラーも、ディレクトリ サービス ログに次のイベントを記録します。

イベント ID 2108: このイベントには、以前にログに記録された 1084 イベントの REPAIR PROCEDURES が含まれています。 このメッセージは、このレプリケーション先のActive Directory Domain Services データベースの整合性に関する特定の問題を示します。 レプリケートされた変更を次のオブジェクトに適用しているときに、データベース エラーが発生しました。 データベースに予期しない内容があり、変更が行われないようにしました。

注:

  • イベント 2108 は、SP1 のインストール後に Windows Server 2003 にログオンします。
  • これはイベント 1084 のパートナー イベントです。

原因

これらのイベントは、ドメイン コントローラーが Active Directory データベースのローカル コピーにトランザクション変更を書き込むことができない場合に発生します。

解決方法

この問題を解決するには、次の手順に従います。 変更を行う各ステップの後で、レプリケーション操作を再試行してください。

  1. Active Directory データベースをホストするボリュームで十分な空きディスク領域が使用可能であることを確認し、操作を再試行してください。 追加のディスク領域を解放するには、次の手順に従います。

    1. 関連のないファイルを別のボリュームに移動します。

    2. システム状態のバックアップを実行します。 このプロセスにより、トランザクション ログ ファイルのサイズが縮小されます。 詳細については、「 バックアップ機能を使用して Windows Server 2003 でデータをバックアップおよび復元する方法」を参照してください。

    3. Active Directory のオフライン最適化を実行します。 詳細については、「 Active Directory データベースのオフライン最適化を実行する方法」を参照してください。

  2. Ntds.dit ファイルとトランザクション ログ ファイルをホストする物理ドライブで NTFS ファイル システムの圧縮が有効になっていないことを確認します。 これを確認するには、[マイ コンピューター] でドライブ文字を右クリックし、[ディスク領域を節約するためにドライブを圧縮チェック] ボックスが選択されていないことを確認します。

  3. Ntds.dit ファイルとトランザクション ログ ファイルをホストする物理ドライブが、リモートおよびローカルのウイルス対策プログラムから特に除外されていることを確認します。 詳細については、ウイルス対策ソフトウェアのドキュメントを参照してください。

  4. 宛先ドメイン コントローラーにグローバル カタログが含まれており、読み取り専用パーティションのいずれかでエラーが発生した場合は、次のいずれかの方法を使用して問題を解決します。

    • 方法 1: Repadmin.exe ツールのリホスト オプションを使用して、影響を受けるパーティションを再ホストします。

      Repadmin.exe ツールは、ドメイン コントローラーの役割を持つコンピューターにインストールされ、メンバー ワークステーションとサーバーに RSAT ツールと共にインストールされます。 これを行うには、コマンド プロンプトで次のように入力します。 ここで、domain_controller は宛先ドメイン コントローラーの名前、 good_source_domain_controller_name は別のドメイン コントローラーの名前です。

      repadmin /rehost domain_controller naming_context good_source_domain_controller_name
      
    • 方法 2: ドメイン コントローラーがグローバル カタログ サーバーでなくなったように構成します。 次の手順を実行します。

      1. [ スタート] をクリックし、[ 管理ツール] をポイントし、[ Active Directory サイトとサービス] をクリックします。
      2. NTDS 設定サブツリーdomain_controller_name既定の\ 最初のサイト名\ サーバー\ を見つけます。
      3. [NTDS 設定] を右クリックし、[プロパティ] をクリックします。
      4. [グローバル カタログ] チェック ボックスをオフにし、[OK] をクリックします
    • 方法 3

      プログラム パーティションでエラーが発生した場合は、Ntdsutil.exe ツールを使用して、プログラム パーティションをホストするレプリカを変更します。

  5. FileMon ユーティリティなどのサード パーティ製ユーティリティを使用して、プログラムまたはユーザーが Active Directory データベース、トランザクション ログ ファイル、またはEdp.tmp ファイルにアクセスしているかどうかを判断します。 ファイル アクセス アクティビティが存在する場合は、アクティビティを担当するサービスを停止します。 FileMon ユーティリティの詳細については、「 FileMon for Windows v7.04」を参照してください。

  6. 問題が、移行先ドメイン コントローラーの Active Directory オブジェクトの親に関連しているかどうかを判断します。 これを行うには、次の手順を実行します。

    1. ソース ドメイン コントローラーで、イベント 1084 で参照されているオブジェクトを組織単位 (OU) コンテナーに一時的に移動します。 OU は、現在のコンテナーとは無関係である必要があります。 たとえば、ドメインのルートから離れた新しいコンテナーにオブジェクトを移動します。

    2. オブジェクトの移動後にレプリケーションが完了した場合は、オブジェクトを元のコンテナーに戻します。

    3. セキュリティ記述子伝達子を強制的に、ソースと宛先の両方のドメイン コントローラーに存在するデータベース内のオブジェクト コンテナーの祖先を再構築します。 これを行うには、次の手順を実行します。

      1. Windows Server 2003 サポート ツールがインストールされていることを確認します。 サポート ツールは、Windows Server 2003 CD-ROM の Support\Tools フォルダーにあります。 Suptools.msi ファイルをダブルクリックして、ツールをインストールします。

      2. [ スタート] をクリックし、[ 実行] をクリックし、「 ldp」と入力して、[OK] をクリック します

      3. [ 接続] をクリックし、[ 接続] をクリックし、接続するサーバーの名前を入力します。

        注:

        Active Directory のポート 389 経由で接続します。

      4. [ 接続] をクリックし、[ バインド] をクリックし、管理ユーザー名、パスワード、ドメインを入力します。 (ドメイン管理者またはエンタープライズ管理者の資格情報を使用する必要があります)。[ OK] をクリックします

      5. [ 参照 ] メニューの [ 変更] をクリックします。 [DN] テキスト ボックスは空白のままにします。 [ 属性 ] テキスト ボックスに「 FixUpInheritance」と入力します。 [] テキスト ボックスで [はい] をクリックします。

      6. [ 操作 ] 領域で、[ 追加] をクリックします。

      7. [ Enter]\(入力\) をクリックして、[ エントリ リスト] 領域を設定 します。

        注:

        [エントリ一覧] 領域に[追加]fixupinheritance:yes が表示されます。

      8. [実行] をクリックします。

        注:

        右側のウィンドウに [変更済み ] 状態が表示され、セキュリティ記述子伝達子が開始されます。 セキュリティ記述子伝達子のランタイムは、Active Directory データベースのサイズによって異なります。 このプロセスは、NTDS Performance オブジェクトの DS セキュリティ伝達イベント カウンターが 0 に戻ったときに完了します。

      9. [ 閉じる] をクリックし、[ 接続] をクリックし、[ 終了] をクリックします。

  7. ソース ドメイン コントローラーで、コマンド プロンプトで「」と入力 repadmin /showmeta distinguished_name_path し、イベント 1084 で参照されている識別名パスのオブジェクト メタデータを表示します。 宛先ドメイン コントローラーでこの手順を繰り返します。 次のような一貫性のない値を探します。これらに限定されません。

    • オブジェクトに表示される属性の名前と数が正しくありません
    • 元の時刻または日付スタンプが正しくありません
    • 正しくないローカル更新シーケンス番号 (USN)

    正しくない値は、オブジェクトをホストするデータベース ページに問題があることを示している可能性があります。

    識別名パスがライブ オブジェクトを参照するときに Repadmin.exe ツールを使用するには、コマンド プロンプトで次のように入力します。

    repadmin /showmeta remote_domain_controller_name distinguished_name_path_of_reference _object
    

    オブジェクトが削除されたオブジェクト コンテナー内にある場合、または Repadmin.exe ツールを使用してオブジェクトを検索できない場合は、オブジェクトの GUID 参照を使用してオブジェクトを検索します。 この GUID は、イベント 1084 で参照されます。 これを行うには、コマンド プロンプトで次のように入力します。

    repadmin /showmeta remote_domain_controller_name "GUID_for_the_object that_is_referenced_in_Event_ID_1084"
    

    たとえば、イベント 1084 とイベント 2108 が GUID が b49cd496-98a2-4500-bb08-58550c2f79ac であるオブジェクトを参照する場合は、「 」と入力します repadmin /showmeta "<GUID=b49cd496-98a2-4500-bb08-58550c2f79ac>"

    注:

    引用符と角かっこが必要です。

  8. オペレーティング システムの最新のサービス パックをインストールして、最新の Ntdsutil.exe ツールを入手します。 Ntdsutil.exe ツールを使用して、ソース ドメイン コントローラー上の Active Directory データベースの整合性チェックを実行します。

    Directory Services 復元モードでコンピューターを起動する前に、オフライン管理者アカウントのパスワードを取得します。 管理者アカウントのパスワードがわからない場合は、このモードで開始する前に Directory Services 復元モードのパスワードをリセットしてください。 Windows 2000 Service Pack 2 (SP2) 以降を実行しているドメイン コントローラーで、Setpwd.exe コマンドを使用します。 Setpwd.exe コマンドは、%Systemroot%\System32 フォルダーにあります。 Windows Server 2003 ベースのドメイン コントローラーでは、Ntdsutil Set Directory Services Restore Mode Password コマンドを使用します。

    Directory Services 復元モードの詳細については、「 Windows ベースまたは SBS ベースのドメイン コントローラーを起動するときに、ディレクトリ サービスを開始できません」エラー メッセージを参照してください

    Windows Server 2003 でパスワードを変更する方法の詳細については、「 Windows ベースまたは SBS ベースのドメイン コントローラーを起動するときに、ディレクトリ サービスを開始できません」というエラー メッセージを参照してください

  9. ソース ドメイン コントローラーを再起動し、F8 キーを押して Directory Services 復元モードを開始します。 コマンド プロンプトに ntdsutil files integrity と入力し、Enter キーを押します。

    注:

    このコマンドは、データベースの整合性を確認します。

    • Ntdsutil ツールがデータベースが破損していると報告し、ソース ドメイン コントローラーに名前付けコンテキストのレプリカがある場合は、ソース ドメイン コントローラーの降格を強制し、Active Directory データベースとトランザクション ログ ファイルをホストするドライバー、ファームウェア、物理ドライブの整合性を確認した後に再昇格します。

    • データベースが破損していて、ソース ドメイン コントローラーに名前付けコンテキストのレプリカが存在しない場合は、最新のシステム状態を復元します。 NTDSutil.exe ツールを使用して、データベースの整合性を再度確認します。 それでも破損メッセージが表示される場合は、ドメイン コントローラーの整合性を確認できるようになるまで、古いバックアップを復元します。

    • データベースがまだ破損している場合は、最新のシステム状態バックアップを復元し、コマンド プロンプトで次のように入力します。

      ntdsutil files recover
      

      NTDSutil.exe ツールを使用して、データベースの整合性をもう一度確認します。 データベースが整合性チェックを渡す場合は、ディスク パーティションのオフラインデフラグを実行します。 詳細については、「 Active Directory データベースのオフライン最適化を実行する方法」を参照してください。

      データベースの整合性チェックを実行するには、コマンド プロンプトで次のように入力し、Enter キーを押します。ここで、database_nameは Active Directory データベースの名前です。

      esentutl.exe /g database_name
      

      最後に、[Windows 標準の起動] オプションを使用してコンピューターを再起動し、ソース ドメイン コントローラーから影響を受ける移行先ドメイン コントローラーへのレプリケーションを再試行します。 データベースが整合性チェックに失敗した場合は、ドメイン コントローラーを廃止する必要があります。 Active Directory 移行ツール (ADMT) を使用してオブジェクトを移行します。 Ldifde.exe ツールと Csvde.exe ツールを使用して、新しい宛先ドメイン コントローラーにインポートするオブジェクトをエクスポートすることもできます。

      Ldifde.exe ツールと Csvde.exe ツールの使用方法の詳細については、「 Active Directory への一括インポートとエクスポートのステップ バイ ステップ ガイド」を参照してください。

  10. これらの手順が成功せず、レプリケーション エラーが続く場合は、ドメイン コントローラーを降格し、Ntds.dit ファイルとディスク サブシステムをホストする物理ドライブとボリュームの整合性を確認してから、ドメイン コントローラーをもう一度昇格します。 同じコンピューター名を使用します。

  11. ntdsutil files compact コマンドを使用して、Active Directory データベースのオフラインデフラグを実行します。 詳細については、「 Active Directory データベースのオフライン最適化の実行 」を参照してください。

  12. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    ntdsutil "semantic database analysis" "go"
    

    注:

    この例の引用符は、単一のコマンド ライン引数を使用してセマンティック データベース分析コマンドを実行するために必要です。

    エラーが報告された場合は、 type ntdsutil go fixupEnter キーを押します。

    注:

    セマンティック データベース コマンドは、Windows Server 2003 Service Pack 1 Ntdsutil ファイルの修復や Esentutl /p コマンドなど、Active Directory データベースで損失の修復を実行しません。

    サードパーティの情報に関する免責事項

    この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

データ収集

Microsoft サポートからの支援が必要な場合は、「 Active Directory レプリケーションの問題に TSS を使用して情報を収集する」で説明されている手順に従って情報を収集することをお勧めします。