getting iis worker processes from wmi in python

0

I'm trying to dispay process if and pool names of iis in python. Here is my python code:

import wmi
c = wmi.WMI('.', namespace="root/WebAdministration")
c.query("select ProcessId from WorkerProcess")

it fails:

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)

I also tried:

for p in c.WorkerProcess:
    print p.ProcessId

which does not work either. Now here is a very similar visualbasic script code that works fine:

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

the documentation is: http://msdn.microsoft.com/en-us/library/microsoft.web.administration.workerprocess(v=vs.90).aspx

It looks like I'm supposed to instantiate but I cannot figure out how. Any ideas how to get it to work in python?

python
wmi
asked on Stack Overflow Nov 5, 2014 by max

1 Answer

0

Actually my code was correct. I just needed to run it with admin preivileges.

answered on Stack Overflow Nov 5, 2014 by max

User contributions licensed under CC BY-SA 3.0