Windows 2000 Server および Windows Server 2003 で、Active Directory の入力方向のレプリケーション実行中にイベント ID 2108 およびイベント ID 1084 が発生する


現象


Active Directory ディレクトリ サービスの入力方向のレプリケーションが発生したときに、Microsoft Windows 2000 Server または Microsoft Windows Server 2003 を実行しているレプリケーション先ドメイン コントローラのログに、次のイベントが記録されることがあります。
レプリケーション先ドメイン コントローラで Windows Server 2003 Service Pack 1 (SP1) が実行されている場合は、次のイベントがログに記録されることもあります。

原因


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

解決方法


この問題を解決するには、次の手順を実行します。変更を伴う手順を実行するごとに、レプリケーション操作を再度実行します。
  1. Active Directory データベースをホストしているボリュームに十分なディスクの空き領域があることを確認して、操作を再試行します。ディスクの空き領域を増やすには、次の手順を実行します。
    1. 関係のないファイルを他のボリュームに移動します。
    2. システム状態のバックアップを実行します。これにより、トランザクション ログ ファイルのサイズが小さくなります。
      関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

      240363 システム状態のバックアップと復元の方法
      326216 Windows Server 2003 でバックアップ機能を使用してデータのバックアップおよび復元を行う方法
    3. オフラインでの Active Directory の最適化を実行します。
      関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

      232122 Active Directory データベースのオフライン デフラグの実行
  2. Ntds.dit ファイルとトランザクション ログ ファイルをホストしている物理ドライブで、NTFS ファイル システム圧縮が有効になっていないことを確認します。これを確認するには、[マイ コンピュータ] をクリックし、ドライブ文字を右クリックし、[プロパティ] をクリックします。[ドライブを圧縮してディスク領域を空ける] チェック ボックスがオフになっていることを確認します。
  3. Ntds.dit ファイルとトランザクション ログ ファイルをホストしている物理ドライブが、リモートおよびローカルのウイルス対策プログラムの対象から明示的に除外されていることを確認します。詳細については、使用しているウイルス対策ソフトウェアのマニュアルを参照してください。
  4. レプリケーション先ドメイン コントローラにグローバル カタログが含まれており、読み取り専用パーティションのいずれかでエラーが発生している場合は、次の方法のうちいずれかを使用して問題を解決してください。

    方法 1

    Repadmin.exe ツールの rehost オプションを使用して、問題のパーティションを再ホストします。Repadmin.exe ツールは、Windows Server 2003 SP1 に含まれています。これを実行するには、コマンド プロンプトで次のコマンドを入力します (domain_controller はレプリケーション先ドメイン コントローラ名、good_source_domain_controller_name は別のドメイン コントローラ名です)。
    repadmin /rehost domain_controller naming_context good_source_domain_controller_name

    方法 2

    ドメイン コントローラをグローバル カタログ サーバーとして機能しないよう構成するには、次の手順を実行します。
    1. [スタート] ボタンをクリックし、[管理ツール] をポイントして、[Active Directory サイトとサービス] をクリックします。
    2. Default-First-Site-Name\Servers\domain_controller_name\NTDS Settings サブツリーを見つけます。
    3. [NTDS Settings] を右クリックし、[プロパティ] をクリックします。
    4. [グローバル カタログ] チェック ボックスをオフにします。[OK] をクリックします。

    方法 3

    プログラム パーティションでエラーが発生している場合は、Ntdsutil.exe ツールを使用して、そのプログラム パーティションをホストするレプリカを変更します。Active Directory ディレクトリ サービスのメンテナンス ユーティリティ (Ntdsutil.exe) の詳細については、次のマイクロソフト Web サイトを参照してください。
  5. FileMon ユーティリティなどのサードパーティのユーティリティを使用して、プログラムまたはユーザーが Active Directory データベース、トランザクション ログ ファイル、または Edp.tmp ファイルにアクセスしているかどうかを確認します。ファイル アクセス操作が行われている場合は、その操作を実行しているサービスを中止します。FileMon ユーティリティの詳細については、次の Sysinternals の Web サイトを参照してください。
  6. 問題がレプリケーション先ドメイン コントローラの Active Directory オブジェクトの親に関係しているかどうかを確認します。この操作を行うには、次の手順を実行します。
    1. レプリケーション元ドメイン コントローラで、イベント ID 1084 で参照されているオブジェクトを、一時的に組織単位 (OU) コンテナに移動します。OU は、現在のコンテナと関係のないものである必要があります。たとえば、ドメインのルートとつながっていない場所にある新しいコンテナにオブジェクトを移動します。
    2. オブジェクトの移動後にレプリケーションが完了したら、オブジェクトを元のコンテナに戻します。
    3. レプリケーション元およびレプリケーション先の両方のドメイン コントローラ内のデータベースに、セキュリティ記述子伝達子によってオブジェクト コンテナの先祖を強制的に再作成します。この操作を行うには、次の手順を実行します。
      1. Windows Server 2003 サポート ツールがインストールされていることを確認します。サポート ツールは、Windows Server 2003 CD-ROM の Support\Tools フォルダにあります。ツールをインストールするには、Suptools.msi ファイルをダブルクリックします。
      2. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。ldp と入力し、[OK] をクリックします。
      3. [Connection] をクリックし、[Connect] をクリックし、接続先のサーバー名を入力します。Active Directory 用のポート番号 389 を通じて接続します。
      4. [Connection] をクリックし、[Bind] をクリックして、管理者のユーザー名、パスワード、およびドメインを入力します (このとき、ドメイン管理者またはエンタープライズ管理者の資格情報を使用する必要があります)。[OK] をクリックします。
      5. [Browse] メニューの [Modify] をクリックします。[DN] ボックスは空白のままにします。[Attribute] ボックスに FixUpInheritance と入力します。[Values] ボックスに Yes と入力します。
      6. [Operation] の [Add] をクリックします。
      7. [Enter] をクリックして [Entry List] に値を入力します。[Entry List] に "[Add]fixupinheritance:yes" という文字列が表示されます。
      8. [Run] をクリックします。右側のウィンドウに "Modified" ステータスが示され、セキュリティ記述子伝達子が起動します。セキュリティ記述子伝達子の実行時間は、Active Directory データベースのサイズによって異なります。NTDS Performance オブジェクトの DS Security Propagation Events カウンタが 0 に戻ると、プロセスが完了します。
      9. [Close] をクリックし、[Connection] をクリックし、[Exit] をクリックします。
    関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

    251343 SD 伝達子のスレッドを手動で初期化して Active Directory でオブジェクトの継承されたアクセス許可を評価する

  7. レプリケーション元ドメイン コントローラで、コマンド プロンプトに repadmin /showmeta distinguished_name_path と入力し、イベント ID 1084 で参照されている識別名パスのオブジェクト メタデータを表示します。レプリケーション先ドメイン コントローラでも同じ手順を繰り返します。次のような値の不一致がないかどうかを確認します (ただし、これ以外の値の不一致もあります)。
    • オブジェクトに表示される属性の名前と番号が正しくない。
    • 発生時の時刻または日付のスタンプが正しくない。
    • ローカルの更新シーケンス番号 (USN) が正しくない。
    値が正しくない場合は、オブジェクトをホストするデータベースのページに問題がある可能性があります。


    識別名パスが使用中のオブジェクトを指している場合に Repadmin.exe ツールを使用するには、コマンド プロンプトで次のように入力します。
    repadmin /showmeta remote_domain_controller_name distinguished_name_path_of_reference _object
    オブジェクトが削除済みオブジェクト コンテナにある場合や、Repadmin.exe ツールを使用してオブジェクトを検索できない場合は、オブジェクトの GUID 参照を使用してオブジェクトを検索します。この GUID はイベント ID 1084 で参照されています。検索を行うには、コマンド プロンプトで次のように入力します。
    repadmin /showmeta remote_domain_controller_name "GUID_for_the_object that_is_referenced_in_Event_ID_1084"

    たとえば、イベント ID 1084 とイベント ID 2108 で、GUID が b49cd496-98a2-4500-bb08-58550c2f79ac のオブジェクトが参照されている場合、次のように入力します。
    repadmin /showmeta "b49cd496-98a2-4500-bb08-58550c2f79ac"
    : 引用符が必要です。
  8. 使用しているオペレーティング システムの最新の Service Pack をインストールして、最新の Ntdsutil.exe ツールを入手します。Ntdsutil.exe ツールを使用して、レプリケーション元ドメイン コントローラの Active Directory データベースの整合性チェックを実行します。


    コンピュータをディレクトリ サービス復元モードで起動する前に、オフライン管理者アカウントのパスワードを取得します。管理者アカウントのパスワードを知らない場合は、ディレクトリ サービス復元モードを起動する前に、このモードのパスワードを再設定します。Windows 2000 Service Pack 2 (SP2) 以降を実行しているドメイン コントローラでは、Setpwd.exe コマンドを使用します。Setpwed.exe コマンドは、%Systemroot%\System32 フォルダにあります。Windows Server 2003 ベースのドメイン コントローラでは、Ntdsutil の Set DSRM Password コマンドを使用します。
    ディレクトリ サービス復元モードの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

    258062 Windows または SBS ベースのドメイン コントローラの起動時に "ディレクトリ サービスを開始できません" というエラー メッセージが表示される
    Windows 2000 Server でパスワードを変更する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

    239803 [NT] 修復コンソールの Administrator パスワードを変更する方法
    Windows Server 2003 でパスワードを変更する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

    322672 Windows Server 2003 でディレクトリ サービス復元モードの管理者アカウントのパスワードを再設定する方法
  9. レプリケーション元ドメイン コントローラを再起動し、F8 キーを押してディレクトリ サービス復元モードを起動します。コマンド プロンプトで ntdsutil files integrity と入力し、Enter キーを押します。このコマンドにより、データベースの整合性が確認されます。
    • Ntdsutil.exe ツールでデータベースの破損が報告され、レプリケーション元ドメイン コントローラに名前付けコンテキストのレプリカがある場合は、レプリケーション元ドメイン コントローラを強制的に降格させ、ドライバ、ファームウェア、および Active Directory データベースとトランザクション ログ ファイルをホストする物理ドライブの整合性を確認した後、再度昇格させます。
    • データベースが破損しており、レプリケーション元ドメイン コントローラの名前付けコンテキストのレプリカがない場合は、最新のシステム状態を復元します。Ntdsutil.exe ツールを使用して、再度データベースの整合性を確認します。破損を示すメッセージが依然として表示される場合は、ドメイン コントローラの整合性を確認できるまで、以前のバックアップを順に復元します。
    • データベースの破損が解消されない場合は、最新のシステム状態のバックアップを復元し、コマンド プロンプトで次のように入力します。
      ntdsutil files recover
      Ntdsutil.exe ツールを使用して、再度データベースの整合性を確認します。データベースの整合性チェックが正常に終了した場合は、ディスク パーティションのオフラインでの最適化を実行します。
      関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

      232122 Active Directory データベースのオフライン デフラグの実行
      データベースの整合性チェックを実行するには、コマンド プロンプトで次のように入力し、Enter キーを押します (database_name は Active Directory データベース名です)。
      esentutl.exe /g database_name
      最後に、[Windows を通常起動する] オプションを使用してコンピュータを再起動し、レプリケーション元ドメイン コントローラから問題のレプリケーション先ドメイン コントローラへのレプリケーションを再試行します。データベースの整合性チェックでエラーが発生した場合は、ドメイン コントローラの使用を中止する必要があります。オブジェクトを移行するには、Active Directory 移行ツール (ADMT) を使用します。また、Ldifde.exe ツールと Csvde.exe ツールを使用して、オブジェクトをエクスポートし、新しいレプリケーション先ドメイン コントローラにインポートすることもできます。
      ADMT の使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

      326480 Active Directory 移行ツール バージョン 2 を使用した Windows 2000 から Windows Server 2003 への移行方法
      Ldifde.exe ツールおよび Csvde.exe ツールの使用方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

      237677 LDIFDEを使用したディレクトリ オブジェクトのADへのインポート/エクスポート
      327620 Csvde を使用して連絡先およびユーザー オブジェクトを Active Directory にインポートする方法
      298882 Windows Server 2003 の Active Directory 用新規コマンド ライン ツール
  10. 上記の方法で問題を解決できず、レプリケーション エラーが引き続き発生する場合は、ドメイン コントローラを降格させ、Ntds.dit ファイルをホストする物理ドライブとボリューム、およびディスクのサブシステムの整合性を確認して、再度ドメイン コントローラを昇格させます。このとき、同じコンピュータ名を使用します。
  11. ntdsutil files compact コマンドを使用して、Active Directory データベースのオフラインでの最適化を実行します。
    関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

    232122 Active Directory データベースのオフライン デフラグの実行
  12. コマンド プロンプトで ntdsutil "semantic database analysis" "go" と入力し、Enter キーを押します。


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


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


    : semantic データベース コマンドでは、Windows Server 2003 Service Pack 1 以前の Ntdsutil File Repair コマンドや Esentutl /p コマンドと異なり、Active Directory データベースの破損が修正されません。
他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、将来予告なしに変更されることがあります。マイクロソフトは、掲載している情報に対して、いかなる責任も負わないものとします。