ドメイン コントローラーの強制降格時に "DFS Replication アクセスが拒否されました" と表示される問題

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは、Windows サポート チームの赤嶺です。
本記事では、ドメイン コントローラーの強制降格時に “DFS Replication: アクセスが拒否されました” と表示される事象の対処策についてご紹介いたします。

概要

通常、ドメイン コントローラーを撤去する際は、”通常降格” と呼ばれる作業を実施し、ドメイン コントローラーとしての役割を削除します。
この時、降格するドメイン コントローラーは、残りのドメイン コントローラーと通信し、自身がドメイン コントローラーであることを示す情報を削除した上で、降格処理が実施されます。

もしこの通常降格の際に何らかのエラーが発生し、降格処理に失敗する場合は、”強制降格” と呼ばれる作業を実施することにより、エラーを無視して一方的にドメイン コントローラーから降格させることができます。
本来であれば処理中にエラーが発生しても強制的に降格させることができてしまう強制降格ですが、稀にこの強制降格中に “DFS Replication: アクセスが拒否されました” というエラーが発生してしまい、強制降格自体も失敗してしまう事象が報告されています。

この時、降格/昇格の処理が記録される dcpromo.log というログ ファイルには、以下のようなログが記録されます。

[INFO] Error - DFS Replication: アクセスが拒否されました。  (5)

強制的にドメイン コントローラーとしての役割を削除することのできる強制降格をもってしても降格できないとなると、どのようにしてドメイン コントローラーから降格させれば良いのか疑問に思われるお客様もいらっしゃるかもしれません。
本ブログ記事では、そのような状況に陥った場合に、どのように対処すべきかをご紹介いたします。

回避策

上記の事象については、以下の 2 点の手順のいずれかで解消できることが報告されています。

[回避策 1] netdom コマンドでコンピューター アカウントのパスワードをリセットする

以下の公開情報に従い、ドメイン コントローラーのコンピューター アカウントのパスワードをリセットします。

Use Netdom.exe to reset machine account passwords of a Windows Server domain controller (英語)
https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/use-netdom-reset-domain-controller-password

このNetdom.exe使用して、Windows Server ドメイン コントローラーのコンピューター アカウントパスワードをリセットする (機械翻訳)
https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/windows-security/use-netdom-reset-domain-controller-password

[回避策 2] OS をクリーン インストールする

降格予定のサーバーを今後利用する予定がない場合は、OS をクリーン インストールしてしまうことで、より確実に対処することができます。
他のドメイン コントローラー上にクリーン インストールしたサーバーの情報が残りますが、下記のメタデータ クリーンアップを実施することで、対象のサーバーの情報を削除することができます。

具体的な手順の流れは以下の通りです。

[A] FSMO の役割の確認

以下のコマンドを実行し、クリーン インストールする対象のサーバーが FSMO の役割を担っていないか確認します。

netdom query fsmo

以下はコマンドの実行結果の例です。
この場合、DC01 というドメイン コントローラーが FSMO の役割を担っていることが分かります。

C:\Users\Administrator> netdom query fsmo  
スキーマ マスター               DC01.test.local  
ドメイン名前付けマスター        DC01.test.local  
PDC                              DC01.test.local  
RID プール マネージャー         DC01.test.local  
インフラストラクチャ マスター    DC01.test.local  
コマンドは正しく完了しました。  

クリーン インストールする対象のサーバーが FSMO の役割を担っている場合は、他のドメイン コントローラーに FSMO を強制転送します。
FSMO の役割を強制転送する手順については、以下の公開情報をご覧ください。

Transfer or seize FSMO roles in Active Directory Domain Services (英語)
https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/transfer-or-seize-fsmo-roles-in-ad-ds

Active Directory ドメイン サービスで FSMO の役割を転送または取得する (機械翻訳)
https://docs.microsoft.com/ja-jp/troubleshoot/windows-server/identity/transfer-or-seize-fsmo-roles-in-ad-ds

[B] OS のクリーン インストール

降格対象のサーバーで OS をクリーン インストールします。

[C] メタデータ クリーンアップ

ドメイン上から強制降格を行ったドメイン コントローラーに関連する情報を削除します。
本手順は同一ドメイン内で稼働しているいずれかのドメイン コントローラーで実施します。

削除対象のドメイン コントローラーのコンピューター アカウントの削除手順
  1. 稼働中のドメイン コントローラーに管理者権限を有するアカウントでログオンします。
  2. [ファイル名を指定して実行] から dsa.msc を実行します。
  3. 左ペインのツリーを [Active Directory ユーザーとコンピューター] - [<ドメイン名>] - [Domain Controllers] の順に展開します。
  4. 右ペインにて削除対象のドメイン コントローラーを右クリックし、[削除] をクリックします。
  5. “<削除対象のドメイン コントローラー> という名前のコンピューターを削除しますか?” と表示されたら、[はい] をクリックします。
  6. [このドメイン コントローラーは完全にオフラインなため、Active Directory ドメインサービス インストール ウィザード (DCPROMO) を使用して降格できない] をオンにし、[削除] をクリックします。(ドメイン コントローラーがグローバル カタログである場合、”この Active Directory ドメインコントローラーはグローバル カタログです。削除を実行しますか?” と表示されます。)
複製に使用する接続オブジェクトの削除
  1. [ファイル名を指定して実行] から dssite.msc を実行します。
  2. 左ペインのツリーを [Sites] - [< サイト名>] - [Servers] - [<ドメイン コントローラー名>] - [NTDS Settings] の順に展開します。
  3. 右ペインに [レプリケート元サーバー] が <削除対象ドメイン コントローラー> となっているオブジェクトが存在していれば、左ペインの [NTDS Settings] を右クリックし、[すべてのタスク] - [レプリケーション トポロジの確認] をクリックします。しばらく経ってから、”レプリケーション トポロジの確認” というメッセージが表示されたら、[OK] をクリックします。
  4. 右ペインにて [最新の情報に更新] し、<削除対象ドメイン コントローラー> とのオブジェクトが削除されることを確認します。
  5. 左ペインにて [Sites] - [<削除対象ドメイン コントローラーのサイト名>] - [Servers] - [<削除対象ドメイン コントローラー>] を選択した状態で、右クリックして表示されるメニューで [削除] をクリックします。
FRS または DFSR のオブジェクトの削除 (削除されていることの確認を含む)
  1. [ファイル名を指定して実行] から adsiedit.msc を実行します。
  2. [ADSI エディター] を右クリックし、[接続] をクリックします。
  3. 接続の設定画面で既定の状態で [OK] をクリックします。
  4. 左ペインのツリーを [既定の名前付けコンテキスト [<ドメイン コントローラー名>]] - [<ドメインの DN>] - [CN=System] - [CN=File Replication Service] - [CN=Domain System Volume (SYSVOL share)] の順に展開します。
  5. [CN=<削除対象ドメイン コントローラー>] が存在していれば削除します。
  6. 左ペインのツリーを [既定の名前付けコンテキスト [<ドメイン コントローラー名>]] - [<ドメインの DN>] - [CN=System] - [CN=DFSR-GlobalSettings] - [CN=Domain System Volume] - [CN=Topology] の順に展開します。
  7. [CN=<削除対象ドメイン コントローラー>] が存在していれば削除します。
DNS レコードの削除 (削除されていることの確認を含む)
  1. [ファイル名を指定して実行] から dnsmgmt.msc を実行します。
  2. [前方参照ゾーン] - [_msdcs.<フォレスト ルート ドメイン>] 配下に、[データ] が <削除対象ドメイン コントローラー> となっている CNAME レコードが存在すれば削除します。
  3. [前方参照ゾーン] - [<削除対象ドメイン コントローラーが所属するドメイン>] ゾーン配下の NS レコードのプロパティを開きます。
  4. [ネーム サーバー] タブで <削除対象ドメイン コントローラー> の FQDN が表示されていれば、そのエントリを選択し、[削除] をクリックし、 [OK] をクリックします。
  5. [前方参照ゾーン] - [<削除したドメイン コントローラーが所属するドメイン>] ゾーン配下に [名前] が <削除対象ドメインコントローラー> となっている A レコードが存在する場合は削除します。また、サブ フォルダー内に [データ] が <削除対象ドメイン コントローラー> となっている SRV レコードが存在すれば削除します。

変更履歴

2021/3/3: 本ブログの公開