質問

Win32_NTLogEventを読み取ってSymantec Antivirusが何かを書き込んだかどうかを確認するなど、WMIを使用してネットワーク全体のマシンに関する幅広い情報を収集する.NETアプリケーションがあります。クエリは正常に機能しますが、WMIクエリ" Generic Failure"を繰り返し実行した後、エラーが戻ってきます。これは約1時間後に非常に一貫して発生します。 125コール。 WMIクエリを実行しているマシンを再起動すると、常にエラーが修正されます...次の125クエリが実行されるまでです。

リポジトリは正常であり、ログファイルサイズの問題を特定できないようです。

詳細-エラーを取得して検出した後、WMIDiagを実行しました-

25607 13:55:38(1)!!エラー:WMI ENUMERATION操作エラーが報告されました:2エラー(S)!

25608 13:55:38(0)**-ROOT / CIMV2、SubClassesOf、 '*'、0x80041006-(WBEM_E_OUT_OF_MEMORY)操作に十分なメモリがありません。

25609 13:55:38(0)** MOF登録: 'C:\ WINNT \ SYSTEM32 \ WBEM \ SNMPREG.MOF ' 25610 13:55:38(0)**-Root / CIMv2、InstancesOf、 'Win32_PerfFormattedData_PerfProc_Thread'、0x8007000E-この操作を完了するのに十分なストレージがありません。

25611 13:55:38(0)** MOF登録: 'C:\ WINDOWS \ SYSTEM32 \ WBEM \ WMI.MOF'

これを見た人はいますか?アイデア?

役に立ちましたか?

解決 2

問題が見つかったと思います。クエリの一部を単純化するために、クエリの構築を容易にするためにwhere句に1 = 1のようなものを追加していました。 constant = constantを削除し、テストしていた1つのクエリが40秒から.4秒になり、一般的なエラー(WBEM_E_OUT_OF_MEMORY)を生成せずに10,000回以上実行されました。

他のヒント

「一般的な失敗」が見られました。さまざまなWMIクエリで何度もエラーが発生したため、基本的には、WMIは生の管理以外には使用できないほど安定しているという結論に達しました。何ヶ月もいじってからの唯一の解決策は、すべてのWMI呼び出しをプルし、純粋なAPI呼び出しで代替を見つけることでした。それらは常にしばらく動作し、その後、「Generic Error」で失敗します。 (これは答えではないことは知っていますが、それは共有された経験であり、誰かが答えを持っているなら、私はそれについて聞いてとてもうれしいです。)

Windowsリモート管理(WinRM)は、これらすべての問題を克服する可能性があります。 WinRMは、標準のシンプルオブジェクトアクセスプロトコル(SOAP)ベースのWS-Managementプロトコルのマイクロソフトによる実装です。

WMI経由でリモートマシンにソフトウェアをアンインストール/インストールしようとすると、これと同様の問題が発生しました。

移動プロファイルがターゲットマシンに存在する場合に問題が発生します。これは、ターゲットマシンでWMIを事前に照会したことが原因である可能性があります。

これが同じ問題であるかどうかはわかりませんが、ソフトウェアをアンインストールする前に、プロファイルがターゲットマシンのDocuments and Settingsフォルダにあるかどうかを確認する必要があります。

クエリを実行すると、ローカルマシンでプロファイルが作成されると想定しています。

以前に作業していたマシンでソフトウェアをアンインストールしようとしたときに、一般的なエラーメッセージが表示されました。

これで、ソフトウェアコンポーネントをリモートでアンインストールまたはインストールする前に、ターゲットマシンからプロファイルが削除されることを確認します。以来、問題はありません。

これが誰にも役立つことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top