今回は、Active Directory ドメイン環境を管理するドメインコントローラーの正常性確認方法についてまとめてみました。正常性確認としてはドメインコントローラー診断というツールが用意されており、本記事では「dcdiag」コマンドとその内容について整理したものになります。
以下の記事でまとめていますが、ドメインコントローラーの昇格作業などの確認作業としてもご参考にしていただければと思います。
ドメインコントローラー診断の内容
ドメインコントローラー診断ツールは、DCDiag コマンドとして用意されており、コマンドプロンプトもしくは Windows PowerShell から実行します。
テスト項目と内容について
以下は、ドメインコントローラー診断ツール(dcdiag コマンド)による診断テスト項目と各テストの説明になります。テストの種類は以下の4つで構成されています。
- 必須の初期テスト
- プライマリテスト
- パーティションテスト
- エンタープライズテスト
では、それぞれのテスト内容について以下にまとめていきます。
必須の初期テスト
Connectivity | DSA が DNS に登録されているかどうか、ping 可能かどうか、 および LDAP/RPC 接続が可能かどうかをテストします。* テストはスキップできません。 * テストは AD/LDS に適用可能です。 |
プライマリ テスト
Advertising | 各 DSA が自身をアドバタイズしていること、および それらが DSA の機能を持って自身をアドバタイズしているかどうかを確認します。 |
FrsEvent | このテストは、ファイル レプリケーション システム (FRS) に 操作エラーがないかどうかを確認します。SYSVOL 共有のレプリケーション に失敗すると、ポリシーの問題につながる可能性があります。 |
DFSREvent | このテストは、DFS に操作エラーがないかどうかを 確認します。 |
SysVolCheck | このテストは、SYSVOL の準備が整っていることを確認します。 |
KccEvent | このテストは、知識整合性チェッカーが エラーなく完了することを確認します。* テストは AD/LDS に適用可能です。 |
KnowsOfRoleHoldersDSA | 役割の所有者を認識しているかどうか、およびこれらの 役割を詳細モードで出力するかどうかを確認します。 |
MachineAccount | コンピューター アカウントに正しい情報が設定されているかどうかを 確認します。ローカル コンピューター アカウントがない場合 は、/RecreateMachineAccount を使用して修正を試みてください。コンピューター アカウントのフラグが正しくない場合は、 /FixMachineAccount を使用してください。 |
NCSecDesc | 名前付けコンテキスト ヘッドのセキュリティ記述子に レプリケーション用の適切なアクセス許可があることを確認します。 |
NetLogons | 適切なログオン特権により、レプリケーションの続行が 許可されていることを確認します。 |
ObjectsReplicated | コンピューター アカウント (AD のみ) および DSA オブジェクトが レプリケートされたことを確認します。確認対象の追加オブジェクトを 指定するには、/n:<NC> と共に /objectdn:<DN>を使用してください。* テストは AD/LDS に適用可能です。 |
Replications | ディレクトリ サーバー間でタイミングよくレプリケーションが行われていることを確認します。* テストは AD/LDS に適用可能です。 |
RidManagerRID | マスターがアクセス可能であるかどうか、および 正しい情報を格納しているかどうかを確認します。 |
Services | 適切なサポート サービスが実行されているかどうかを確認します。* テストは AD/LDS に適用可能です。 |
SystemLog | このテストは、システムがエラーなく実行中であることを確認します。* テストは AD/LDS に適用可能です。 |
VerifyReferences | このテストは、FRS およびレプリケーション インフラストラクチャに対して 特定のシステム参照が変わらないことを検証します。 |
パーティション テスト
CheckSDRefDom | このテストは、すべてのアプリケーション ディレクトリ パーティションに適切なセキュリティ記述子の参照ドメインがあることを 確認します。 |
CrossRefValidation | このテストは、なんらかの形で無効な 相互参照を検索します。* テストは AD/LDS に適用可能です。 |
エンタープライズ テスト
LocatorCheck | グローバルな役割所有者が既知であること、検索可能であること、および応答していることを確認します。 |
Intersite | サイト間レプリケーションを阻止したり、一時的に妨げる エラーがないかどうかを確認します。 |
以上の4つのカテゴリに分けてドメインコントローラーの診断が行われます。
ドメインコントローラー診断のコマンド「dcdiag」
次に「dcdiag」コマンドの内容となります。
ドメインの正常性を確認するためには Active Directory の仕組みとしてドメイン全体のドメインコントローラーを対象に診断テストを行い、正常性を確認することが必要となります。
その場合の基本となるコマンドは「dcdiag /e」の組み合わせとなり、必要に応じてオプションを加える形で構成します。
コマンドを実行して出力結果からエラー内容を確認する流れになりますが、単純にエラーが出力されていなければ問題がないと判断することもできます。
「dcdiag」コマンドとオプション
以下は、dcdiag コマンドの説明とオプション例になります。
コマンド | オプション | 説明 |
dcdiag / | ||
/h | このヘルプ画面を表示します。 | |
/s | <ディレクトリ サーバー> をホーム サーバーとして使用します。ローカルでのみ実行可能な DcPromo および RegisterInDns テストは無視されます。 | |
/n | テストする名前付けコンテキストとして <名前付けコンテキスト> を使用します。ドメインは Netbios、DNS、または DN の形式で指定できます。 | |
/u | バインドにドメイン\ユーザー名の資格情報を使用します。/p オプションも使用する必要があります。 | |
/p | パスワードとして <パスワード> を使用します。/u オプションも使用する必要があります。 | |
/a | このサイト内のすべてのサーバーをテストします。 | |
/e | エンタープライズ全体のすべてのサーバーをテストします。/a より優先されます。 | |
/q | Quiet: エラー メッセージのみを出力します。 | |
/v | 詳細: 追加情報を出力します。 | |
/i | 無視: 余分なエラー メッセージを無視します。 | |
/c | 完全: 既定以外のテストを含むすべてのテストを実行します。ただしDcPromo および RegisterInDNS は実行しません。/skip と併用できます。 | |
/fix | 修正: 安全に修正を行います。 | |
/f | すべての出力をファイル <ログ> に個別にリダイレクトします。 | |
/x | <XMLLog.xml> xml 出力を <XMLLog.xml> にリダイレクトします。現在は /test:dns オプションのみと併用できます。 | |
/xsl | <xslfile.xsl または xsltfile.xslt> 指定したスタイルシートを参照する処理命令を追加します。/test:dns /x:<XMLLog.xml> オプションのみと併用できます。 |
以上が dcdiag コマンドのオプションとなります。
「dcdiag」実行結果の内容
下記は「dcdiag」の実行結果の参考画面になります。
コマンド実行例
PS C:\Users\Administrator> dcdiag ディレクトリ サーバー診断 初期セットアップを実行しています: ホーム サーバーの検索を試みています... ホーム サーバー = AD01 * AD フォレストが識別されました。 初期情報の収集が完了しました。 必須の初期テストを実行しています サーバーをテストしています: Default-First-Site-Name\AD01 テストを開始しています: Connectivity ......................... AD01 はテスト Connectivity に合格しました プライマリ テストを実行しています サーバーをテストしています: Default-First-Site-Name\AD01 テストを開始しています: Advertising ......................... AD01 はテスト Advertising に合格しました テストを開始しています: FrsEvent ......................... AD01 はテスト FrsEvent に合格しました テストを開始しています: DFSREvent ......................... AD01 はテスト DFSREvent に合格しました テストを開始しています: SysVolCheck ......................... AD01 はテスト SysVolCheck に合格しました テストを開始しています: KccEvent ......................... AD01 はテスト KccEvent に合格しました テストを開始しています: KnowsOfRoleHolders ......................... AD01 はテスト KnowsOfRoleHolders に合格しました テストを開始しています: MachineAccount ......................... AD01 はテスト MachineAccount に合格しました テストを開始しています: NCSecDesc ......................... AD01 はテスト NCSecDesc に合格しました テストを開始しています: NetLogons ......................... AD01 はテスト NetLogons に合格しました テストを開始しています: ObjectsReplicated ......................... AD01 はテスト ObjectsReplicated に合格しました テストを開始しています: Replications ......................... AD01 はテスト Replications に合格しました テストを開始しています: RidManager ......................... AD01 はテスト RidManager に合格しました テストを開始しています: Services ......................... AD01 はテスト Services に合格しました テストを開始しています: SystemLog ......................... AD01 はテスト SystemLog に合格しました テストを開始しています: VerifyReferences ......................... AD01 はテスト VerifyReferences に合格しました パーティション テストを実行しています: ForestDnsZones テストを開始しています: CheckSDRefDom ......................... ForestDnsZones はテスト CheckSDRefDom に合格しました テストを開始しています: CrossRefValidation ......................... ForestDnsZones はテスト CrossRefValidation に合格しました パーティション テストを実行しています: DomainDnsZones テストを開始しています: CheckSDRefDom ......................... DomainDnsZones はテスト CheckSDRefDom に合格しました テストを開始しています: CrossRefValidation ......................... DomainDnsZones はテスト CrossRefValidation に合格しました パーティション テストを実行しています: Schema テストを開始しています: CheckSDRefDom ......................... Schema はテスト CheckSDRefDom に合格しました テストを開始しています: CrossRefValidation ......................... Schema はテスト CrossRefValidation に合格しました パーティション テストを実行しています: Configuration テストを開始しています: CheckSDRefDom ......................... Configuration はテスト CheckSDRefDom に合格しました テストを開始しています: CrossRefValidation ......................... Configuration はテスト CrossRefValidation に合格しました パーティション テストを実行しています: contoso.com テストを開始しています: CheckSDRefDom ......................... contoso.com はテスト CheckSDRefDom に合格しました テストを開始しています: CrossRefValidation ......................... contoso.com はテスト CrossRefValidation に合格しました エンタープライズ テストを実行しています: contoso.com テストを開始しています: LocatorCheck ......................... contoso.com はテスト LocatorCheck に合格しました テストを開始しています: Intersite ......................... contoso.com はテスト Intersite に合格しました PS C:\Users\Administrator>
このようにすべてのテスト項目に合格しているかを確認します。
必要に応じてオプションを追加することで、失敗したテスト項目のみ出力することや詳細な診断結果を確認することができます。