繁体   English   中英

从python中的wmi获取iis worker进程

[英]getting iis worker processes from wmi in python

我正在尝试消除if和pool 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/zh-cn/library/microsoft.web.administration.workerprocess(v=vs.90).aspx

看起来我应该实例化,但是我不知道怎么做。 任何想法如何使它在python中工作?

实际上我的代码是正确的。 我只需要使用管理员特权来运行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM