WMI-Activityイベント 5858 は ResultCode を使用して頻繁にログに記録0x80041032

この記事では、ResultCode = WMI-Activity R2 でログに記録されるイベント ID 5858 を解決0x80041032をWindows Server 2012します。

適用対象:  Windows Server 2012R2
元の 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)

原因

WMI-Activity ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED) のエラー 5858 は、WMI 呼び出し元が正常に発行されたが、メソッドを使用して完全な結果セットを取得する前にオブジェクトを解放したと示しています。 IWbemServices:ExecQuery IWbemContext IEnumWbemClassObject::Next クライアントがリンクを終了するときに (オブジェクトを解放して) WMI サービスがクライアントのデータを保持している場合は、この IWbemContext イベントがログに記録されます。

このエラーは、WMI アプリケーションが、クエリ対象のオブジェクトを取得するのに十分な時間が経過していないタイムアウト値 IEnumWbemClassObject::Next (lTimeout) を呼び出し、要求を再度発行するために戻りコードをチェックしていない場合に発生します。 WBEM_S_TIMEDOUT (0x40004)

解決方法

IWbemContext オブジェクトを解放する前に、WMI クライアント アプリケーションを変更して、完全な結果セットを取得する呼び出し IEnumWbemClassObject::Next を発行する必要があります。 オブジェクトが受信されない場合は、タイムアウト値 (lTimeout) が 0 より大きく、返 WBEM_S_TIMEDOUT (0x40004) されません。

詳細

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