Domanda

Abbiamo un'applicazione .NET che utilizza WMI per raccogliere una vasta gamma di informazioni sui computer in una rete, come leggere Win32_NTLogEvent per vedere se Symantec Antivirus ha scritto qualcosa. Le query funzionano correttamente, ma dopo aver eseguito ripetutamente una query WMI " Errore generico " gli errori inizieranno a tornare. Questo accade in modo molto coerente dopo ca. 125 chiamate. Il riavvio della macchina su cui stiamo eseguendo la query WMI, corregge sempre l'errore ... cioè fino a quando non vengono eseguite le successive 125 query.

Sembra che il repository funzioni correttamente e non siamo in grado di individuare eventuali problemi relativi alle dimensioni del file di registro.

Ulteriori informazioni: ho eseguito WMIDiag dopo aver riscontrato l'errore e trovato -

25607 13:55:38 (1) !! ERRORE: errori di funzionamento ENUMERATION WMI riportati: 2 ERROR (S)!

25608 13:55:38 (0) ** - ROOT / CIMV2, SubClassesOf, '*', 0x80041006 - (WBEM_E_OUT_OF_MEMORY) Memoria insufficiente per l'operazione.

25609 13:55:38 (0) ** Registrazione MOF: 'C: \ WINNT \ SYSTEM32 \ WBEM \ SNMPREG.MOF ' 25610 13:55:38 (0) ** - Root / CIMv2, InstancesOf, 'Win32_PerfFormattedData_PerfProc_Thread', 0x8007000E - Memoria insufficiente per completare questa operazione.

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

Qualcuno l'ha mai visto? Idee?

È stato utile?

Soluzione 2

Credo che abbiamo riscontrato il problema. Per semplificare alcune delle nostre query, abbiamo aggiunto qualcosa come 1 = 1 nella clausola where per facilitare la creazione della query. Rimossa la costante = costante e l'unica query con cui stavo testando è passata da 40 secondi a .4 secondi ed è stata eseguita oltre 10.000 volte senza generare un errore generico (WBEM_E_OUT_OF_MEMORY).

Altri suggerimenti

Abbiamo visto " Fallimento generico " errore così tante volte con diverse query WMI che fondamentalmente siamo giunti alla conclusione che WMI non è abbastanza stabile da utilizzare per qualcosa di diverso dall'amministrazione non elaborata. La nostra unica soluzione dopo mesi di pasticciare era estrarre tutte le chiamate WMI e trovare sostituzioni nelle chiamate API pure. Funzionerebbero sempre per un po 'e poi fallirebbero con " Errore generico " (So ??che questa non è una risposta, ma è un'esperienza condivisa e se qualcuno ha una risposta sarei molto felice di saperlo).

Windows Remote Management (WinRM) può superare tutti questi problemi. WinRM è l'implementazione Microsoft di WS-Management Protocol, basato su SOAP (Simple Object Access Protocol) standard.

Ho avuto un problema simile a questo durante il tentativo di disinstallare / installare software su macchine remote tramite WMI.

Il problema sorge dove è presente il profilo in roaming sul computer di destinazione. Ciò può essere dovuto alla query precedente del WMI sul computer di destinazione.

Non so se questo è lo stesso problema, ma devo eseguire un controllo per vedere se il mio profilo si trova nella cartella Documents and Settings sul computer di destinazione prima di provare a disinstallare il software.

Suppongo che quando esegui la tua query si sta creando il tuo profilo sul computer locale.

Ho ricevuto un messaggio di errore generico ogni volta che avevo tentato di disinstallare il software su una macchina su cui avevo precedentemente lavorato in remoto.

Ora mi assicuro che prima di tentare di disinstallare / installare i componenti software da remoto, che il mio profilo venga rimosso dalla macchina di destinazione. Da allora non ho più avuto problemi.

Spero che questo aiuti chiunque.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top