PowerShell を使用してドメインコントローラーの健康状態を確認する DCDiag の方法

DCDiag: PowerShell を使用してドメインコントローラーの健全性を確認する方法。DCDiagは、Microsoft WindowsのActive Directory環境でドメインコントローラーの問題を診断するために使用される強力なコマンドラインツールです。私たちは、ドメインコントローラーの健全性をチェックし、エラーや不整合を特定し、レプリケーションの問題をトラブルシューティングするために使用します。 DCDiagは、DNS構成、SYSVOLレプリケーション、およびActive Directoryの正常な機能に必要なその他の重要なサービスの問題を管理者が検出および解決するのにも役立ちます。

私たちは、強力なMicrosoft WindowsツールであるDCDiagを調査します。 DNSサービスをテストし、ドメインコントローラーの健康状態を評価し、さらには自動的に誤りを修正するために使用します。ツールは比較的シンプルですが、すべてのドメインコントローラーの健全性を維持するのに十分な強力さを持っています。記事「DCDiag: PowerShell を使用してドメインコントローラーの健全性を確認する方法」で始めましょう。また読む:既存のドメインにドメインコントローラーを追加する方法

パワーシェルを使用してDCDiag: ドメインコントローラの正常性をチェックする方法

DCDiag: パワーシェルを使用してドメインコントローラの正常性をチェックする方法

DCDiagツールのインストール

もしWindows Serverを実行している場合、DCDiagはインストールされているはずです。Microsoftは、DCDiagを2012R2以降の最新のWindows Serverバージョンに組み込んでいます。

DCDiagツールの目的

DCDiagの目的は、ドメインコントローラーの問題を診断およびトラブルシューティングすることです。これは、Windows Server環境におけるドメインコントローラーに対して幅広いヘルスチェックを実行するコマンドラインツールです。これには、DNSレプリケーションLDAP、セキュリティのテストが含まれます。1つまたは複数のDCを同時にADフォレストまたはエンタープライズ内で分析します。ドメインコントローラーで実行されるいくつかのテストについて説明しましょう:DCDiag

  1. 接続テスト – DCDiagは、ドメインコントローラーがネットワークに接続されており、他のドメインコントローラーと通信できるかどうかを確認します。
  2. DNS テスト – ドメインコントローラが DNS を正しく解決し、登録するかどうかを確認します。
  3. レプリケーション テスト– ドメインコントローラが他のドメインコントローラと正確にレプリケーションするかどうかをテストします。
  4. 信頼テスト – DCDiag は、ドメインコントローラが他のドメインを信頼し、他のドメインがドメインコントローラを信頼するかどうかをチェックします。
  5. LDAP テスト– ドメインコントローラ上で LDAP クエリが適切に機能するかどうかをチェックします。
  6. Kerberos テスト – DCDiag は、ドメインコントローラ上で Kerberos 認証が正しく機能するかどうかをチェックします。
  7. SYSVOL テスト – DCDiag はドメインコントローラー上で SYSVOL レプリケーションが正しく機能しているかどうかを確認します。
  8. グローバルカタログテスト – DCDiag は、DC が グローバルカタログ サーバーとして機能しており、グローバルカタログクエリが正しく機能しているかどうかを確認します。

DCDiag ツールの概要

さて、DCDiagの記事では、PowerShellを使用してドメインコントローラの正常性をチェックする方法が簡単なコマンドラインユーティリティです。DCDiagはCMDプロンプトまたはPowerShellウィンドウで実行します。管理者権限を使用することを忘れないでください。

DCDiagの基本的な構文は次のとおりです。

dcdiag.exe /s:[:] [/u:\ /p:*||””]

なんらかの理由で:

  • /s – ドメインコントローラ
  • /u:\ – ユーザー名
  • \p:* – パスワード

この基本的なコマンドラインは、ドメインコントローラ上の主要(接続)テストおよび指定されたテストの結果を示すテスト結果を返します。DCDiagコマンドの使用方法とすべてのスイッチについて学ぶには、ヘルプコマンドから始めましょう。

dcdiag /?

DCDiagスイッチパラメータ

DCDiagコマンドの後に以下のスイッチのいずれかを追加して使用します。人気のあるコマンドスイッチの概要:

  1. /s <ServerName> – テストするサーバーの名前を指定します。サーバー名が指定されていない場合、DCDiagはローカルコンピュータをテストします。
  2. /v – 実行されたテストに関する詳細な出力と追加情報を提供します。
  3. /test:<TestName> – 実行するテストの名前を指定します。複数の/testスイッチを指定することで複数のテストを実行できます。
  4. /e – 指定されたドメインコントローラで包括的なテストセットを実行します。
  5. /fix – テスト中に見つかった問題を修正しようとします。
  6. /f:<LogFileName> – 作成するログファイルの名前を指定します。
  7. /c – DCDiagに対して、ドメインコントローラのサービスを広告するために必要なテストのみを実行するよう指定します。
  8. /skip:<TestName> – 指定されたテストをスキップします。
  9. /l:<LogFileName>ログファイル名を指定し、上書きする代わりに追記します。
  10. /q – 情報メッセージの表示を抑制するクワイエットモードを指定します。
  11. /test:DNS – 指定されたドメインコントローラでDNSテストを実行します。
  12. /test:KCC – 指定されたドメインコントローラでKCCテストを実行します。
  13. /test:Replications – 指定されたdcでレプリケーションテストを実行します。
  14. /test:Advertising – 指定されたdcで広告テストを実行します。
  15. /test:Services – 指定されたdcでサービステストを実行します。

上記は、最も使用されているDCDiagコマンドラインスイッチのいくつかですが、さらに多くのオプションが利用可能です。helpコマンドを実行することで、スイッチの完全なリストとその定義を見ることができます。

Active Directory Health DCレポートツールを試してみませんか

試してみてください無料ですべての機能にアクセス。– 200以上のADレポートテンプレートが利用可能。簡単に独自のADレポートをカスタマイズできます。




DCDiagの実行とユースケース

DCDiagを実行するには、ローカルDC(または引数)で基本的なDCDiagテストを行うために、スイッチなしでDCDiagコマンドを入力します。

dcdiag.exe

DCDiagは自動的に現在の(ローカル)DCを識別するため、ドメインコントローラーも管理者権限も必要ありません。次のセクションでは、DCDiagのスイッチパラメータを使用した複数のユースケースについて説明します。

リモートDCヘルスチェック

我々は、DCの名前の最後に/s:スイッチとその資格情報(ユーザー名とパスワード)を追加する必要があります。これにより、リモートDCの診断を実行できます。例えば:

dcdiag.exe /s:dc01 /u:dc01\Administrator /p:password

DCPromoとDNSへの登録は、ローカルで実行され、ドメインコントローラーのためではないため、/sスイッチの影響を受けません。

ユーザー名(/u)情報を入力する際には、ドメイン管理者権限のアカウント名を指定し、正しい形式(ドメイン/ユーザー名)を使用することに注意してください。例えば、ユーザー名(Administrator)にドメイン名(dc01)を追加します:/u:dc01\Administrator

すべてのDCの正常性を確認する

ADサイトを相互に接続し、それぞれが複数のDCを含むことがあります。/aスイッチは、ADをサイトに分割する場合に有益です。これにより、DCDiagユーティリティをすべてのサイトDCに対して同時に実行できます:

dcdiag.exe /s:dc01 /a

DCDiagを使用してDNSをテスト

どんなテストを行っても、DCDiagツールはデフォルトで最初の接続テストの一部として各ドメインコントローラーのDNS登録を確認します。また、転送者、登録レコードなどの特定のDNSテストを実施することもあります。これらはすべてDNS問題の調査に役立ちます。DNSをテストするには、以下のコマンドを使用します:

dcdiag.exe /s:dc01 /test:dns

外部名前解決を除くすべての基本的なテストはデフォルトで実行されます。すべてのDNS結果はDNSBasicテストを表示します。値がない場合、/test:dnsスイッチは自動的に/DNSallにデフォルトで設定されます。DCDiagツールを使用するときに呼び出すいくつかのDNS固有のテストがあります:

  1. /DNSBasic – ドメインコントローラのDNSサーバーが正しく構成されており、名前を解決できるかどうかを確認します。
  2. /DnsDelegation – DNSデリゲーションがドメインコントローラに対して正しく構成されているかどうかをテストします。
  3. /DnsForwarders – ドメインコントローラのDNSフォワーダーが正しく構成されているかどうかを確認します。
  4. /DnsDynamicUpdate – ドメインコントローラがDNSに対して動的な更新を行っているかどうかを確認します。
  5. /DnsRecordRegistration – ドメインコントローラのDNS登録が最新で正確であるかどうかをテストします。

これらのテストは、ドメインコントローラーのDNS構成が正しいかどうか、そして正常に機能しているかどうかを確認するためのものです。DCDiagがこれらのテスト中に問題を発見した場合、DCDiagはActive Directoryおよびその他のネットワークサービスで潜在的な問題を回避するために、すぐにそれらの問題に対処します。DNSテストは次のようになります。

DCDiagの結果をカスタマイズする

DCDiagを使用すると、結果をより多くまたは少なく表示することでカスタマイズできます。また、後で分析するために結果をエクスポートすることもできます。DCDiagのレポートをカスタマイズする方法の例をいくつか紹介します。

DCDiagをクワイエットモードで実行する

クワイエット/qスイッチは非常に便利で、エラーメッセージのリストだけを表示することで出力サイズを削減します。これがクワイエットモードでのDCDiagの例です。

dcdiag.exe /s:dc01 /q

この/qでの出力は、エラーのみがフィルタリングされていて、このようになります。

詳細出力でDCDiagを実行

詳細フラグ/vを追加して、DCDiagを詳細出力で実行します。これは、エラーや警告、情報メッセージなど、私たちの日常業務に関するより多くの情報を提供します。/vスイッチは静か/qスイッチの反対です。

前述のとおり、DCDiag(/vなし)は、ドメインコントローラーの問題を特定して解決するために十分な詳細情報を提供します。これは、詳細スイッチを使用したスニペットの例です。

dcdiag.exe /s:dc01 /v

詳細スイッチ/vを使用した出力は次のようになります。

標準の概要テーブルで警告やエラーが表示され、問題をより詳細に調査したい場合にのみ、詳細出力をお勧めします。

DCDiagの結果をエクスポート

DCDiagユーティリティツールを使用して、ヘルスチェックの結果をエクスポートできます。たとえば、DCDiagコマンドに/fスイッチを追加して、すべてのテスト結果をテキストファイルに保存します。たとえば:

dcdiag.exe /s:dc01 f:c:\dcdiag_dc01_test01.txt

注意してください、ログファイルの名前をカスタマイズし、特定のフォルダに保存します。結果は、.txtファイルをサポートする任意のプログラム、たとえばメモ帳で開きます。

また、結果をXLSXまたはXMLにエクスポートすることもできます。ただし、この機能は/test:dnsスイッチでのみ動作します:

dcdiag.exe /test:dns /x or, /test:dns/x:

DCDiagは単に診断ツールです。そのため、さまざまなテストを実行し、その結果のみを提供します。しかし、/fixスイッチは、問題を安全に修正しようとする素晴らしいスイッチです。

dcdiag.exe /s:dc01 /fix

この/fixスイッチを使用する際には、追加のパラメーターや特性を提供する必要はありません。ただし、MachineAccountテストの場合は、/fスイッチが機能します。これは、DCのMachineAccountオブジェクトのサービスプリンシパル名(SPNs)を修正します。

注:たとえDCDiagが(修正)スイッチを安全に自動修復するために設計していても、それでもドメインコントローラーが変更されます。そのため、/fスイッチを使用する前にテスト結果を確認し、常にDCのバックアップを作成してください。

PowerShellでのDCDiagの使用

WindowsPowerShellには、DCDiagに対応するものはありません。ただし、Invoke-ExpressionまたはInvoke-Commandコマンドレットを使用して、適切なパラメータを指定してdcdiag.exeコマンドを実行することで、PowerShellでDCDiagを使用することができます。以下は、PowerShellでDCDiagを使用してDNSテストを実行する例です:

Invoke-Expression "dcdiag.exe /test:DNS /v"

この例では、Invoke-Expressionコマンドレットを使用して、/test:DNSパラメータでDNSテストを実行し、/vパラメータで詳細な出力を提供しました。もちろん、実行したい他のDCDiagテストに応じて、/test:DNSを置き換えることができます。また、リモートコンピュータ上でDCDiagを実行する場合は、Invoke-Commandコマンドレットを使用することもできます。

以下は別の例です:

Invoke-Command -ComputerName "ServerName" -ScriptBlock { dcdiag.exe /test:DNS /v }

前の例では、-ScriptBlockパラメーターをInvoke-Commandと共に使用して、リモートコンピューターで実行するコードを指定しました。 -ScriptBlockパラメーターは、実質的にかっこ {}で囲まれたコードブロック、つまりスクリプトブロックを受け取ります。

Invoke-Command-ScriptBlockパラメーターとともに使用すると、-ComputerNameパラメーターで指定したリモートコンピューターでスクリプトブロックが実行され、スクリプトブロックが出力をローカルコンピューターに返します。 -ScriptBlockパラメーターをInvoke-Commandと組み合わせて使用すると、リモートコンピューターでコマンドやスクリプトを実行する強力な方法になります。これにより、ネットワーク環境で大量のコンピューターを管理するのに役立ちます。 DCDiagツールを使用した方法と同様です。

DCDiag:PowerShellを使用してドメインコントローラーの健全性をチェックする方法を読んでいただき、ありがとうございました。記事はこれで終了です。

結論として、 DCDiag は、Active Directory 環境を管理する管理者にとって不可欠なツールです。ドメイン コントローラーの包括的なヘルスチェックを提供し、管理者が問題を診断およびトラブルシューティングするのに役立ちます。DNS、レプリケーション、LDAP、セキュリティなどに関連する詳細なテストを実行できることで、DCDiag はドメイン コントローラーと Active Directory 環境 のヘルスと安定性を確保するための貴重なツールになります。

定期的なメンテナンスおよび監視 ルーチンに DCDiag を組み込むことで、管理者はより深刻な問題が発生するのを防ぎ、Active Directory 環境がセキュアで信頼性が高く保たれることを確認します。

Source:
https://infrasos.com/dcdiag-how-to-check-domain-controller-health-using-powershell/