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) 確認します。

詳細

詳細については、以下を参照してください:

データ収集

Microsoft サポートからの支援が必要な場合は、「 TSS for User Experience の問題を使用した情報の収集」に記載されている手順に従って情報を収集することをお勧めします。