Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: pabluria en 16 Febrero 2011, 15:53 pm



Título: VBS no funciona guarda eventos
Publicado por: pabluria en 16 Febrero 2011, 15:53 pm
Hola Amigos:

Tengo el siguiente problema con este script.
me funciona la parte de buscar y guardar un evento, pero cuando no se encuentran eventos deberia guardar en el archivo la leyenda "No se encontraron eventos." pero no lo hace, que estoy haciendo mail?

muchas Gracias!!!  :laugh:


Código
  1. 'Busca el nombre de la Pc local, de aca sacamos los eventos
  2.  
  3. Set wshShell = WScript.CreateObject( "WScript.Shell" )
  4. strComputer = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
  5.  
  6.  
  7. 'conectamos
  8.  
  9. Set objWMIService = GetObject("winmgmts:" _
  10. & "{impersonationLevel=impersonate, (Backup, Security)}!\\" _
  11. & strComputer & "\root\cimv2")
  12.  
  13. ' definimos que buscar
  14.  
  15. Set colEvents = objWMIService.ExecQuery _
  16.    ("Select * from Win32_NTLogEvent Where LogFile='Security' AND (EventCode=528 or EventCode=540)")
  17.  
  18. 'creamos el archivo que contendra el log filtrado
  19.  
  20. Set objFSO = CreateObject("Scripting.FileSystemObject")
  21. Set objFile = objFSO.CreateTextFile("C:\backup_evt\" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & ".cvs")
  22.  
  23. 'le decimos que mostrar y en que orden
  24.  
  25. For Each objEvent in colEvents
  26.    strTimeWritten = objEvent.TimeWritten
  27.  
  28.    dtmTimeWritten = CDate(Mid(strTimeWritten, 5, 2) & "/" & _
  29.        Mid(strTimeWritten, 7, 2) & "/" & Left(strTimeWritten, 4) _
  30.            & " " & Mid (strTimeWritten, 9, 2) & ":" & _
  31.                Mid(strTimeWritten, 11, 2) & ":" & Mid(strTimeWritten, 13, 2))
  32.  
  33.    dtmDate = FormatDateTime(dtmTimeWritten, vbShortDate)
  34.    dtmTime = FormatDateTime(dtmTimeWritten, vbLongTime)
  35.  
  36.    strEvent = dtmDate & vbTab
  37.    strEvent = strEvent & dtmTime & vbTab
  38.    strEvent = strEvent & objEvent.SourceName & vbTab 'nombre
  39.    strEvent = strEvent & objEvent.Type & vbTab   'Error
  40.    strEvent = strEvent & objEvent.Category & vbTab 'categoria
  41.    strEvent = strEvent & objEvent.EventCode & vbTab 'codigo
  42.    strEvent = strEvent & objEvent.User & vbTab 'usuario
  43.    strEvent = strEvent & objEvent.ComputerName & vbTab 'maquina
  44.  
  45.  
  46. 'mensaje que avisa que no se encontraron eventos no funca
  47.  
  48.  
  49.    strDescription = objEvent.Message
  50.    If IsNull(strDescription) Then
  51.        strDescription = "No se encontraron eventos."
  52.    End If
  53.    strDescription = Replace(strDescription, vbCrLf, " ")
  54.    strEvent = strEvent & strDescription
  55.  
  56.    objFile.WriteLine strEvent
  57. Next
  58.  
  59. objFile.Close


Título: Re: VBS no funciona guarda eventos
Publicado por: Novlucker en 16 Febrero 2011, 16:36 pm
El problema es que estas verificando si no hay eventos dentro del For Each, pero si no hay eventos ese For Each nunca se da, por lo cual nunca llegas a escribir nada :P

Saludos


Título: Re: VBS no funciona guarda eventos
Publicado por: pabluria en 21 Febrero 2011, 17:35 pm
Muchas Gracias Por tu pronta respuesta. como podria hacer esta verificacion. soy nuevo en esto y hace dias que me estoy rompiendo la cabeza!!!
mil gracias!!!


Título: Re: VBS no funciona guarda eventos
Publicado por: Novlucker en 22 Febrero 2011, 01:18 am
Antes de entrar al for each, incluye un if colEvents.count=0 :P

Saludos


Título: Re: VBS no funciona guarda eventos
Publicado por: pabluria en 22 Febrero 2011, 02:09 am
 :laugh: ;-) ;-) ;-) ;-) ;-)
Muchisimas Gracias!!!
me acabas de resolver un problema enorme, ya tenia quemada la cabeza!!!