Windows Management Infrastructure API for Python.
Project description
This project provides a Python native module wrapper over the Windows Management Infrastructure (MI) API [1].
Works with Python 2.7 and 3.x on any Windows version which supports the MI API, both x86 and x64.
It includes also a drop-in replacement for the Python WMI [2] module, proving much faster execution times and no dependency on pywin32.
Installation
Pip is the preferred way to install PyMI. Pre-compiled binary wheels are available on Pypi [3]:
pip install PyMI
Usage
This project can be used either with a lower level interface that reflects the underlying MI API structure or with the higher level (and slightly slower) WMI module replacement.
MI module basic usage
Here’s a simple example which enumerates all processes and kills any instance of “KillerRabbitOfCaerbannog.exe”.
import mi with mi.Application() as a: with a.create_session(protocol=mi.PROTOCOL_WMIDCOM) as s: proc_name = u'notepad.exe' with s.exec_query( u"root\\cimv2", u"select * from Win32_Process") as q: i = q.get_next_instance() while i is not None: if i[u'name'].lower() == u"KillerRabbitOfCaerbannog.exe": cls = i.get_class() # Prepare parameters params = a.create_method_params(cls, u"Terminate") # Exit code params['reason'] = 10 # Invoke method with s.invoke_method(i, u"Terminate", params) as op: op.get_next_instance() i = q.get_next_instance()
WMI module basic usage
And here’s the same example written using the WMI module replacement, which provides a simpler and higher level interface over the mi API:
import wmi conn = wmi.WMI() for p in conn.Win32_Process(): if p.Name == u"KillerRabbitOfCaerbannog.exe": p.Terminate(reason=10)
Build
Open the provided PyMI.sln solution in Visual Studio 2015 [4], choose your target Python version / platform and build. Wheel packages are automatically generated in the dist folder for release builds.
Note: the target Python version must be present. The Python path can be customized by setting the corresponding PythonDir* user macro, e.g. PythonDir_34_x64.
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for PyMI-1.0.4-cp36-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d422edcc8823b8a1a3ee9e2c9ccfd54adbe46bcc8146ea5643fde0e2af12afd |
|
MD5 | a871fdbf32eed9b04b1dbedfe0cd165b |
|
BLAKE2b-256 | 5a3cb7738b1029a383e61f531a864573313b87c627538264c6aed058439659c2 |
Hashes for PyMI-1.0.4-cp35-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c76cba0304f532a1b18c9b628b2225e59c9db9ebe4e7e86dca6e2fa440791a63 |
|
MD5 | 6f4563311faf042b7bab0627f1afd7a5 |
|
BLAKE2b-256 | 11a81b1f419631445c554eac6921b69409943fc0f23383ca3ccb3c4933c5e33d |
Hashes for PyMI-1.0.4-cp34-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a823672b872b1d3e299e64a9063d7fb1d8dbcb590fdab448de1858a65e9ec17b |
|
MD5 | f1ef0708c64bff773d46f90ee006f4c0 |
|
BLAKE2b-256 | 508c4f4339809a1ecb20198217f1368e251936f6e4c0bb61533e77e6f54ae54f |
Hashes for PyMI-1.0.4-cp27-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0978f5df6a1078f2af27e7209cd5f709186637189965d6c754abc28d5817dd7e |
|
MD5 | f7fc1e40c8c6e404610d1e148b245cad |
|
BLAKE2b-256 | bf413170b7bd56197591c2d15ee65aeeda04ff7fef371eb2760447e164a0ac8d |