[python-win32] Backing up and clearing event logs
Mårten Hedman
marten.hedman at btk.fi
Mon Jul 23 12:12:32 CEST 2007
Tim Golden wrote:
> Mårten Hedman wrote:
>> Hello,
>>
>> I am trying to write a script for backing up and clearing event logs on
>> our Windows 2003 servers, using Python 2.5 and Tim Golden's WMI module.
>> While testing with the Application log on a local Windows XP machine I
>> seem to get stuck on the parameters to WMI.
>>
>> The following code:
>>
>> import wmi
>> c = wmi.WMI(privileges=["Backup"])
>> logfiles = c.ExecQuery("SELECT * FROM Win32_NTEventLogFile WHERE
>> LogFileName='Application'")
>>
>> for lf in logfiles:
>> lf.BackupEventLog("c:\\temp\\Applog.evt")
>>
>> gives the following error message:
>>
>> Traceback (most recent call last):
>> File "<interactive input>", line 2, in <module>
>> File "C:\Python25\lib\site-packages\win32com\client\dynamic.py", line
>> 491, in __getattr__
>> raise pythoncom.com_error, details
>> com_error: (-2147352567, 'Exception occurred.', (0, 'SWbemObjectEx',
>> 'Invalid parameter ', None, 0, -2147217400), None)
>
> I doubt if the moniker's got anything to do with it.
> You're just falling foul of the fact that I haven't
> released the fix which allows positional args in
> a WMI method call: you have to use named args. So...
>
> <dump>
> >>> import wmi
> >>> c = wmi.WMI ()
> >>> log = c.Win32_NTEventLogFile
> >>> print log.BackupEventlog
> <function BackupEventlog (ArchiveFileName) => (ReturnValue) | Needs: SeSecurityPrivilege, SeBackupPrivilege>
> >>>
>
> </dump>
>
> ... try:
>
> lf.BackupEventLog (ArchiveFileName="c:\\temp\\blah.blah")
Thank you for your quick answer. Unfortunately I get the same error message.
BTW, is WMI case sensitive regarding method names? If I run your example
with 'print log.BackupEventLog', I get the error:
<dump>
>>> c=wmi.WMI()
>>> log=c.Win32_NTEventLogFile
>>> print log.BackupEventLog
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python25\lib\site-packages\wmi.py", line 474, in __getattr__
handle_com_error (error_info)
File "C:\Python25\lib\site-packages\wmi.py", line 188, in
handle_com_error
raise x_wmi, "\n".join (exception_string)
x_wmi: -0x7ffdfff7 - Exception occurred.
Error in: SWbemObjectEx
-0x7ffbefd1 - Invalid method Parameter(s)
>>>
</dump>
Both 'lf.BackupEventLog (ArchiveFileName="c:\\temp\\blah.blah")' and
'lf.BackupEventlog (...)' returns the same error though
Mårten Hedman
More information about the Python-win32
mailing list