2008-10-15 14 views
0

Nous avons une application .NET qui utilise WMI pour rassembler un large éventail d'informations sur les machines à travers un réseau, comme lire Win32_NTLogEvent pour voir si Symantec Antivirus a écrit quelque chose. Les requêtes fonctionnent correctement, mais après avoir répété plusieurs fois une requête WMI "Generic Failure" les erreurs commenceront à revenir. Cela arrive très régulièrement après env. 125 appels. Le redémarrage de la machine sur laquelle nous exécutons la requête WMI corrige toujours l'erreur ... jusqu'à ce que les 125 requêtes suivantes soient exécutées.WMI - Échec générique

Il semble que le référentiel fonctionne correctement et que nous ne trouvons aucun problème de taille de fichier journal.

Plus d'infos - Ran WMIDiag après avoir obtenu l'erreur et trouvé -

25607 13:55:38 (1) !! ERREUR: erreurs d'opération WMI ENUMERATION signalées: 2 ERREUR (S)!

25608 13:55:38 (0) ** - ROOT/CIMV2, SubClassesOf, '*', 0x80041006 - (WBEM_E_OUT_OF_MEMORY) Mémoire insuffisante pour l'opération.

25609 13:55:38 (0) ** Enregistrement MOF: 'C: \ WINNT \ system32 \ WBEM \ SNMPREG.MOF ' 25610 13:55:38 (0) ** - Root/CIMv2, InstancesOf, 'Win32_PerfFormattedData_PerfProc_Thread', 0x8007000E - Pas assez de stockage est disponible pour effectuer cette opération ..

25611 13:55:38 (0) ** MOF Inscription: « C: \ WINDOWS \ system32 \ WBEM \ WMI.MOF '

Quelqu'un a déjà vu ça? Des idées?

Répondre

2

Je crois que nous avons trouvé le problème. Pour simplifier certaines de nos requêtes, nous avons ajouté quelque chose comme 1 = 1 dans la clause where pour faciliter la construction de la requête. Suppression de la constante = constante et la requête avec laquelle je testais est passée de 40 secondes à 0,4 seconde et a été exécutée plus de 10 000 fois sans générer de défaillance générique (WBEM_E_OUT_OF_MEMORY).

4

Nous avons vu l'erreur "Échec générique" tant de fois avec différentes requêtes WMI que nous sommes arrivés à la conclusion que WMI n'est pas assez stable pour être utilisé pour autre chose que l'administration brute. Notre seule solution après des mois de déconner était de tirer tous les appels WMI et de trouver des remplacements dans les appels API purs. Ils travaillent toujours pendant un certain temps, puis échouent avec "Erreur générique" (je sais que ce n'est pas une réponse, mais c'est une expérience partagée et si quelqu'un a une réponse, je serais très heureux d'en entendre parler).

0

Windows Remote Management (WinRM) peut résoudre tous ces problèmes. WinRM est l'implémentation Microsoft de WS-Management Protocol, un protocole SOAP (Simple Object Access Protocol) standard.

0

J'ai rencontré un problème similaire lors de la tentative de désinstallation/installation de logiciels sur des machines distantes via WMI.

Le problème se présente lorsque votre profil itinérant est présent sur la machine cible. Cela peut être dû à avoir interrogé le WMI sur la machine cible. Je ne sais pas si c'est le même problème, mais j'ai dû mettre en place une vérification pour voir si mon profil est dans le dossier Documents and Settings sur la machine cible avant de tenter de désinstaller le logiciel.

Je suppose que lorsque vous exécutez votre requête est la création de votre profil sur la machine locale.

J'ai reçu un message d'échec générique à chaque fois que j'avais tenté de désinstaller le logiciel sur une machine sur laquelle j'avais précédemment travaillé sur remotley.

Maintenant, je m'assure qu'avant d'essayer de désinstaller/installer les composants logiciels remotley, que mon profil soit retiré de la machine cible. Je n'ai eu aucun problème depuis.

J'espère que cela aidera tout le monde.