Невозможно получить объект WMI через GETOBJECT ("winmgmts:") - PullRequest
3 голосов
/ 16 августа 2011

Я в тупике и не могу найти окончательного ответа.Я пытаюсь получить список сетевых адаптеров через WMI.Команда, которую я использовал, без проблем работала практически на всех рабочих станциях нашего офиса.Вчера проблема.Одна машина выходит из строя.Поскольку он запускается непосредственно на компьютере пользователя, мне не нужно явно указывать имя их компьютера и, таким образом, использовать только "."для локальной машины.Кроме того, меня не волнует «кто», так что нет никакого подражания.Пользователь должен иметь возможность запрашивать собственные ресурсы оборудования.То, что я использовал, было ...

oWMIService = GETOBJECT("winmgmts:\\.\root\cimv2")
oItems = oWMIService.ExecQuery("Select * from Win32_NetworkAdapter",,48)

Из того, что я обнаружил, в некоторых местах говорится, что нужно удалить "\" для ссылки на путь к машине.Если я это сделаю, МОЯ машина выйдет из строя, но все равно не даст результата на другой рассматриваемой машине.Итак, я даже попытался просто зайти в корень для службы, и ЭТО тоже не удалось.

oWMIService = GETOBJECT("winmgmts:\\.")

Фактическая ошибка, которую я получаю, это ...

Error Code: 0x800401ea: Moniker cannot open file.

IЯ провел поиск по этой ошибке, но не знаю, как получить разрешение.

1 Ответ

3 голосов
/ 16 августа 2011

Иногда WMI искажается и запутывается. Возможные варианты:

Перерегистрируйте / заново скомпилируйте компоненты WMI с помощью пакетного сценария, подобного этому:

net stop winmgmt
cd /d %windir%\system32\wbem\
for %i in (*.dll) do RegSvr32 /s %i
for %i in (*.mof, *.mfl) do Mofcomp %i
net start winmgmt

Если это не решает проблему, выполните сброс базы данных WMI с помощью следующего пакета:

net stop winmgmt
cd /d %windir%\system32\wbem\
rmdir /s /q Repository
rmdir /s /q Logs
mkdir Logs
net start winmgmt

И / или попробуйте такой инструмент, как сценарий WMIDiag.vbs , чтобы проверить, есть ли для вас предложения.

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