そこそこのPC台数のある環境ではActiveDirectory(以下AD)を利用している企業も多いと思います。オンプレ環境で運用しているとハードウェアの老朽化に伴う更新切替は避けては通れない作業です。そしてADは認証基盤であり、ファイルサーバなどのアクセス権限を管理しているシステムなので切替はミスれない...そんな切替作業でのトラブルを備忘録もかねてご紹介します。
一般的なAD移行については以前記事にしましたのでご参考までに
https://qiita.com/u-bayashi/items/0f06599cba61e96be25f
【前提・環境】
当該環境はADサーバ(ドメインコントローラ)が1台のシングル構成でした。移行にあたり準備として、まず切替先となるドメインコントローラを環境に追加し、ドメインコンピュータ間でデータ同期後に旧ドメインコントローラを一般メンバーサーバに降格して再度シングル構成にするという流れでした。図にするとこんな感じです。
準備段階で以下内容の確認を取っています。
- [Active Directoryユーザーとコンピューター]の[Domain Controllers]のOU内に切替先のサーバ名が登録されている
- 切替元と切替先サーバで「dcdiag /test:advertiseing」、「repadmin /showrepl」、「repadmin /syncall」をそれぞれ実行し、エラーが発生していない
dcdiag /test:advertiseingは実行するとこんな感じで表示されます。
切替先サーバもドメインコントローラとして認識しているし、同期も取れているのでヨシ!と思っていました...
【発生した事象】
①旧ドメインコントローラで一般メンバーサーバへの降格ができない(DC降格処理の途中でエラーが発生して止まる)
【エラーメッセージ】
次のエラーにより、操作に失敗しました。
ドメインコントローラはこのコンピュータのアカウントが含まれるドメイン{ドメイン名}に接続できませんでした。コンピュータをワークグループのメンバーにし、昇格を再試行する前にドメインに再度参加させてください。
"指定されたドメインがないか、またはアクセスできません"
ちなみにエラー画面ですがこんな感じです。
降格しようとしているドメインコントローラの他に切替先となるドメインコントローラも構築しており、NICのDNS値も切替先ドメインコントローラにしているので、名前解決できないはずはない...実際にnslookupなどで名前解決はできている...
そう思い、何度か同じ操作とサーバ再起動をすると今度はサーバマネージャーに以下のような警告が表示され、結局ドメインコントローラから降格できない。
②FSMOは切替済みにも関わらず、クライアントPCからファイルサーバへのアクセス時にアクセス権が切替先ADで利用できない(どのドメインユーザでもファイルサーバにアクセスできない)
③クライアントPCでコマンドプロンプトから「gpupdate /force」してもGPOを取得できない
降格予定のドメインコントローラサーバ側で事象①が発生したことにより、クライアントPC側で事象②と③が発生しているものと思われます。
【原因】
結論から言うと 「DFSRでドメインコントローラ間のデータ同期ができていなかった」 ことが原因です。切替元と切替先サーバで「dcdiag /test:advertiseing」、「repadmin /showrepl」、「repadmin /syncall」でエラーはなかったので同期はされていると認識でした。以下マイクロソフトさんのブログにも「repadmin /showrepl」の結果と「dcdiag /v」のAdvertisingの項目の結果が正常であれば「ドメイン コントローラー、およびグローバル カタログとして正常に機能していると判断」とあるので、この出力結果をもとに同期もOKだと思っていました。
ただマイクロソフトさんのブログをよく読むと「システム、ディレクトリ サービス、DNS サーバー、DFS Replication の各種イベント ログにおいて、異常を示唆するようなエラーや警告のイベントが記録されていないか」という文言もあります。
切替元のドメインコントローラのイベントビューアを確認していくと怪しいログがありました。
DFSレプリケーション イベント ログのエラー4012
エラー内容を読んでいくと「このサーバはこのエラーが修正されるまでフォルダーを レプリケートしません 」と書かれています。
SYSVOLフォルダーをレプリケートしない?!
いや、でも「repadmin /showrepl」、「repadmin /syncall」の結果は成功しているんですけど...
状況よく分からないけど「規定値よりも長い期間レプリケート先と通信できていないので、通信できるまで同期しない」ということになっているようです。またDFSRログ内のレプリケート先としてはかなり昔に導入したADサーバのホスト名が指定されており、そりゃぁ、そのサーバとはレプリケーションはできないわという状態でした。前回のAD切替時にちゃんと昔に導入したADサーバの降格処理が行われず、同期先として認識したままになっていたようです。
「repadmin /showrepl」と「repadmin /syncall」のコマンド結果の「正常」とはなんだったのか...
【解決方法】
FSMOを切替元のドメインコントローラに戻して、以下の記事を参考にレプリケーションの期限規定値を設定変更し、DFSRサービスを再起動しました。
実行したコマンド
#レプリケーションの期限規定値規定値を3000日に変更
wmic.exe /namespace:\\root\microsoftdfs path DfsrMachineConfig set MaxOfflineTimeInDays=3000
#DFSRサービスの停止
net stop dfsr
#DFSRの起動
net start dfsr
上記コマンド実行後にFSMOを再度切替先に移行し、切替元サーバをドメインコントローラから正常操作で降格することができました。
【今回の事象を含めAD切替の確認ポイント】
FSMO切替前(新規DCを追加した状態)に切替元DC、切替先DCのそれぞれで
① repadmin /showrepl →正常と表示されること
② repadmin /syncall →エラーが発生しないこと
③ dcdiag /test:advertising →[connectivity]と[Advertising]のテストに合格すること
④ イベントビュアーのDFSRで正常に同期できているログがあること
⑤ FSMOが切替元DCであること
上記が確認できればOK
FSMO切替後(新規DCをFSMOに移行した状態)に切替元DC、切替先DCのそれぞれで
① repadmin /showrepl →正常と表示されること
② repadmin /syncall →エラーが発生しないこと
③ dcdiag /test:advertising →[connectivity]と[Advertising]のテストに合格すること
④ イベントビュアーのDFSRで正常に同期できているログがあること
⑤ FSMOが切替先DCであること
上記が確認できればOK
切替元、切替先でサーバのIPアドレスやホスト名が変更になる場合はGPOにIPアドレスやホスト名を記載したポリシーがないか確認しましょう。特にWSUSや何かの配布ポリシーは場所を指定しているので、変更になる場合はGPOの中身も修正が必要になります。
参考にしたサイト