Помилка класу Win32_IP4RouteTable


1

Я написав сценарій Python, який звертається Win32_IP4RouteTableдо наступного:

import wmi
import socket

ip = socket.gethostbyname(socket.gethostname())
rt = wmi.WMI().Win32_IP4RouteTable(Destination = ip)

Проблема полягає в тому, що останній рядок виходить з ладу на одному комп’ютері в офісі. Власник цього комп’ютера стверджує, що він не редагував нічого, пов’язаного з цим, крім зміни пріоритету з'єднання. Отриманий нами зворотній зв'язок наведено нижче:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\python27\lib\site-packages\wmi.py", line 1147, in __getattr__
    return getattr (self._namespace, attribute)
  File "c:\python27\lib\site-packages\win32com\client\dynamic.py", line 522, in
__getattr__
    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: winmgmts:.Win32_IP4RouteTable

Отже, моє запитання - що могло статися, що видалило б здатність python посилатися на цей клас? Спасибі заздалегідь

Комп'ютер Windows 64 64-розрядний

Редагувати:

Трохи пізніше я помітив, що ще кілька рядків також виходять з ладу:

from win32com.client import GetObject
WMI = GetObject('winmgmts:')
processes = WMI.InstancesOf('Win32_Process')  #Failure here

Якщо на комп’ютері, який ви постраждали, якщо ви вводите текст wmic path win32_IP4RouteTable get Destination, отримуєте результати чи помилку? Якщо виникла помилка, дотримуйтесь підручника Кеті щодо виправлення пошкодження WMI і перевірте, чи вирішує це ваше питання. katyscode.wordpress.com/2007/02/03/… WMI, будучи службою, може бути пошкоджений аваріями та іншими проблемами. Сподіваємось, кроки в навчальному посібнику можуть допомогти вам без необхідності перевстановлення.
JSanchez

@JSanchez, що отримав фактичний вихід, я припускаю, це означає, що проблема в Python?
wnnmaw

Може виникнути проблема з Python. ipЧи маєте ви значення для змінної? Не надто добре розбирається (наприклад, зовсім не) у Python. Але мені зараз цікаво ... сподіваюся, хтось сміливіший, ніж я, можу допомогти вам у цьому. :-(
JSanchez

Я дам питання на деякий час, і якщо я трохи не почую нічого, я припускаю, що це пов'язане з пітоном, і переміщу його в Stack Overflow. Але так, ipзмінна має в ній правильне значення. Я також думаю, що проблема є глибшою, тому що не вдався ще один C-клас (цього разу під час доступу до списку процесів)
wnnmaw

Написав невеликий (ну, не надто маленький, оскільки я не міг його вставити сюди) VBScript, який робить те, що робить ваш сценарій (ну, запитуюча частина WMI) і цікавився, чи не заперечуєте ви пробувати на ураженому комп'ютері і бачиш, якщо ти щось отримуєш. Якщо ні, то обов'язково випуск WMI. Якщо так, то проблема Python-> WMI?
JSanchez
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.