how to get elements of a com object (wmi log events)

Tim Golden mail at timgolden.me.uk
Fri Apr 16 03:45:28 EDT 2010


On 16/04/2010 01:39, News123 wrote:
> Just having  a short question:
>
> I found a code snippet, that fetches windows event logs via a wmi query.
>
> import win32com.client
>
> strComputer = "."
> objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
> objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
> colItems = objSWbemServices.ExecQuery("Select * from Win32_NTLogEvent")
>
> for i,itm in enumerate(colItems):
>      entry =( itm.TimeGenerated,itm.TimeWritten,
>          itm.Category,itm.CategoryString,itm.ComputerName,
>          itm.Data,itm.EventCode,itm.EventIdentifier,
>          itm.EventType,itm.InsertionStrings,itm.LogFile,
>         itm.Message,itm.RecordNumber,
>         itm.SourceName,itm.Type,itm.User)
>      print entry
>
> Asumming I would not have no documentation, I would be too lazy to
> lookup or to type all this code.
>
> Would there be any way to query the list of members
> ( TimeGenerated , TimeWritten, . . . ) of variable itm?

Look at the object's .Properties_ attribute, eg:

print [p.Name for p in itm.Properties_]

TJG



More information about the Python-list mailing list