【Active Directory入門 Part13】AD診断系コマンド16個紹介!
この記事の内容
- Active Directory環境の健全性を確認するための診断コマンドを16個紹介します
dcdiag、repadmin、dfsrdiagなど、障害対応や日常運用で頻繁に使うコマンドを解説します- グループポリシーの適用状況確認や、Kerberos認証のトラブルシューティングに使えるコマンドも含みます
- コマンドプロンプト(cmd)上での実行例とともに、実際の出力の見方を説明します
- このシリーズ(Active Directory入門)の最終回として、運用・保守の基礎知識をまとめます
診断コマンドを実行する準備
まずはコマンドプロンプトを起動します。「ファイル名を指定して実行」で cmd と入力してコマンドプロンプトを開き、以下のコマンドを順番に試してみてください。
1. dcdiag ― ドメインコントローラーの総合診断
Active Directory診断において最も重要なコマンドです。これ一つで多くの問題を検出できます。
dcdiag
このコマンドを実行すると、ドメインコントローラーに対してさまざまなテストが自動的に実行されます。すべてのテストが成功(PASSED)していることを確認してください。
結果の見方の注意点
イベントログ関連のチェックは、「24時間以内に発生したエラー」を検出します。そのため、問題が解消された後もしばらくは失敗し続けることがあります。失敗項目があった場合は、実際のイベントログを確認して「今現在もエラーが発生しているか」を必ず確認してください。
詳細モードで実行する
より詳細な診断結果が必要な場合は /v オプションを付けます。通常はこちらを使うことをおすすめします。
dcdiag /v
複数台のDCがある環境での実行
dcdiag には、リモートサーバーをまとめてテストするオプションもありますが、1台ずつログインして実行する方が確実です。各ドメインコントローラーにそれぞれログインし、dcdiag を実行してください。
2. netdom query fsmo ― FSMOロールの確認
FSMOロール(柔軟な単一マスター操作)がどのドメインコントローラーに割り当てられているかを確認します。
netdom query fsmo
dcdiag /v の出力にもFSMOのチェック結果が含まれますが、一覧として見やすく確認したい場合はこのコマンドが便利です。
3. repadmin ― レプリケーション関連コマンド
3-1. レプリケーション状況の確認
現在操作しているドメインコントローラーがどのDCからどのパーティションを複製しているか、また最終複製日時を確認できます。
repadmin /showrepl
または同等のオプション:
repadmin /showreps
すべてのレプリケーションが成功していることが非常に重要です。
3-2. レプリケーションの手動実行
現在操作しているDCのすべての入力方向レプリケーションを強制実行します。
repadmin /syncall
特定のサーバーを指定することもできます。「Active Directoryサイトとサービス」から手動で行うよりも、このコマンドを使う方が効率的です。
repadmin /syncall DC01
repadmin /syncall DC02
repadmin /syncall DC03
プッシュ方向(送信方向)で同期したい場合は /B オプションを追加します(通常は不要)。
repadmin /syncall /B
4. net share ― 共有フォルダの確認
SYSVOL や NETLOGON の共有が正しく存在するかを確認します。
net share
SYSVOLとNETLOGONの両方が表示されることを確認してください。
5. dfsrdiag ― DFS-Rレプリケーションの診断
SYSVOLはDFS-Rで複製されています。その状態を診断するコマンドです。
レプリケーション状態の確認
dfsrdiag replicationstate
出力に 00(同期完了)と表示されていれば正常です。強制同期や停止なども可能ですが、基本的にはこのコマンドで状態確認を行えば十分です。
6. gpresult ― グループポリシーの適用結果確認
グループポリシーが正しく適用されているかを確認します。
簡易表示
gpresult /r
詳細表示(推奨)
gpresult /v
/v オプションを使うと、以下の情報が確認できます。
- 低速リンクかどうか
- コンピューター設定の最終適用日時
- 適用されているGPO(グループポリシーオブジェクト)の一覧
- 各設定の具体的な適用内容
グループポリシーを設定したが反映されないという場合は、対象のコンピューター上でこのコマンドを実行することで原因を特定しやすくなります。GUIの「グループポリシーの結果ウィザード」を使う方法もありますが、コマンドの方がより正確に確認できます。
7. klist ― Kerberosチケットの確認
Kerberos認証に問題が疑われる場合に使います。
現在保持しているチケットの一覧表示
klist
チケットの削除(パージ)
認証の問題をリセットしたい場合は、一度チケットを削除してから再度アクセスし直します。
klist purge
8. nslookup ― DNS名前解決の確認
DNSが正しく機能しているかを確認します。Active Directoryの動作はDNSに強く依存しているため、名前解決のチェックは非常に重要です。
nslookup ドメイン名やホスト名
Windowsには dig コマンドがデフォルトで含まれていないため、nslookup を使って確認します。
9. whoami ― 現在のログインユーザーの確認
現在どのユーザーでログインしているかを確認します。ドメインユーザーとしてログインできているかの確認に使います。
whoami
UPNの確認
AD内のどのユーザーに対応しているかをUPN(ユーザープリンシパル名)形式で確認できます。キャッシュログイン(オフラインログイン)の場合はUPNが表示されないため、キャッシュログイン状態かどうかの確認にも使えます。
whoami /upn
10. set ― 現在使用中のドメインコントローラーの確認
どのドメインコントローラーを使ってログインしているかを確認します。set の後に L 程度まで打つと、先頭が L の環境変数が一覧表示されます。
set LOGONSERVER
LOGONSERVER の値から、現在認証に使っているDCを確認できます。
まとめ
今回紹介したActive Directory診断コマンドをまとめます。
| コマンド | 用途 |
|---|---|
dcdiag | DCの総合診断 |
dcdiag /v | DCの詳細診断 |
netdom query fsmo | FSMOロールの確認 |
repadmin /showrepl | レプリケーション状況の確認 |
repadmin /syncall | レプリケーションの強制実行 |
net share | 共有フォルダの確認 |
dfsrdiag replicationstate | DFS-Rレプリケーション状態の確認 |
gpresult /v | グループポリシー適用結果の詳細確認 |
gpresult /r | グループポリシー適用結果の簡易確認 |
klist | Kerberosチケットの確認 |
klist purge | Kerberosチケットの削除 |
nslookup | DNS名前解決の確認 |
whoami | 現在のログインユーザーの確認 |
whoami /upn | UPN形式でのユーザー確認 |
set LOGONSERVER | 使用中のDCの確認 |
Active Directoryは、内部でエラーが発生していても表面上は正常に動作してしまうケースがあります。マルチマスター構成であるため、一部のDCに問題があっても別のDCが応答してしまい、問題が見えにくくなることがあります。
日常的にこれらの診断コマンドを実行して健全な状態を保つことが、安定したAD運用の基本です。エラーを発見した場合は、放置せず早めに対処することを心がけてください。