Active Directoryドメインコントローラーの正常性とレプリケーション状態を確認する方法
Active Directoryは信頼性の高いサービスですが、同時に複雑であり、企業ネットワーク全体の稼働を支える極めて重要な基盤です。エンタープライズ環境においてActive Directoryが停止すれば業務全体に深刻な影響が及ぶため、システム管理者は常日頃からその動作状態を監視・診断しておく必要があります。本記事では、Active Directoryのドメイン、ドメインコントローラー(DC)、およびレプリケーションの健全性をチェック・診断するための主要な方法を詳しく解説します。
目次
- dcdiagを使ったADドメインコントローラーの正常性チェック
- DC間のActive Directoryレプリケーションエラーの確認
dcdiagを使ったADドメインコントローラーの正常性チェック
Dcdiagは、Active Directoryドメインコントローラーの正常性を確認するための基本的な組み込みツールです。特定のドメインコントローラーの状態を素早く確認するには、以下のコマンドを実行します。
dcdiag /s:DC01
このコマンドは、指定したドメインコントローラーに対して複数のテストを順次実行し、各テストの結果(Passed/Failed)を返します。
主なテスト項目
- Connectivity – DCがDNSに正しく登録されているかを確認し、テスト用のLDAP接続とRPC接続を確立します。
- Advertising – DC上で公開されているロールやサービスを確認します。
- FRSEvent – ファイルレプリケーションサービスのエラー(SYSVOLレプリケーションエラー)の有無を確認します。
- FSMOCheck – DCがKDC、PDC、グローバルカタログサーバーに接続できるかを確認します。
- MachineAccount – DCアカウントがADに正しく登録されているか、ドメインの信頼関係が適切かを確認します。
- NetLogons – レプリケーション処理に必要なログオン権限を確認します。
- Replications – ドメインコントローラー間のレプリケーション状態と、エラーの有無を確認します。
- KnowsOfRoleHolders – FSMOロールを保持するドメインコントローラーの可用性を確認します。
- Services – ドメインコントローラー上の各種サービスが実行中であるかを確認します。
- Systemlog – DCのシステムログにエラーが記録されていないかを確認します。
すべてのdcdiagテストの詳細については、Microsoftの公式ドキュメントを参照してください。
追加の診断オプション
デフォルトのテストに加えて、以下のような追加チェックも実行できます。
- Topology – KCC(ナレッジ整合性チェッカー)がすべてのDCに対して完全なレプリケーショントポロジを生成しているかを確認します。
- CheckSecurityError – セキュリティに関連するエラーを検出します。
- CutoffServers – パートナーDCが利用できないためにレプリケーションが滞留しているサーバーを検出します。
- DNS – 6種類のDNSチェックが用意されています(
/DnsBasic、/DnsForwarders、/DnsDelegation、/DnsDynamicUpdate、/DnsRecordRegistration、/DnsResolveExtName)。 - OutboundSecureChannels – 送信方向のセキュアチャネルを検証します。
- VerifyReplicas – アプリケーションパーティションが正しくレプリケートされているかを確認します。
- VerifyEnterpriseReferences – エンタープライズレベルの参照整合性を検証します。
たとえば、すべてのドメインコントローラーでDNSが正しく機能しているかを一括確認するには、次のコマンドを使用します。
dcdiag.exe /s:DC01 /test:dns /e /v
実行すると、全DCにおけるDNSの名前解決結果をまとめたサマリーテーブルが表示されます。すべてのセルにPassと表示されれば問題ありません。Failが表示された場合は、対象のDCに対して個別にテストを実行して原因を絞り込みます。
dcdiag.exe /s:DC01 /test:dns /DnsForwarders /v
結果の保存と要約表示
テスト結果の詳細情報をテキストファイルに保存して後から分析するには、以下のコマンドが便利です。
dcdiag /s:DC01 /v >> c:\ps\dc01_dcdiag_test.log
また、次のPowerShellコマンドを使えば、実行されたdcdiagテストの合否結果だけを抽出して表示できます。
Dcdiag /s:DC01 | select-string -pattern '\. (.*) \b(passed|failed)\b test (.*)'
便利なオプション
ドメイン内のすべてのドメインコントローラーの状態を一括取得するには:
dcdiag.exe /s:woshub.com /a
検出されたエラーのみを表示したい場合は、/qオプションを使用します。
dcdiag.exe /s:dc01 /q
筆者の検証環境では、このコマンドにより以下のようなレプリケーションエラーが検出されました。
SYSVOL共有後24時間以内に警告またはエラーイベントが記録されています。SYSVOLレプリケーションの失敗はグループポリシーの適用問題につながる可能性があります。 ......................... DC01 failed test DFSREvent
さらに、/fixオプションを付けると、DCアカウントのService Principal Names(SPN)に関するエラーを自動修復させることができます。
dcdiag.exe /s:dc01 /fix
DC間のActive Directoryレプリケーションエラーの確認
Active Directoryドメイン内のレプリケーション状態を確認するには、組み込みのrepadminツールを使用します。
ADレプリケーションを確認するための基本コマンドは以下の通りです。
repadmin /replsum
このコマンドは、すべてのDC間の現在のレプリケーション状況を一覧表示します。理想的な状態としては、最大遅延時間(largest delta)が1時間未満であること(ADトポロジやサイト間レプリケーションの頻度設定に依存)、そしてエラー数が0であることが挙げられます。筆者の例では、過去のあるレプリケーションに14日かかった記録が残っていますが、現時点では正常に復旧しています。
repadminの主なコマンド
ドメイン内のすべてのDCのレプリケーションを確認する場合:
repadmin /replsum *
サイト間(intersite)レプリケーションをテストする場合:
repadmin /showism
レプリケーショントポロジとエラー(存在する場合)を表示する場合:
repadmin /showrepl
このコマンドは各ディレクトリパーティションについて、最後に成功したレプリケーションの日時(last attempt xxxx was successful)を返します。より詳細な情報を表示するには、ワイルドカードを付けて実行します。
repadmin /showrepl *
その他にも、以下のようなオプションが用意されています。
- /rodcpwdrepl – 書き込み可能なドメインコントローラーから読み取り専用ドメインコントローラー(RODC)へのパスワードレプリケーションを手動で実行します。
- /replicate – 指定したディレクトリパーティションのレプリケーションを特定のDCに対して即時開始します。
指定したDCをそのすべてのレプリケーションパートナーと強制同期するには、次のコマンドを使用します。
replmon /syncall <nameDC>
レプリケーションキューの状態を確認するには:
repadmin /queue
正常な状態であれば、レプリケーションキューは空であるのが理想です。
現在のドメインコントローラーの最新バックアップ日時を確認するには:
Repadmin /showbackup *
PowerShellによるレプリケーション監視
PowerShellを使ってレプリケーション状態を確認することも可能です。たとえば、次のコマンドは検出されたすべてのレプリケーションエラーをOut-GridViewの表形式で表示します。
Get-ADReplicationPartnerMetadata -Target * -Partition * | Select-Object Server,Partition,Partner,ConsecutiveReplicationFailures,LastReplicationSuccess,LastRepicationResult | Out-GridView
筆者は、ADのレプリケーション状態を定期的にチェックするために使用しているPowerShellスクリプトをGitHubリポジトリで公開しています。このスクリプトはHTML形式のレポートを生成し、Send-MailMessageコマンドレットを使ってメール送信まで自動化できます。
https://github.com/maxbakhub/winposh/blob/main/ADHealthCheck.ps1
ADDS基本サービスの稼働確認
Get-Serviceコマンドレットを使用すれば、ドメインコントローラー上で動作すべきADDSの基本サービスが正常に起動しているかも確認できます。確認すべき主なサービスは以下の通りです。
- Active Directory Domain Services(
ntds) - Active Directory Web Services(
adws)– AD PowerShellモジュールのすべてのコマンドレットはこのサービス経由で接続します - DNS(
dnscacheおよびdns) - Kerberos Key Distribution Center(
kdc) - Windows Time Service(
w32time) - NetLogon(
netlogon)
Get-Service -name ntds,adws,dns,dnscache,kdc,w32time,netlogon -ComputerName dc01
まとめ
本記事では、Active Directoryドメインの健全性を診断するために活用できる基本的なツール(dcdiag、repadmin)、コマンド、およびPowerShellスクリプトを紹介しました。これらはGUIを持たないServer Coreモードで稼働するドメインコントローラーを含む、サポート対象のすべてのWindows Serverバージョンで利用できます。日常的なヘルスチェックを自動化・ルーティン化することで、障害の早期発見とエンタープライズネットワークの安定稼働につながります。
-
Active Directory ドメイン サービスが現在利用できない問題を修正する
一連の Active Directory ドメイン サービスによって、PC のコマンドと指示を承認し、有効にすることができます。管理者権限を必要とするプログラムやアプリケーションにアクセスしようとすると、パスワードが要求されます。このアクティビティは、Active Directory によって維持および管理されています .また、PC が次のような外部デバイスに接続するのにも役立ちます。 プリンターとルーター .この最新のテクノロジにより、ユーザーは、ワイヤレス プリンターや類似のデバイスを介して、快適な場所からドキュメントを収集できるようになりました。このモダン テクノの世界のすべての利点とは
-
【解決済み】Active Directory を 2012/2016 に移行した後のイベント ID 13577「FRS は非推奨」エラーの対処法
このチュートリアルでは、Active Directory 2003 から AD 2008、2012、または 2016 への移行後に、ファイル レプリケーション サービス(FRS)から次のような警告イベントが記録される問題の解決方法を解説します。「Event 13577, NtFrs: File Replication Service (FRS) is deprecated. To continue replicating the SYSVOL folder, you should migrate to DFS Replication by using the DFSRMIG command..