與WMI

2014-02-08 50 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)'獲得一些幫助,順便說一句。 – 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中提到了[power monitoring](http://timgolden.me.uk/python/wmi/cookbook.html#monitor-multiple-machines-for-power-events)。 – metakermit

回答

1

的這裏的問題是,Win32_PowerPlan類不在\root\CIMV2命名空間的直接Win32類,這就是爲什麼它不是在文檔中的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