Active Directory ドメイン サービスの受信レプリケーション中に Active Directory レプリケーション イベントの ID 2108 と 1084 が発生する

この記事では、Active Directory ドメイン サービス (AD DS) の受信レプリケーションが発生すると、イベント 2108 と 1084 を取得する問題の解決策を示します。

元の製品バージョン:   Windows Server 2016、Windows Server 2012 R2
元の KB 番号:   837932

現象

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

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

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

オブジェクト GUID: <objectguid>

ソース ディレクトリ サービス: NTDSA._msdcs。<forst root DNS domain name>

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

この操作は、次にスケジュールされたレプリケーションでもう一度試みます。

ユーザー操作:

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

追加データ:

エラー値: <error code><error string>

注意

  • エラー値テキストで、 <error code> ログ <error string> エントリに表示される実際の値を表します。
  • イベント 1804 は、Windows 2000 Server 以降に記録されています。

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

イベント ID 2108: このイベントには、以前にログに記録された 1084 イベントの REPAIR PROCEDURES が含まれる。 このメッセージは、このレプリケーション先の Active Directory ドメイン サービス データベースの一貫性に関する特定の問題を示しています。 レプリケートされた変更を次のオブジェクトに適用中にデータベース エラーが発生しました。 データベースに予期しない内容があったので、変更が行えなくなっていた。

注意

  • SP1 のインストール後に、Windows Server 2003 でイベント 2108 がログに記録されます。
  • これは、イベント 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 つでエラーが発生した場合は、次のいずれかの方法を使用して問題を解決します。

    • 方法 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. [ 入力] をクリック して[エントリ リスト ] 領域にデータを入力 します。

        注意

        [エントリ リスト ] 領域、[Add]fixupinheritance:yes が 表示されます。

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

        注意

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

      9. [閉 **じる] ボタン、[**接続] の 順にクリックし、[終了] を クリックします

  7. ソース ドメイン コントローラーで、コマンド プロンプトで入力し、イベント 1084 で参照される識別名パスのオブジェクト メタデータを表示します repadmin /showmeta distinguished_name_path 。 送信先ドメイン コントローラーでこの手順を繰り返します。 以下を含むが、これらに限定されない矛盾した値を探します。

    • オブジェクトに表示される属性の名前と数が正しくありません
    • 誤った発信元の時刻または日付のスタンプ
    • 正しくないローカル更新シーケンス番号 (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 データベースの整合性チェックを実行するには、このツールを使用します。

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

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

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

  9. ソース ドメイン コントローラーを再起動し、F8 キーを押してディレクトリ サービス復元モードを開始します。 コマンド プロンプトで、「Enter」と入力 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"
    

    注意

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

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

    注意

    セマンティック データベース コマンドは、Windows Server 2003 Service Pack 1 Ntdsutil File Repair より前のコマンドなどの Active Directory データベースに対して損失修復を実行 Esentutl /p しません。

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

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