【解決方法】DFS Replication ID 4012 について詳細と対処策

イベント ビューアーにある [アプリケーションとサービス ログ] の配下にある、[DFS Replication] にイベント ID 4012 は、ドメイン コントローラーが長期間 SYSVOL の DFSR 複製ができない状況であったために、複製を停止している状態であることを示すイベント ログです。

今回は、DFSR ID 4012 エラーの詳細や対処策について紹介します。

 

イベント ID 4012 の概要

[アプリケーションとサービス ログ] – [DFS Replication] のイベント ログに、以下のエラー イベント ログが記録されることがあります。

ログの名前: DFS Replication
ソース: DFSR
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4012
タスクのカテゴリ: なし
レベル: エラー
キーワード:
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
“DFS レプリケーション サービスは、次のローカル パスのフォルダーのレプリケーション を停止しました: C:\Windows\SYSVOL\domain。このサーバーは、MaxOfflineTimeInDays パラメーターで許可 される時間 (60) よりも長い 132 日間、他のパートナーから切断されています。 DFS レプリケーションはこのフォルダーのデータが失効したと判断し、このサーバーは このエラーが修正されるまでフォルダーをレプリケートしません。
このフォルダーのレプリケーションを再開するには、DFS の管理スナップインを使用して レプリケーション グループからこのサーバーを削除し、グループに追加し直してください。 これにより、サーバーで初期同期タスクが実行され、レプリケーション グループの他の メンバーの最新データによって失効データが置き換えられます。

追加情報:
エラー: 9061 (レプリケートされたフォルダーがオフラインになっている時間が長すぎます。)
レプリケートされたフォルダーの名前: SYSVOL Share
レプリケートされたフォルダーの ID: 300D277E-626B-41C1-B171-4C6DAB33E6D1
レプリケーション グループ名: Domain System Volume
レプリケーション グループ ID: 7F3513BF-AE88-46ED-A9D8-46683B57D7B6
メンバー ID: 6CCB142D-27F7-4D5F-85D1-FBBE3F21D20F”

※追加情報に記載されているレプリケーション フォルダーやグループ等の情報は環境によって異なります。
イベント ID 4012 は、DFSR を稼働させているサーバー上で、長期間、他の DFSR の複製パートナーと複製できてないなかったために、複製を自動停止したことを示すエラーです。長期間というのは、MaxOfflineTimeInDays  という設定値で定義されている日数以上の期間のことを指します。このエラーが記録されていると、DFSR サービスが起動しても、そのままの状態では複製を再開することはできません。
DFSR は、ドメイン コントローラー間の SYSVOL の複製にも利用されていることがあります。DFSR での SYSVOL 共有の複製は、ドメインの機能レベル Windows Server 2008 以降より利用できます。ドメイン コントローラーの [DFS Replication] のイベント ログにて、イベント ID 4012 エラーが記録されている場合、SYSVOL の複製ができない環境であることが想定されます。その場合、他のドメイン コントローラーから最新の SYSVOL のデータを複製してくることができないため、古いグループ ポリシーの設定を配布するような状態となってしまいます。

DFSR には、最大のオフライン期間を定義する MaxOfflineTimeInDays という設定値があります。DFSR のメンバーがオフラインで長期間複製できていない場合、その他の DFSR メンバーが保持する最新のフォルダ内のデータの差分が大きくなる可能性が考えられます。そのような状態で、複製を再開させたときにデータが損失されないように、長期間複製できていない DFSR メンバーは複製を自動停止するという動作があります。自動停止されるまでのオフラインの期間を決めている設定値が MaxOfflineTimeInDays です(既定値は 60 日)。DFSR メンバーのサーバーにて、MaxOfflineTimeInDays で定義された期間以上、複製ができていないことを検知すると、DFSR 複製は自動停止されます。ドメイン コントローラーにてイベント ID 4012 エラーが記録された場合、SYSVOL の複製が停止した状態が続く状態となるため、複製を再開するための対処が必要となります。
 

MaxOfflineTimeInDaysの設定の確認方法

DFSR メンバーの最大のオフライン期間を定義する MaxOfflineTimeInDays の設定は、サーバーごとに設定できます。MaxOfflineTimeInDays の設定値を確認するには、対象のドメイン コントローラー上で wmic コマンドもしくは dfsrdiag コマンドを実行することにより確認することができます。各コマンドでの確認方法は以下の通りです。

wmic コマンドでの確認方法

wmic コマンドにて、MaxOfflineTimeInDays  の設定値を確認することができます。

1) 対象のドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) 管理者権限でコマンド プロンプトを開きます。

3) 以下のコマンドを実行します。

wmic /node:”%computername%” /namespace:\\root\microsoftdfs path DfsrMachineConfig get MaxOfflineTimeInDays

 

実行例:

C:\>wmic /node:”%computername%” /namespace:\\root\microsoftdfs path DfsrMachineConfig get MaxOfflineTimeInDays
MaxOfflineTimeInDays
60

C:\>

※ 太字となっている数字が MaxOfflineTimeInDays として設定されている日数です。

 

dfsrdiag コマンドでの確認方法

dfsrdiag コマンドにて、MaxOfflineTimeInDays  の設定値を確認することができます。dfsrdiag コマンドを利用するには、[DFS 管理ツール] の機能がインストールされている必要があります。[DFS 管理ツール] の機能は、[役割と機能のインストール] のウィザードよりインストールすることができます。

1) 対象のドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) 管理者権限でコマンド プロンプトを開きます。

3) 以下のコマンドを実行します。

dfsrdiag dumpmachinecfg

 

実行例:

C:\>dfsrdiag dumpmachinecfg

コンピューターの構成パラメーター:
ConflictHighWatermarkPercent : 90
ConflictLowWatermarkPercent : 60
DebugLogFilePath : C:\Windows\debug
DebugLogSeverity : 4
Description :
DsPollingIntervalInMin : 60
EnableDebugLog : TRUE
EnableLightDsPolling : TRUE
LastChangeNumber : 5
LastChangeSource : administrator
LastChangeTime : 20221028065735.000000-000
MaxDebugLogFiles : 1000
MaxDebugLogMessages : 200000
MaxOfflineTimeInDays : 60
ReghostingRateInMin : 60
RootHighWatermarkPercent : 100
RootLowWatermarkPercent : 80
RpcPortAssignment : 0
StagingHighWatermarkPercent : 90
StagingLowWatermarkPercent : 60
StopReplicationOnAutoRecovery : FALSE

成功した操作

C:\>

 

 

対処策

MaxOfflineTimeInDays で設定されている以上の期間、DFSR 複製が行えずに自動複製が停止している状態の場合、複製を再開させるための対処策の実施が必要です。ドメイン コントローラーにて、SYSVOL の DFSR 複製を再開させる方法として、以下の 2 通りの方法があります。

  1. MaxOfflineTimeInDays の設定を延長
  2. DFSR の初期化

詳細な手順は以下の通りです。

 

MaxOfflineTimeInDays の設定を延長

MaxOfflineTimeInDays の既定値は 60 日であるため、60 日を超過して DFSR 複製できない DFSR メンバーは複製が停止します。複製を再開するための対処策として、MaxOfflineTimeInDays の日数を延長することで、複製を再開できるように構成します。

1) 複製が自動停止されているドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) 管理者権限でコマンド プロンプトを開きます。

3) 以下のコマンドを実行し、MaxOfflineTimeInDays の設定を変更します。

    wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=180

※ 上記のコマンドは、MaxOfflineTimeInDays の値は 180 日に変更する設定となります。

4) 以下のコマンドを実行して、DFSR サービスを再起動します。

    net stop dfsr && net start dfsr

 

 確認方法
 DFSR サービスを再開させた後、数日経過観察をして、DFSR エラーが記録されていないことを確認してください。
 
DFSR エラーが解消されたら、MaxOfflineTimeInDays の設定を切り戻しすることをおすすめします。
1) 管理者権限でコマンド プロンプトを開きます。

2) 以下のコマンドを実行し、MaxOfflineTimeInDays の設定を変更します。

    wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=60

※ 上記のコマンドは、MaxOfflineTimeInDays の値は 60 日に変更する設定となります。

3) 以下のコマンドを実行して、DFSR サービスを再起動します。

    net stop dfsr && net start dfsr

 

長期間複製できていないドメイン コントローラーにて、SYSVOL のデータの差分が大きくなる可能性があり、複製を再開させたときにデータが損失されないように、60 日(MaxOfflineTimeInDays の既定値)複製できないと自動停止する機能が用意されています。そのため、MaxOfflineTimeInDays の値は複製が再開したら、元の設定に戻すことをおすすめします。
 

SYSVOL の初期化

イベント ID 4012 が記録された端末がドメイン コントローラーで、複製対象のフォルダーが SYSVOL である場合、SYSVOL の初期化を行う方法も有効です。イベント ID 4012 からの復旧のための SYSVOL の初期化には、”SYSVOL の権限のないリストア(D2)” を行います。
SYSVOL の権限のないリストア(D2)は、SYSVOL のデータを全て破棄し、他のドメイン コントローラーから複製します。
ドメイン コントローラーで SYSVOL を D2 の初期化を行うには、対象のドメイン コントローラーにて [DFS 管理ツール] をインストールする必要があります。D2 の初期化を行うには、初期化を行うドメイン コントローラーにて以下の作業を実施する必要があります。
 

DFS 管理ツールのインストール

SYSVOL の D2 リストアを行うドメイン コントローラーに [DFS 管理ツール] をインストールします。

1) 初期化を行うドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) [サーバー マネージャー] から [管理] – [役割と機能の追加] をクリックします。

3) [開始する前に] にて、[次へ] をクリックします。

4) [インストールの種類の選択] にて、[役割ベースまたは機能ベースのインストール] を選択した状態で [次へ] をクリックします。

5) [対象サーバーの選択] にて、自身のサーバーが選択されていることを確認して [次へ] をクリックします。

6) [サーバーの役割の選択] にて、そのまま [次へ] をクリックします。

7) [機能の選択] にて、以下の機能を有効にします。

[リモート サーバー管理ツール] – [役割管理ツール] – [ファイル サービス ツール] – [DFS 管理ツール]

 

8) [インストール オプションの確認] にて、[インストール] をクリックします。

9) “<ホスト名> でインストールが正常に完了しました。” と表示されたらウィザードを閉じます。

 

[DFS 管理ツール] のインストール後の OS 再起動は不要です。
 
 

DFSR データベースの初期化

DFSR の複製状態を管理している DFSR データベースを初期化します。
1) 管理者権限でコマンド プロンプトを開いて、以下のコマンドを実行して DFSR サービスを停止します。
   net stop dfsr
2) 以下のコマンドを実行して、カレントディレクトリを “ystem Volume Information\DFSR” にします。

   cd “C:\System Volume Information\DFSR”

3) dir コマンドを実行して、DFSR データベースのファイル名(database_ から始まるファイル)を確認します。
実行例:

C:\System Volume Information\DFSR>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 90A1-147D です

C:\System Volume Information\DFSR のディレクトリ

2022/11/06 18:57 <DIR> .
2022/11/06 18:57 <DIR> ..
2022/11/06 18:57 0 $db_normal$
2022/11/06 21:03 <DIR> Config
2022/11/06 21:05 <DIR> database_2E90_A145_90A1_147D
2022/11/06 18:57 <DIR> Private
1 個のファイル 0 バイト
5 個のディレクトリ 123,235,168,256 バイトの空き領域

C:\System Volume Information\DFSR>

 

4) 以下のコマンドを実行して、手順 3 で確認した DFSR データベースのファイル名の名前を変更します。

   ren database_2E90_A145_90A1_147D database_2E90_A145_90A1_147D_old

※上記のコマンドは、ファイル名に _old のサフィックスを追加した名前に変更されます。
    DFSR データベースのファイル名は環境ごとに異なりますので、環境に応じてファイル名の指定を変更してください。

 

5) 以下のコマンドを実行して、DFSR サービスを再開します。

   net start dfsr

6) 以下のコマンドを実行して、DFSR データベースが新たに作成されていることを確認します。

実行例

C:\System Volume Information\DFSR>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 90A1-147D です

C:\System Volume Information\DFSR のディレクトリ

2022/11/06 21:13 <DIR> .
2022/11/06 21:13 <DIR> ..
2022/11/06 21:13 0 $db_normal$
2022/11/06 21:13 <DIR> Config
2022/11/06 21:13 <DIR> database_2E90_A145_90A1_147D
2022/11/06 21:05 <DIR> database_2E90_A145_90A1_147D_old
2022/11/06 18:57 <DIR> Private
1 個のファイル 0 バイト
6 個のディレクトリ 123,211,411,456 バイトの空き領域

C:\System Volume Information\DFSR>

 

SYSVOL の初期化

DFSR データベースを初期化したら、SYSVOL を初期化(データを完全削除して、他のドメイン コントローラーから SYSVOL を複製)します。

1) 管理者権限でコマンド プロンプトを開いて、以下のコマンドを実行して DFSR サービスを停止します。
   net stop dfsr
2) [ファイル名を指定して実行] を開き、adsiedit.msc と入力して [OK] をクリックします。
3) 画面の左ペインにて [ADSI エディター] を選択した状態で、[操作] – [接続] をクリックします。
4) [接続の設定] にて、既定の設定のまま [OK] をクリックします。
5) [既定の名前付けコンテキスト] の配下にある、以下のオブジェクトを選択します。
[DC=<ドメイン名>] – [OU=DomainControllers] – [CN=<対象のDC>] – [CN=DFSR-LocalSettings] – [CN=Domain SystemVolume]
※ <対象の DC> とは、SYSVOL の初期化する対象のドメイン コントローラーのホスト名のオブジェクトです。
6) 画面の右ペインの [C=SYSVOL Subscription] を右クリックして [プロパティ] をクリックします。
 
6) [属性エディター] タブから、msDFSR-Enabled の属性を FALSE に変更します。
 
7) 管理者権限でコマンド プロンプトを開き、以下のコマンドを実行して手動で AD データベースを複製します。
   repadmin /syncall /eA
   repadmin /syncall /eAP
 
8) 以下のコマンドを実行し、DFSR サービスを再開します。
    net start dfsr
9) 以下のコマンドを実行し、同期を開始します。
   DFSRDIAG POLLAD
※ DFSRDIAG POLLAD を実行した後、DFS Replication にイベント ID 4114 ログが記録されているか確認します。

ログの名前: DFS Replication
ソース: DFSR
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4114
タスクのカテゴリ: なし
レベル: 情報
キーワード: クラシック
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
ローカル パス C:\Windows\SYSVOL\domain のレプリケート フォルダーは無効になっています。このフォルダーは、 有効にするまで、レプリケーションに参加させることはできません。このフォルダーを有効に すると、そこに保存されているデータはすべて、既存のデータとして扱われます。

追加情報:
レプリケート フォルダー名: SYSVOL Share
レプリケート フォルダー ID: 6C46F99C-B25B-4E8D-887C-98810C62E49C
レプリケーション グループ名: Domain System Volume
レプリケーション グループ ID: 632774C6-148C-432F-BE6E-80E234B45D34
メンバー ID: 50A80270-F176-4CC7-B2D0-99EA2EAC620F

 
10) ADSI エディターで、先程編集した [C=SYSVOL Subscription] を右クリックして [プロパティ] をクリックします。
11) [属性エディター] タブから、msDFSR-Enabled の属性を TRUE に変更します。
 
12) 管理者権限でコマンド プロンプトを開き、以下のコマンドを実行して手動で AD データベースを複製します。

   repadmin /syncall /eA
   repadmin /syncall /eAP
13) 以下のコマンドを実行し、同期を開始します。

   DFSRDIAG POLLAD
※ DFSRDIAG POLLAD を実行した後、DFS Replication にイベント ID 4614、4604 ログが記録されていることを確認します。
 
ログの名前: DFS Replication
ソース: DFSR
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4614
タスクのカテゴリ: なし
レベル: 警告
キーワード: クラシック
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
DFS レプリケーション サービスは、ローカル パス C:\Windows\SYSVOL\domain で SYSVOL を初期化し、 初期レプリケーションの実行を待機しています。レプリケート フォルダーは、 パートナー でレプリケートするまで初期同期状態を維持します。サーバーが ドメイン コントローラーに昇格している場合は、この問題が解決されるまでドメイン コントローラーはアドバタイズしません。これは、指定されたパートナー自体が初期 同期状態にあるか、共有違反がサーバー上か同期パートナー上で発生した場合 に発生します。このイベントがファイル レプリケーションサービス (FRS) から DFS レプリケーションへの SYSVOL の移行により発生した場合は、この問題が解決 されるまで変更はレプリケートされません。これは、サーバー上の SYSVOL フォ ルダーが他のドメイン コントローラーと同期ができなくなる原因となります。

追加情報:
レプリケート フォルダー名: SYSVOL Share
レプリケート フォルダー ID: 6C46F99C-B25B-4E8D-887C-98810C62E49C
レプリケーション グループ名: Domain System Volume
レプリケーション グループ ID: 632774C6-148C-432F-BE6E-80E234B45D34
メンバー ID: 50A80270-F176-4CC7-B2D0-99EA2EAC620F

ログの名前: DFS Replication
ソース: DFSR
日付: YYYY/MM/DD HH:MM:SS
イベント ID: 4604
タスクのカテゴリ: なし
レベル: 情報
キーワード: クラシック
ユーザー: N/A
コンピューター: <コンピューター名>
説明:
DFS レプリケーション サービスは、ローカル パス C:\Windows\SYSVOL\domain の SYSVOL レプリケート フォルダーの 初期化に成功しました。このメンバーは、パートナー <コンピューター名> との SYSVOL の初期同期を完了して います。SYSVOL 共有をチェックするには、「net share」と入力してください。

追加情報:
レプリケート フォルダー名: SYSVOL Share
レプリケート フォルダー ID: 6C46F99C-B25B-4E8D-887C-98810C62E49C
レプリケーション グループ名: Domain System Volume
レプリケーション グループ ID: 632774C6-148C-432F-BE6E-80E234B45D34
メンバー ID: 50A80270-F176-4CC7-B2D0-99EA2EAC620F
同期パートナー: <コンピューター名>

 
ID 4604 ログが記録されていれば、SYSVOL の初期複製は正常に完了しています。