WMI-Activity イベント 5858 が ResultCode 0x80041032で頻繁に記録される
この記事では、Windows Server 2012 R2 で ResultCode = 0x80041032 でログに記録される WMI-Activity イベント ID 5858 を解決する解決策について説明します。
適用対象: Windows Server 2012 R2
元の KB 番号: 3124914
現象
を使用して WMI クエリを発行するアプリケーションで Windows Server 2012 R2 を使用IWbemServices:ExecQuery
する場合、管理者はイベント ビューアーで次のイベントを観察することがあります。
Log Name: Microsoft-Windows-WMI-Activity/Operational
Source: WMI-Activity
Event ID: 5858
Level: Error
Id = {guid}; ClientMachine = <computer>; User = <user>; ClientProcessId = <process ID>; Component = Unknown; Operation = Start IWbemServices::ExecQuery - <WMI namespace>: <Select Query Statement>; ResultCode = 0x80041032; PossibleCause = Unknown
where 0x80041032 indicates WBEM_E_CALL_CANCELLED.
注:
このイベントは、さまざまな ResultCode 値で発生する可能性があります。 この記事で説明する問題は、 の場合 ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED)
にのみ適用されます。
原因
エラー 5858 と ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED) WMI-Activity は、WMI 呼び出し元が 正常にを発行IWbemServices:ExecQuery
したが、 メソッドを使用してIEnumWbemClassObject::Next
完全な結果セットを取得する前に オブジェクトを解放IWbemContext
したことを示します。 クライアントが (オブジェクトを解放して) リンクを終了したときに WMI サービスがクライアントのデータを IWbemContext
保持している場合、このイベントがログに記録されます。
このエラーは、WMI アプリケーションが、クエリ対象のオブジェクトを取得するのに十分な長さではないタイムアウト値 (lTimeout) を使用してを呼び出 IEnumWbemClassObject::Next
し、要求を再度発行するために の WBEM_S_TIMEDOUT (0x40004)
戻りコードをチェックしていない場合に発生する可能性があります。
解決方法
WMI クライアント アプリケーションは、IWbemContext オブジェクトを IEnumWbemClassObject::Next
解放する前に、呼び出しを発行して完全な結果セットを取得するように変更する必要があります。 オブジェクトが受信されない場合は、タイムアウト値 (lTimeout) が 0 より大きく、返されていないことを WBEM_S_TIMEDOUT (0x40004)
確認します。
詳細
詳細については、以下を参照してください:
-
注:
このページの最後に含まれるサンプル コードは、タイムアウト値 (lTimeout) が 0 で呼び出されていることを示
IEnumWbemClassObject::Next
しており、WBEM_S_TIMEDOUT エラーを確認していません。
データ収集
Microsoft サポートからの支援が必要な場合は、「 TSS for User Experience の問題を使用した情報の収集」に記載されている手順に従って情報を収集することをお勧めします。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示