Frage

Wir haben eine .NET-Anwendung, die WMI verwendet eine Vielzahl von Informationen über die Maschinen in einem Netzwerk zu sammeln, wie der Win32_NTLogEvent lesen, um zu sehen, wenn Symantec Antivirus etwas geschrieben hat. Die Abfragen funktionieren, aber nach wiederholtem eine WMI-Abfrage „Generic Failure“ läuft Fehler wieder kommen wird gestartet. Dies geschieht sehr konsequent nach ca. 125 Anrufe. Neustarten der Maschine, dass wir die WMI-Abfrage ausgeführt werden gegen, immer den Fehler behebt ... das ist, bis die nächsten 125 Abfragen ausgeführt werden.

Es scheint, dass das Repository in Ordnung ist und wir können alle Protokolldateigröße Probleme nicht gefunden werden.

Weitere Informationen - Ran WMIDiag nach den Fehler immer und gefunden -

25607 13.55.38 (1) !! ERROR: WMI Enumerationsvorgang Fehler gemeldet: 2 ERROR (S)

25608 13.55.38 (0) ** - ROOT / CIMV2, SubClassesOf, '*', 0x80041006 -. (WBEM_E_OUT_OF_MEMORY) Nicht genügend Speicher für den Betrieb

25609 13.55.38 (0) ** MOF Anmeldung: ‚C: \ winnt \ system32 \ WBEM \ SNMPREG.MOF ' 25610 13.55.38 (0) ** - Root / CIMv2, InstancesOf, 'Win32_PerfFormattedData_PerfProc_Thread', 0x8007000E - nicht genügend Speicher verfügbar, um diesen Vorgang abzuschließen ..

25611 13.55.38 (0) ** MOF Anmeldung: 'C: \ WINDOWS \ system32 \ WBEM \ WMI.MOF'

Wer jemals das sehen? Ideen?

War es hilfreich?

Lösung 2

Ich glaube, dass wir das Problem gefunden zu haben. Um einige unserer Abfragen zu vereinfachen waren wir das Hinzufügen etwas wie 1 = 1 in der where-Klausel das Gebäude der Abfrage zu erleichtern. Entfernt die Konstante = konstant und die eine Abfrage-I-Tests wurde von 40 Sekunden auf 0,4 Sekunden mit ging und habe mehr als 10.000-mal ausgeführt werden, ohne eine allgemeine Versagen zu erzeugen (WBEM_E_OUT_OF_MEMORY).

Andere Tipps

Wir sahen den „Generic Failure“ Fehler so viele Male mit verschiedenen WMI-Abfragen, dass wir im Grunde zu dem Schluss gekommen, dass WMI nicht stabil genug ist, um etwas zu verwenden, um andere als rohe Verwaltung. Unsere einzige Lösung nach Monaten der Unordnung war um alle WMI-Anrufe zu ziehen und Ersetzungen in reinem API-Aufrufe zu finden. Sie würden immer für eine Weile arbeiten, und sie dann nicht mit „Generic Error“ (Ich weiß, das ist keine Antwort, aber es ist eine gemeinsame Erfahrung, und wenn jemand eine Antwort hat wäre ich sehr glücklich darüber zu hören).

Windows Remote Management (WinRM) können alle diese Probleme überwinden. WinRM ist die Microsoft-Implementierung von WS-Management-Protokoll, ein Standard-Simple Object Access Protocol (SOAP) -Basis.

Ich hatte ein ähnliches Problem auf diesem beim Versuch, über WMI zu deinstallieren / Install Software auf entfernten Rechnern.

Das Problem entsteht, wenn Ihr Roaming-Profil auf dem Zielmaschine ist. Dies kann previusly auf unter gebührender sein, die WMI auf dem Zielcomputer abgefragt.

Ich weiß nicht, ob dies das gleiche Problem, aber ich muß habe einen Scheck an Ort und Stelle zu setzen, um zu sehen, ob mein Profil in den Ordnern Dokumente und Einstellungen auf dem Zielcomputer ist, bevor ich die Software zu deinstallieren versuchen.

Ich gehe davon aus, dass, wenn Ihr Ihre Abfrage seiner Erstellen Sie Ihr Profil auf dem lokalen Rechner ausgeführt wird.

habe ich eine Generic Fehler Nachricht jedes Mal, wenn ich versucht hatte, Software auf einem Computer zu deinstallieren, ich vorher auf remotley gearbeitet habe.

, dass ich sicherstellen Nun, bevor ich zu deinstallieren versuchen / Software-Komponenten remotley, dass mein Profil Form der Zielmaschine entfernt wird. Ich habe keine Probleme gehabt, da.

Hoffe, das hilft niemandem.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top