我正在尝试调度进程if和池中的iis池名称。 这是我的python代码:
import wmi
c = wmi.WMI('.', namespace="root/WebAdministration")
c.query("select ProcessId from WorkerProcess")
失败了:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\wmi.py", line 1009, in query
return [ _wmi_object (obj, instance_of, fields) for obj in self._raw_query(wql) ]
File "C:\Python27\lib\site-packages\win32com\client\util.py", line 84, in next
return _get_good_object_(self._iter_.next(), resultCLSID = self.resultCLSID)
pywintypes.com_error: (-2147217389, 'OLE error 0x80041013', None, None)
我也尝试过:
for p in c.WorkerProcess:
print p.ProcessId
也不起作用。 现在这里是一个非常相似的Visualbasic脚本代码,可以正常工作:
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")
Set processes = oWebAdmin.InstancesOf("WorkerProcess")
For Each w In processes
WScript.Echo w.ProcessId
WScript.Echo w.AppPoolName
Next
文档是: http://msdn.microsoft.com/en-us/library/microsoft.web.administration.workerprocess(v=vs.90).aspx
看起来我应该实例化,但我无法弄清楚如何。 有任何想法如何让它在python中工作?
答案 0 :(得分:0)
其实我的代码是正确的。我只需要使用管理员权限运行它。