WMI - общая ошибка - PullRequest
       28

WMI - общая ошибка

0 голосов
/ 15 октября 2008

У нас есть приложение .NET, которое использует WMI для сбора широкого спектра информации о машинах по всей сети, например, чтение Win32_NTLogEvent, чтобы узнать, написал ли Symantec Antivirus что-либо. Запросы работают нормально, но после многократного выполнения запроса WMI появляются ошибки «Generic Failure». Это происходит очень последовательно после прибл. 125 звонков. Перезагрузка компьютера, с которым мы выполняем запрос WMI, всегда исправляет ошибку ... до тех пор, пока не будут выполнены следующие 125 запросов.

Похоже, что с репозиторием все в порядке, и мы не можем обнаружить проблемы с размером файла журнала.

Подробнее - Запустил WMIDiag после получения ошибки и обнаружил -

25607 13:55:38 (1) !! ОШИБКА: Обнаружены ошибки операции WUM ENUMERATION: 2 ОШИБКА (S)!

25608 13:55:38 (0) ** - ROOT / CIMV2, SubClassesOf, '*', 0x80041006 - (WBEM_E_OUT_OF_MEMORY) Недостаточно памяти для операции.

25609 13:55:38 (0) ** Регистрация MOF: 'C: \ WINNT \ SYSTEM32 \ WBEM \ SNMPREG.MOF ' 25610 13:55:38 (0) ** - Root / CIMv2, InstancesOf, 'Win32_PerfFormattedData_PerfProc_Thread', 0x8007000E - Недостаточно памяти для выполнения этой операции ..

25611 13:55:38 (0) ** Регистрация MOF: 'C: \ WINDOWS \ SYSTEM32 \ WBEM \ WMI.MOF'

Кто-нибудь когда-нибудь видел это? Идеи?

Ответы [ 4 ]

4 голосов
/ 15 октября 2008

Мы много раз видели ошибку «Общий сбой» при разных запросах WMI, что мы в основном пришли к выводу, что WMI недостаточно стабилен, чтобы использовать его для чего-либо, кроме простого администрирования. Наше единственное решение после нескольких месяцев возни было вытягивать все вызовы WMI и находить замены в чистых вызовах API. Они всегда будут работать какое-то время, а затем потерпят неудачу с «Общей ошибкой» (я знаю, что это не ответ, но это общий опыт, и если у кого-то есть ответ, я был бы очень рад услышать об этом).

2 голосов
/ 22 октября 2008

Я думаю, что мы нашли проблему. Чтобы упростить некоторые из наших запросов, мы добавили что-то вроде 1 = 1 в предложение where, чтобы упростить построение запроса. Удалил константу = константу, и один запрос, с которым я тестировал, увеличился с 40 секунд до 0,4 секунды и выполнялся более 10000 раз без генерации общего сбоя (WBEM_E_OUT_OF_MEMORY).

0 голосов
/ 11 апреля 2012

У меня была похожая проблема при попытке удалить / установить программное обеспечение на удаленных компьютерах через WMI.

Проблема возникает в том случае, если ваш целевой профиль находится на целевой машине. Это может быть связано с тем, что на целевой машине предварительно запрашивался WMI.

Я не знаю, является ли это той же проблемой, но мне пришлось поставить на место проверку, чтобы проверить, находится ли мой профиль в папке «Документы и настройки» на целевом компьютере, прежде чем я попытаюсь удалить программное обеспечение.

Я предполагаю, что когда вы выполняете запрос, это создает ваш профиль на локальном компьютере.

Я получал сообщение об общей ошибке каждый раз, когда пытался удалить программное обеспечение на компьютере, на котором ранее работал на remotley.

Теперь я проверяю, что перед тем, как пытаться удалить / установить программные компоненты remotley, мой профиль будет удален с целевой машины. С тех пор у меня не было проблем.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 13 июля 2010

Удаленное управление Windows (WinRM) может решить все эти проблемы. WinRM - это реализация Microsoft WS-Management Protocol, стандартного протокола SOAP, основанного на простом объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...