Question

Nous disposons d'une application .NET qui utilise WMI pour collecter un large éventail d'informations sur les ordinateurs d'un réseau, telles que la lecture de Win32_NTLogEvent pour voir si Symantec Antivirus a écrit quelque chose. Les requêtes fonctionnent correctement, mais après avoir exécuté à plusieurs reprises une requête WMI, "Échec générique". les erreurs vont commencer à revenir. Cela se produit 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'à l'exécution des 125 requêtes suivantes.

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

Plus d'infos - Ran WMIDiag après avoir trouvé 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 - Stockage insuffisant pour effectuer cette opération ..

25611 13:55:38 (0) ** Enregistrement MOF: 'C: \ WINDOWS \ SYSTEM32 \ WBEM \ WMI.MOF'

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

Était-ce utile?

La solution 2

Je pense 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 d'échec générique (WBEM_E_OUT_OF_MEMORY).

Autres conseils

Nous avons vu le " Generic Failure " erreur si souvent avec différentes requêtes WMI que nous en sommes venus à la conclusion que WMI n’est pas assez stable pour être utilisé à des fins autres que l’administration brute. Notre seule solution, après des mois de travail, consistait à extraire tous les appels WMI et à trouver des remplaçants dans des appels d'API purs. Ils travailleraient toujours pendant un certain temps, puis échoueraient 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 de l'entendre.)

La gestion à distance de Windows (WinRM) peut résoudre tous ces problèmes. WinRM est l’implémentation Microsoft du protocole WS-Management, une norme basée sur le protocole SOAP (Simple Object Access Protocol).

J'ai eu un problème similaire à celui-ci lorsque j'ai tenté de désinstaller / installer un logiciel sur des ordinateurs distants via WMI.

Le problème se pose lorsque votre profil itinérant est présent sur la machine cible. Cela peut être dû au fait d'avoir préalablement interrogé le WMI sur la machine cible.

Je ne sais pas s'il s'agit du même problème, mais je dois vérifier si mon profil se trouve dans le dossier Documents and Settings de la machine cible avant de tenter de désinstaller le logiciel.

Je suppose que lorsque vous exécutez votre requête, vous créez 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 un logiciel sur une machine sur laquelle j'avais déjà travaillé à distance.

Je m'assure maintenant qu'avant d'essayer de désinstaller / installer des composants logiciels à distance, mon profil est supprimé de la machine cible. Je n'ai eu aucun problème depuis.

J'espère que cela aide quelqu'un.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top