WMI-Activity Ereignis 5858, das häufig mit ResultCode-0x80041032 protokolliert wird
Dieser Artikel enthält eine Lösung zum Beheben der WMI-Activity Ereignis-ID 5858, die mit ResultCode = 0x80041032 in Windows Server 2012 R2 protokolliert wird.
Gilt für: Windows Server 2012 R2
Ursprüngliche KB-Nummer: 3124914
Symptome
Wenn Sie Windows Server 2012 R2 mit Anwendungen verwenden, die WMI-Abfragen mit IWbemServices:ExecQuery
ausgeben, kann der Administrator das folgende Ereignis in Ereignisanzeige beobachten:
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.
Hinweis
Dieses Ereignis kann mit vielen verschiedenen ResultCode-Werten auftreten. Das in diesem Artikel beschriebene Problem gilt nur, wenn ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED)
.
Ursache
WMI-Activity Fehler 5858 mit ResultCode = 0x80041032 (WBEM_E_CALL_CANCELLED) gibt an, dass der WMI-Aufrufer erfolgreich ausgestellt IWbemServices:ExecQuery
hat, aber das IWbemContext
Objekt vor dem Abrufen des vollständigen Resultsets mithilfe der IEnumWbemClassObject::Next
-Methode freigegeben hat. Wenn der WMI-Dienst weiterhin Daten für den Client vorhält, wenn der Client die Verknüpfung beendet (durch Freigabe des IWbemContext
-Objekts), wird dieses Ereignis protokolliert.
Dieser Fehler kann auftreten, wenn die WMI-Anwendung mit einem Timeoutwert (lTimeout) aufruft IEnumWbemClassObject::Next
, der nicht lang genug ist, um das abgefragte Objekt abzurufen, und nicht nach einem Rückgabecode von WBEM_S_TIMEDOUT (0x40004)
sucht, um die Anforderung erneut auszugeben.
Lösung
Die WMI-Clientanwendung sollte so geändert werden, dass aufruft, um IEnumWbemClassObject::Next
das vollständige Resultset abzurufen, bevor das IWbemContext-Objekt freigegeben wird. Wenn keine Objekte empfangen werden, stellen Sie sicher, dass der Timeoutwert (lTimeout) größer als 0 ist und nicht WBEM_S_TIMEDOUT (0x40004)
zurückgegeben wird.
Weitere Informationen
Weitere Informationen finden Sie unter:
IEnumWbemClassObject-Schnittstelle
Hinweis
Der Am Ende dieser Seite enthaltene Beispielcode zeigt
IEnumWbemClassObject::Next
, dass er mit einem Timeoutwert (lTimeout) von 0 aufgerufen wird und nicht auf den WBEM_S_TIMEDOUT Fehler überprüft wird.
Datensammlung
Wenn Sie Unterstützung vom Microsoft-Support benötigen, empfehlen wir Ihnen, die Informationen zu sammeln, indem Sie die Schritte unter Sammeln von Informationen mithilfe von TSS für Fragen der Benutzerfreundlichkeit ausführen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für