WMIのトラブルシューティング

最終更新日: 25 年 2023 月 XNUMX 日

WMIアクセス許可の概要

注: Windowsホストを監視するには、Windowsコレクターを使用する必要があります。

LogicMonitorコレクターは主に Windows Management Instrumentation(WMI) Windowsサーバーを監視します。 Windowsタスク収集に関するほとんどの問題は、コレクターマシンがホストにデータを照会しようとしたときのアクセス許可の制限に起因します。

このような状況では、「LogicMonitorCollector」と「LogicMonitorWatchdog」を含む両方のコレクターサービスの資格情報は、監視対象のホストの管理者アカウントであるドメインユーザー、または利用可能なローカル管理者のいずれかを参照する必要がありますこのコレクターによって監視される各Windowsホスト上。 サービスが実行されるユーザーを変更するには、両方のサービスの[ログオン]タブで資格情報を変更してから、サービスを再開します。

管理者ユーザーの下でコレクターを実行できない場合、または複数のドメイン間でホストを監視していて、ホスト固有の資格情報を調整する必要がある場合は、次の手順に従ってください。 これらの命令 「wmi.user」および「wmi.pass」カスタムプロパティをホストに追加します。

  • 「wmi.user」カスタムプロパティは、DOMAIN\USERNAMEとしてフォーマットする必要があります。
  • ドメインユーザーではなくローカルユーザーを指定するには、DOMAINを##HOSTNAME##トークン「。」に置き換えます。 または、wmi.user値が## HOSTNAME ## \ USERNAME、。\USERNAMEまたはMACHINENAME\USERNAMEになるようにマシンの名前。

WMIの脆弱性によるデータ収集の失敗

問題

MicrosoftがWMIで重大な脆弱性を特定すると、セキュリティの脆弱性に対処するためにWindows DCOMサーバーのセキュリティ機能バイパス(CVE-2021-26414)をリリースしました。 この更新をサーバーに適用した後、クライアントとサーバーの通信間のDCOMRPCでイベントID10036の発生を確認しました。

パッチがサーバーマシンにインストールされると、「RequireIntegrityActivationAuthenticationLevel」レ​​ジストリ値はデフォルトで無効になります。 サーバーで有効にすると(クライアントで変更を加えたり、クライアントでパッチを更新したりせずに)、DCOM RPC通信に影響を与え、「アクセスが拒否されました」というエラーが発生します。 この問題を詳細に理解するには、Microsoftのドキュメントを参照してください。 WindowsDCOMサーバーのセキュリティ機能バイパスの変更を管理する.

ソリューション

したがって、 最初にコレクターデバイスにパッチを適用します 次に監視対象デバイス イベント ID 10036 の問題を解決するには、最新の更新プログラムに更新してください。 パッチがクライアント マシンにインストールされると、デフォルトで、DCOM クライアントで RPC_C_AUTHN_LEVEL_PKT_INTEGRITY が有効になります。 その結果、クライアントとサーバー間の DCOM RPC 通信と Collector でのデータ収集の両方が成功します。 

脆弱性に対処するために、14 年 2022 月 XNUMX 日、Microsoft は、必要に応じて RequireIntegrityActivationAuthenticationLevel レジストリ キーを介して無効にすることができる、既定で DCOM サーバーの強化をプログラムで有効にしました。

注: Microsoft によると、14 年 2023 月 XNUMX 日にハードニングの変更がデフォルトで有効になり、無効にすることはできません。
14 年 2022 月 14 日のパッチの一部としてリリースされた強化をバイパスした場合は、2023 年 XNUMX 月 XNUMX 日以降は設定が機能しなくなるため、今すぐ対処する必要があります。

Microsoftは、段階的な展開でこの脆弱性に対処しています。 脆弱性、解決策、および更新の詳細については、Microsoftのドキュメントを参照してください。 WindowsDCOMサーバーのセキュリティ機能バイパスCVE-2021-26414

WMIサービスと依存関係

WindowsホストでWMIを監視するには、次のすべてのサービスを実行し、「自動」スタートアップタイプに設定する必要があります。

  • DCOMサーバープロセスランチャー
  • リモートプロシージャコール(RPC)
  • RPCエンドポイントマッパー
  • Windowsの管理の実装

また、次のサービスを「手動」起動タイプに設定できます。

  • WMIパフォーマンスアダプター

高度なトラブルシューティングのためのWBEMTESTの使用

WMI接続を手動でテストするには、コレクターが実行されているホストからWBEMTESTユーティリティを実行する必要があります。 次の手順では、Windows WBEMTESTツールを使用してリモートコンピューターに接続し、WMIクエリを渡す方法について説明します。これを使用して、WMIの詳細をすばやく調べたり確認したりできます。 (詳細については、以下のセクションを参照してください。)

高度なトラブルシューティングのためのWBEMTESTの使用

開始 > 実行… >「wbemtest」をクリックして、WBEMTESTユーティリティに入ります。 「接続」をクリックします。

次に、ローカルまたはリモートのホストIPをリモート名前空間フィールドに入力し、続いて「\ root \ cimv2」を入力し、資格情報を[接続]ダイアログに入力します。 上記の例では、ホスト192.168.23.1のWMI接続を確認しようとしています。 クリック Connect3

WBEMTESTが接続できないような問題がある場合は、 エラーダイアログ 失敗の原因が表示されます。

接続が成功すると、メインウィンドウに戻りますが、今回は追加のオプションを利用できます。

ソフトウェアの制限をクリック 列挙型クラス…>トグル 再帰的 > OK

これは、使用可能なWMIクラスのリストとともに返されます。 ほとんどの通常のWindowsインストールには、800〜1200のクラスがあります。

クラスのリストが返されない場合は、異なるホストの WMI 実装間に互換性がない可能性があります。 回避策の XNUMX つは、クエリを実行するホストと同じ OS (または同じホスト) にコレクタをインストールすることです。

ローカルホストからのWMIアクセスのテスト

クエリしようとしているホストから、WMIがホスト上で正しく機能しているかどうかを確認するには:

  1. 開始 > 実行..。 >> wbemtest
  2. 接続… >デフォルトのままにする> お問合せ
  3. このプロセスが失敗した場合、WMI / RPCがこのホストで実行されていないか、修復が必要な可能性があります。
    1. WMIクラス構造が破損しているか、一貫性がない可能性もあります。 この場合、WMIクラス構造を修復する手順を参照してください。 WMIのトラブルシューティング.
  4. 成功すると、WMIがローカルホストで正しく機能していることが確認されます。

ホストでローカルWMIアクセスが機能する場合は、コレクターがデータを収集できない理由を特定する必要があります。

アクセス許可の問題が疑われる場合は、リモートWMI接続を試して、ネットワーク内のドメイン管理者アカウント、またはターゲットマシンで使用可能なローカル管理者の資格情報を指定してください。 成功した場合、これにより、WMIがローカルホストとコレクターマシンで正しく機能しているが、LogicMonitorサービスが不十分な特権を持つアカウントとして実行されていることが確認されます。

WMIは正常に機能しているが、リモートマシンからアクセスできない場合は、ファイアウォールの問題、アクセス権の問題、またはDCOMの問題が発生している可能性があります。 アクセス拒否のセクションを参照してください この記事 または、support.microsoft.comを検索して、これらの問題のトラブルシューティング方法の詳細を確認してください。

非ホストベースのファイアウォールのWMIアクセスの確立

Windowsで非ホストベースのファイアウォールまたはサードパーティのファイアウォールを使用する場合、WMI通信を可能にするために特定のポートを開く必要があります。

デフォルトでは、ポート135 / tcp(RPCエンドポイントマッパー)が通信の確立に使用されます。 次に、WMIにはDCOMを介してポートが割り当てられ、通信は動的ポート範囲内のランダムに割り当てられたポートを介して処理されます。

Windows Server 2008以降のバージョン、およびWindows Vista以降のバージョンでは、デフォルトの動的ポート範囲が次の範囲に変更されました。

  • 開始ポート:49152
  • 終了ポート:65535

Windows 2000、Windows XP、およびWindows Server 2003は、次の動的ポート範囲を使用します。

  • 開始ポート:1025
  • 終了ポート:5000

LogicMonitorは、オペレーティングシステムに対して行われたカスタマイズのサポートを提供しないことに注意してください。

必要なポートの最小数は、コンピューターごとに異なる場合があります。 RPC動的ポートが制限されている場合、トラフィックの多いコンピューターでポートが枯渇する可能性があります。 ポート範囲を制限するときは、これを考慮してください。

RPC動的ポート割り当てを制限する方法については、Microsoftのサポート記事を参照してください。
ファイアウォールと連携するようにRPC動的ポート割り当てを構成する方法.

もうXNUMXつのオプションは、Microsoftのサポート記事で説明されているように、WMIの固定ポートを指定することです。 WMIの固定ポートの設定.

WMIエラーコード

エラー:0x800706BARPCサーバーを利用できません

考えられる問題:Windowsファイアウォールが接続をブロックしています。

クイックフィックス:「実行」netshファイアウォールセットサービスRemoteAdminenable監視対象のホスト(コレクターが実行されているホストではない)のコマンドコンソールから」。 このコマンドを渡した後、Windowsファイアウォールスナップインコンソール(wf.msc)を使用して、このポートへのアクセスをさらに厳しくし、特定のホスト、ユーザー、またはインターフェイスからのみアクセスできるようにすることができます。 詳細については、を参照してください。 ここ。 Windows Vista以降については、を参照してください。 ここ.

エラー:0x80070005 –アクセスがDCOMによって拒否されました

考えられる問題: ユーザーは、DCOMを介してコンピューターにリモートアクセスできません。 クイックフィックス:dcomcnfgでユーザーにリモート起動とリモートアクティベーションのアクセス許可を付与します。

  1. 開始、クリック ラン、タイプ DCOMCNFG、[OK]をクリックします OK.
  2. コンポーネントサービス ダイアログボックス、展開 コンポーネントサービス、展開する コンピューター、次に右クリックします [マイコンピュータ] をクリックし プロパティ.
  3. 私のコンピュータのプロパティ ダイアログボックスで COMセキュリティ タブには何も表示されないことに注意してください。
  4. アクセス許可、クリック 編集制限.
  5. アクセス許可 ダイアログ ボックスで、コレクターが使用するユーザーを選択します。 グループ名またはユーザー名 ボックス(たとえば、次の図では、ユーザー 'logicmonitor'がWMIにリモートでアクセスできます)。 の中に 次を許可します。 下の列 ユーザーの権限選択 リモートアクセス をクリックし OK.


  6. In個 私のコンピュータのプロパティ ダイアログボックスで COMセキュリティ タブには何も表示されないことに注意してください。
  7. 起動およびアクティベーション許可、クリック 編集制限.
  8. アクセス許可 ダイアログ ボックスで、コレクターが使用するユーザーを選択します。 グループ名またはユーザー名 ボックス(たとえば、次の図では、ユーザー 'logicmonitor'がWMIにリモートでアクセスできます)。 の中に 次を許可します。 下の列 ユーザーの権限選択 リモート起動 & リモートアクティベーション、[OK]をクリックします OK.

詳細については、を参照してください。 リモートWMI接続の保護.

エラー:0x80041003 –アクセスがWMIプロバイダーによって拒否されました

考えられる問題:ユーザーがアクセスを許可されていない名前空間に接続しようとすると、エラー0x80041003が表示されます。 デフォルトでは、この権限は管理者に対してのみ有効になっています。 クイックフィックス:管理者は、管理者以外のユーザーに対して特定のWMI名前空間へのリモートアクセスを有効にできます。

  1. コントロールパネル、 ダブルクリック [管理ツール].
  2. [管理ツール] ウィンドウ、ダブルクリック コンピューター管理.
  3. コンピューター管理 ウィンドウ、展開 サービスとアプリケーション ツリー。
  4. を右クリックします。 WMIコントロール アイコンと選択 プロパティ.
  5. セキュリティ タブで名前空間を選択し、 セキュリティ
  6. 適切なアカウントを見つけて確認してください リモートイネーブル & セキュリティを読む セクションに 権限 リスト。
  7. 高機能 ボタンを押して、ユーザーを強調表示します。
  8. 編集...
  9. 確認します に適用されます: フィールドは この名前空間とサブ名前空間

次の図では、ユーザー「logicmonitor」がWMI名前空間「ROOT / CIMV2」にアクセスできます。

エラー:0x80041003-アクセスがWMIプロバイダーによって拒否されました

詳細については、を参照してください。 ここ.

WBEMTESTは機能しますが、コレクターは機能しません

考えられる問題:コレクターが間違ったユーザー名/パスワードを使用している

クイックフィックス1:デバイスがすでにLogicMonitorに追加されている場合、 デバイスのwmi.userプロパティとwmi.passプロパティを編集します。

WMIカウンターの修復

使用する資格情報やバイパスしたセキュリティハードルの数に関係なく、Windowsマシンを完全に監視できない場合があります。 このような場合、オペレーティングシステムのWMIクラス構造が破損しているか、一貫性がない可能性があります。

あなたが経験しているかもしれない他の症状:

  1. 一部のWMI収集データソースは、データを正常に返すか、インスタンスを検出しましたが、(ほとんどの)他のデータソースはデータを返しません。
  2. Collector デバッグ、WBEMTEST ユーティリティ、またはカスタム アプリケーションから、「空の結果セット」、0x80041003、0x80041017 などの説明できないエラーが発生する可能性があります。
  3. CollectorデバッグとWBETESTから異なるWMI結果セットを受け取るか、一方からエラーを受け取り、もう一方からエラーを受け取りません。

マイクロソフトのレポート これは、「…特定の拡張可能なカウンターがレジストリを破損した場合、または一部のWindows Management Instrumentation(WMI)ベースのプログラムがレジストリを変更した場合」に発生する可能性がありますが、これらの問題の正確な性質はほとんど不明であり、通常は広範囲にトラブルシューティングする価値がありません。

以下のWMIカウンター修復のセットを使用して、WMIクラス構造の再構築を試みることができます。

新しいカウンターの登録とデフォルト設定の復元

注意:これらの手順により、構成した可能性のあるすべてのカスタムパフォーマンスカウンターレジストリ設定が上書きされ、デフォルト構成に置き換えられます。

管理者ユーザーとしてログインし、以下を実行してください。

  1. cd c:\ windows \ system32
  2. ヨウ素/ R
  3. cd c:\ windows \ sysWOW64
  4. ヨウ素/ R
  5. winmgmt / clearadap
    • 注:Windows2008以降のWindowsバージョンでは非推奨です。
  6. winmgmt / verifyrepository
    • winmgmt /サルベージリポジトリ
  7. winmgmt / resyncperf
  8. sc停止WmiApSrv
  9. sc 開始 WmiApSrv

WMI(CIM)カウンターリポジトリの再構築

それでも問題が発生する場合、または0x80041003、「空の結果セット」; 「予期しないWMIクエリ結果」、「サイズ1を期待していますが、サイズ0を取得しました」エラー。

管理者ユーザーとしてログインし、以下を実行してください。

  1. wmiadap / c
  2. wmiadap / f
  3. wmiadap / r
  4. winmgmt.exe / verifyrepository
    • winmgmt /サルベージリポジトリ
  5. winmgmt.exe / resyncperf
  6. sc停止WmiApSrv
  7. sc 開始 WmiApSrv

包括的なWMIクラスの再構築

管理者ユーザーとしてログインし、以下を実行してください。

  1. スタートアップの種類をWindowManagement Instrumentation(WMI)サービスの「無効」に変更します。
  2. WMIサービスを停止します。 WMIサービスを停止する前に、最初にIPヘルパーサービスまたは他の依存サービスを停止する必要がある場合があります
  3. リポジトリフォルダの名前をC:\ WINDOWS \ system32 \ wbem \ RepositoryからRepository.oldに変更します。
  4. 昇格された特権でCMDプロンプトを開く
  5. CD windows \ system32 \ wbem
  6. for / f%s in( 'dir / b / s * .dll')doテレプティ32 / s%s
  7. WMIサービスの種類を[自動]に戻し、WMIサービスを開始します
  8. cd / dc:\((cドライブのルートに移動します。これは重要です))
  9. for / f%s in( 'dir / s / b * .mof * .mfl')do mofcomp%s

各修正ブロックの完了後に再起動を実行するのが理想的ですが、絶対に必要というわけではありません。 また、上記のコマンドの多くは完了後に応答をエコーし​​ないため、コマンドを渡した後に変更が発生していることに気づかなくても心配する必要はありません。

追加のトラブルシューティングは、Windows WMI診断ユーティリティ(wmiadiag.vbs)を使用して実行できます。 詳細については、を参照してください。 このページ.

一部のオブジェクトが検出されないか、データがありません

場合によっては、LogicMonitorがWindowsサーバー上のIISインスタンス(またはその他の属性)を検出しないことがあります。 これは、パフォーマンスクラスが正しく登録されていない場合、またはWMIクラス構造が破損しているか一貫性がない場合に発生する可能性があります。

これらの問題は通常、WMIカウンターの修復を実行することで修正できます。 見てください WMIカウンターのトラブルシューティング

認識されている問題

データが返されません

Windowsは、次の場合にページファイル統計のデータがないと報告する場合があります。 「すべてのドライブのページングファイルを自動的に管理する」ように構成されたサーバーがあるか、他の「自動」オプションのいずれかが選択されている場合。 最小値を明示的に割り当てると、これらのカウンターにデータが入力されます。

最小値を明示的に割り当てるには:

  1. [コントロールパネル]> [システム]> [詳細設定]タブ> [パフォーマンス]セクション> [設定]> [詳細設定]タブ> [仮想メモリ]セクションに移動し、[変更]をクリックします。
  2. Windows 2008以降では、上部に「すべてのドライブのページングファイルサイズを自動的に管理する」というオプションがあります。 これを値に設定します。
  3. 次に、「すべてのドライブのページングファイルサイズを自動的に管理する」に戻ります。

UACロックされたWMIクラス

監視対象のWindowsホストが、Win32_OperatingSystemとWin32_Volumeを除くすべてのWMIクラスへのアクセスを妨げるという認識された状態があります。 これを解決するには、監視対象のWindowsホストでユーザーアカウント制御(UAC)を無効にする必要があります。

注: UACの無効化は、組み込みのAdministratorアカウントと、ホストのローカルAdministratorsグループのメンバーである他のすべてのユーザーにのみ適用されます。

UACを無効にする方法はXNUMXつあります。

方法1:Windowsの「ローカルセキュリティポリシー」を使用してUIでUACを無効にします。 この方法では、単一のホストを無効にすることができます。

UACを無効にするには、次の手順に従います。

  1. お使いのマシンで、Windowsを起動して検索します ローカルセキュリティポリシー.
  2. ローカルポリシー クリック セキュリティオプション。 ポリシーとそのステータスのリストが表示されます。
  3. ユーザーアカウント制御:すべての管理者を管理者承認モードで実行します。 セキュリティポリシーを有効または無効にするオプションを含むダイアログボックスが表示されます。
  4. 身体障がい者
    注: 身体障がい者 オプションがグレー表示されている場合は、構成管理(たとえば、グループポリシー、DSCなど)が調整をブロックしていることが原因である可能性があります。
  5. (オプション)有効化/無効化オプションを理解するには、をクリックします 説明する タブをクリックして詳細をお読みください。
  6. OK UACを無効にします。
  7. Windows OSを再起動して、変更を適用します。

方法2:Windowsレジストリを使用してUACを無効にします。 この方法では、一度に複数のホストを無効にすることができます。 

UACを無効にするには、次の手順に従います。

  1. 次のレジストリサブキーを見つけます。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA
  2. 「EnableLUA」の値を1から0に変更します
  3. これらの変更を有効にするには、デバイスを再起動します。

これにより、UACが無効になり、すべてのクラスからのデータ収集が許可されます。

または、PowerShellを使用してWindowsホストでUACを無効にすることもできます。

  1. PowerShellを右クリックし、[管理者として実行]を選択して、昇格されたPowerShellコンソールを起動します。
  2. 現在の値を取得します。
Get-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLua'
  1. EnableLUA値を0に設定します。
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'EnableLUA' -Value '0'
  1. OSを再起動して、レジストリの変更を適用します。
  2. (オプション)「Get-ItemProperty」コマンドレットを再実行して、変更を確認できます。

追加のトラブルシューティング

その他の場合、他の監視が正しく続行されている間、一部のオブジェクト(ディスクなど)の監視が停止します。

これは、WMIの問題を示している場合もあります。

これを解決するためのいくつかのオプションは次のとおりです。

  • Windows ManagementInstrumentationサービスが実行されていることを確認します。
  • システムを再起動してみてください。
  • Windows 2000、Windows XP、および Windows Server 2003 の場合は、ダウンロードして実行します。 Windows PowerShell WMI.
  • Windows Vista、Server 2008、およびWindows 7の場合、「winmgmt / verifyrepository」コマンドを実行して、一貫性のないリポジトリを確認します

データを収集したら、イベント ログで WMI エラーを確認します。 ユーティリティから出力をキャプチャした場合は、ログを確認し、可能な場合はエラーを解決します。 WMI は Windows オペレーティング システムの不可欠な部分であるため、Microsoft サポート エンジニアに支援を依頼してください。

記事上で