System.Management.ManagementException: не найдено

2

Я запускаю следующий код:

ManagementClass oMClass = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection colMObj = oMClass.GetInstances();

который выбрасывает это исключение:

System.Management.ManagementException: Not found 
at System.Management.ThreadDispatch.Start()
at System.Management.ManagementScope.Initialize()
at System.Management.ManagementObject.Initialize(Boolean getObject)
at System.Management.ManagementClass.GetInstances(EnumerationOptions options)
at System.Management.ManagementClass.GetInstances()

Я пошел проверять запущенные службы в Windows XP и обнаружил, что служба инструментария управления Windows имеет статус "Начать". Я попробовал перезапустить службу, но это не принесло пользы. Затем я попытался получить статус этой службы из моего текущего кода с помощью класса ServiceController:

ServiceController wpiService = new ServiceController();
wpiService.ServiceName = "Winmgmt";
string wmiStatus = wpiService.Status.ToString();
MessageBox.Show("WMI status= " + wmiStatus);

wmiStatus оценивает значение "Выполнение".

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

Есть ли какая-нибудь подсказка относительно того, что может быть причиной этого?

Теги:

2 ответа

2
Лучший ответ

Решением было восстановление WMI в Windows XP. У меня нет подробного пошагового исправления (я не тот, кто внедрил исправление), но я понимаю, что репозиторий, связанный с этой службой, может быть поврежден, и есть утилита Windows, которая может ее восстановить. Есть несколько онлайн-ресурсов о том, как это сделать.

3

Я также столкнулся с этой проблемой. Вот один из ранее упомянутых онлайн-ресурсов, объясняющий, как можно исправить WMI: http://windowsxp.mvps.org/repairwmi.htm

Метод исправления, по-видимому, отличается от разных версий Windows, как описано на этой странице.

У меня была эта проблема ни в одной из этих версий, а в Windows Embedded Standard 2009. Поскольку Windows XP Service Pack 2 ближе всего относится к перечисленным операционным системам, это та, которую я использовал:

Для Windows XP с пакетом обновления 2 (SP2)

Нажмите "Пуск", "Выполнить" и введите следующую команду:

rundll32 wbemupgd, UpgradeRepository

Эта команда используется для обнаружения и восстановления поврежденного репозитория WMI. Результаты сохраняются в файле setup.log(% windir%\system32\wbem\logs\setup.log).

  • 1
    Спасибо за вашу ссылку на исправление WMI! Один из моих клиентов - XP sp3, и я сначала попробовал «rundll32 wbemupgd, UpgradeRepository», но он возвращает ошибки (объект / пространство имен не найдено). Затем я попытался "остановить winmgmt-> переименовать репозиторий-> запустить winmgmt", и это действительно, спасибо еще раз!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню