2014-02-08 2 views
0

У меня возникли проблемы со следующим кодом:Доступ планы питания с WMI

import wmi 
c = wmi.WMI() 
for plan in c.Win32_PowerPlan(): 
    print plan 

Он возвращает AttributeError: winmgmts:.Win32_PowerPlan, где он должен вернуть все экземпляры плана питания на машине. Что я ошибаюсь?

+0

Я попытался прибегая к помощи этого метода 'Win32_PowerPlan', что вы ссылаетесь, но не может найти его. Какую документацию вы следуете? Вы можете перечислить доступные методы для объекта с помощью 'dir (c)' и получить некоторую помощь с помощью 'help (c)', btw. – metakermit

+0

Это [этот класс] (http://msdn.microsoft.com/en-us/library/dd904531 (v = vs.85) .aspx), опрошено, как описано [здесь] (http://timgolden.me. uk/python/wmi/tutorial.html # querying) в учебнике 'wmi'. –

+1

Да, к сожалению, я не могу запустить это лично, чтобы помочь вам, но я попытался бы использовать доступные методы на вашем экземпляре 'wmi.WMI' (используя' dir' и 'help'). IPython может помочь вам в этом с его автозаполнением и стилем 'wmi.WMI?' [Справочные функции] (http://ipython.org/ipython-doc/dev/interactive/tutorial.html). В этом cookbok есть упоминание о [мониторинге мощности] (http://timgolden.me.uk/python/wmi/cookbook.html#monitor-multiple-machines-for-power-events), если это помогает. – metakermit

ответ

1

Проблема здесь состоит в том, что Win32_PowerPlan класс не является прямым Win32 класса в \root\CIMV2 пространстве имен, поэтому это не в этом списке Win32 classes в документации.

Это фактически находится в пространстве имен \\.\root\CIMV2\power, которое можно найти, прокрутив вниз до стола в нижней части Win32_PowerPlanclass documentation.

Код, необходимый для доступа к этому использует параметра WMI() класса moniker следующим образом:

c = wmi.WMI(moniker = "//./root/cimv2/power") 
for plan in c.Win32_PowerPlan(): 
    print plan 
Смежные вопросы