Programar el visor de sucesos

10/05/2006 - 09:34 por Markus | Informe spam
Hola a todos

Pretendo, una vez al mes, guardar una copia del contenido del visor de
sucesos (aplicacion, seguridad y sistema) en archivos evt y que
automaticamente quede limpio el visor de sucesos. En definitiva, tener un
historico de los eventos por meses.

Ahora lo estoy haciendo de manera manual y me gustaria saber si existe
alguna forma (mediante WSH o parecido) de hacerlo automaticamente.

Saludos
 

Leer las respuestas

#1 Markus
11/05/2006 - 11:00 | Informe spam
Por si a alguien le interesa, publico la solución:

Lo he conseguido mediante la creación de un script con extensión .vbs, el
archivo será llamado desde el comando cscript.

¿Que hace este script?

1.- Genera tantos archivos .evt como categorias haya en el visor de sucesos
(aplicacion, seguridad, etc...) con el contenido actual de eventos.

2.- Los archivos .evt son nombrados en funcion de la categoria, año y mes en
curso.

3.- Limpia los eventos en todas sus categorias.

En mi caso particular lo he efectuado de esta manera porque desde el
programador de tareas llamaré a este script el dia 1 de cada mes. De este
modo conseguiré tener un archivo de cada categoria por mes y año.

El contenido del script es el siguiente:


strComputer = "."

Set objWMIService = GetObject("winmgmts:" &
"{impersonationLevel=impersonate, (Backup, Security)}!\\" & strComputer &
"oot\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime")

For Each objItem in colItems
strAnio = objItem.Year
Mes = objItem.Month
Next

If Mes = 1 Then
strMes = "12"
strAnio = StrAnio - 1
ElseIf Mes = 2 Then
strMes = "01"
ElseIf Mes = 3 Then
strMes = "02"
ElseIf Mes = 4 Then
strMes = "03"
ElseIf Mes = 5 Then
strMes = "04"
ElseIf Mes = 6 Then
strMes = "05"
ElseIf Mes = 7 Then
strMes = "06"
ElseIf Mes = 8 Then
strMes = "07"
ElseIf Mes = 9 Then
strMes = "08"
ElseIf Mes = 10 Then
strMes = "09"
ElseIf Mes = 11 Then
strMes = "10"
ElseIf Mes = 12 Then
strMes = "11"
End If

Set colLogFiles = objWMIService.ExecQuery ("Select * from
Win32_NTEventLogFile")

For Each objLogfile in colLogFiles
strBackupLog = objLogFile.BackupEventLog _
("c:\backup_evt\" & objLogFile.LogFileName & strAnio & strMes & ".evt")
If strBackupLog <> 0 Then
Wscript.Echo "El registro de sucesos no puede ser copiado."
Else
objLogFile.ClearEventLog()
End If
Next


Espero que os sirva




"Markus" escribió:

Hola a todos

Pretendo, una vez al mes, guardar una copia del contenido del visor de
sucesos (aplicacion, seguridad y sistema) en archivos evt y que
automaticamente quede limpio el visor de sucesos. En definitiva, tener un
historico de los eventos por meses.

Ahora lo estoy haciendo de manera manual y me gustaria saber si existe
alguna forma (mediante WSH o parecido) de hacerlo automaticamente.

Saludos

Preguntas similares