def collect(self):
# Needs to be called if using com from a thread.
pythoncom.CoInitialize()
wmi_obj = win32com.client.GetObject(self.plugin_args.baseobj)
# This allows our WMI to do some extra things, in particular
# it gives it access to find the executable path for all processes.
wmi_obj.Security_.Privileges.AddAsString("SeDebugPrivilege")
# Run query
try:
query_results = wmi_obj.ExecQuery(self.plugin_args.query)
except pythoncom.com_error as e:
raise plugin.PluginError(
"Failed to run WMI query \'%s\' err was %s" % (
self.plugin_args.query, e))
# Extract results from the returned COMObject and return dicts.
try:
for result in query_results:
yield dict(Result=WmiResult(result))
except pythoncom.com_error as e:
raise plugin.PluginError(
"WMI query data error on query \'%s\' err was %s" %
(e, self.plugin_args.query))
评论列表
文章目录