El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Libro Excel de Eventos V2.0

Posted by urpiano en Lunes 27 \27\UTC noviembre \27\UTC 2006

Libro Excel que permite organizar los eventos de uno o más equipos (equipo local o equipos remotos) de un dominio o grupo de trabajo. Genera tres tipos de libros: de backup, clasificado y de impresión. Muy útil para mirar la salud de nuestros equipos, detectar fallos y tratar de corregirlos.

Tabla de contenidos

Tabla de contenidos

Introducción

Cómo usar el libro de eventos

Selección de equipo/s a procesar

1.      Sólo equipo local

2.      Grupo de trabajo

3.      Dominio

Seguridad

Orígenes de eventos

Libros a generar

Backup

Clasificado

Impresión

Ruta de destino de los libros generados

Nomenclatura de los libros generados

Apéndice 1: Feedback

Apéndice 2: Comparación con la anterior versión

Apéndice 3: Límites de Excel

Apéndice 4: Administración remota

Introducción

El libro Excel de eventos tiene por objetivo el poder presentar de forma más amigable los eventos del sistema y además permitir almacenarlos.

Los presenta de forma más amigable pues lo hace en hojas de Excel, ya sea en la presentación en sí de los eventos como en la manipulación de los mismos a la hora de buscar uno en concreto (con el uso de autofiltros, por ejemplo). Además, dependiendo del libro de resultados generado, proporciona una hoja de resumen en la que se refleja el recuento de ocurrencias de cada suceso y proporciona enlace a EventID con el número y origen de cada uno de esos eventos; además de todo esto, proporciona una explicación de los eventos si en la base de datos de explicaciones hay una entrada referente al mismo.

Para quien conozca la anterior versión del libro Excel de eventos, podrá apreciar cómo esta versión hace que el anterior sea una patata –(|:o)).

Cómo usar el libro de eventos

Para utilizar el libro de eventos se deben realizar cinco pasos, cinco pasos que se realizan en la hoja “Ejecutar”. Estos cinco pasos son:

  1. Seleccionar el/los equipo/s a que se va/n a procesar.
  2. Indicar el/los origen/es de eventos que se va/n a procesar.
  3. Marcar qué tipo/s de libro/s se generará/n.
  4. Establecer la ruta donde se guardará/n el/los libro/s generado/s.
  5. Ejecutar.

Selección de equipo/s a procesar

Para la selección de los equipos está el primer marco de la hoja. En el vemos a la izquierda, en una columna, tres botones de opción que se corresponden con:

1. Sólo equipo local

Si se selecciona esta opción, tan solo se procesarán los eventos del equipo desde el que se abre el libro. Por ello, nada más queda por hacer en este marco de equipos a procesar, el equipo local ya está seleccionado

.

2. Grupo de trabajo

Si se selecciona esta opción, se procesarán los equipos que se encuentren a través del entorno de red. Aparecen dos nuevas opciones:

a.       Grupo local: hace referencia al grupo o dominio al que pertenece el equipo desde el que se abre el libro. Si se selecciona esta opción, no es ya necesario hacer nada más en estas opciones. La lista se llena con el los equipos que se muestran ejecutando, desde línea de comandos, “net view

b.      Grupo determinado: en el caso de seleccionar esta opción aparecerá una caja de texto en la que deberemos escribir el grupo que queremos que sea listado. Una vez establecido el grupo, deberemos pulsar el botón “Listar equipos” y se llenará la lista con los equipos que se obtienen al ejecutar “net view /domain:<nombre de grupo>”.

Una vez tenemos la lista rellena, seleccionamos el/los equipo/s que deseemos procesar.

3. Dominio

Si seleccionamos esta opción, aparecerá una caja de texto en la que deberemos escribir el nombre del dominio que queremos listar; de forma predeterminada, aparecerá el nombre del dominio al que pertenece el equipo en el que se ha abierto el libro. Una vez establecido el nombre del dominio debemos pulsar el botón “Listar equipo” para que el libro enumere las cuentas de equipo del dominio especificado.

Una vez tenemos rellena la lista, seleccionamos el/los equipo/s que deseemos procesar.

Seguridad

Para poder acceder por WMI a los eventos es necesario presentar credenciales. Las cajas de texto de usuario y contraseña nos permiten lanzar el proceso con el usuario que deseemos. Debemos distinguir entre el equipo local y el resto de equipos.

a. Equipo local: cuando estamos procesando el equipo local, las credenciales que se usarán son las del propio usuario que ha abierto el libro de eventos, pues WMI no nos permitirá establecer otras credenciales. Como estamos logados en el equipo, tenemos la posibilidad de leer los ficheros de eventos, y por tanto no hay problema. No obstante hay una salvedad: sólo los usuarios administradores pueden leer los ficheros de eventos de seguridad, por lo que si se desea procesar este origen de eventos, es necesario que el usuario que tiene abierto el libro sea administrador del mismo, ya sea porque ha iniciado sesión en el equipo o porque ha abierto Excel con RunAs como administrador.

b. Equipos remotos: cuando se quiere acceder a los eventos de otros equipos distintos del local, es necesario que presentemos credenciales. Esto es más así si estamos en un grupo de trabajo, pues si estamos en un dominio es probable que no haya problemas (siempre que no haya políticas que denieguen el acceder por red, por ejemplo, al usuario que lanza el proceso); al igual que pasaba con el equipo local, si queremos leer los sucesos de seguridad será necesario que el usuario sea administrador del dominio.

El libro proporciona la posibilidad de establecer otras credenciales distintas a las del usuario que abrió el libro para conectar al servicio WMI de los equipos. Hay cosas a tener en cuenta según estemos en un dominio o un grupo de trabajo:

1. Dominio: como decíamos antes, en el caso de un dominio, siempre que no se quieran listar los eventos de seguridad, es probable que podamos dejar en blanco las cajas de texto de usuario y contraseña, pues no deberíamos tener problemas. De presentarse éstos, podemos poner en las cajas de texto el usuario y la contraseña de un administrador del dominio. Debemos poner el nombre completo de usuario, ya sea en la forma dominio\usuario o en la forma usuario@dominio; en el caso de poner sólo el nombre de usuario.

2. Grupo de trabajo: cuando se trata de un grupo de trabajo, es imprescindible que pongamos el nombre de usuario, pero no el nombre completo, pues el libro de eventos se encargará de construirlo a partir del nombre del equipo. De esta manera, si tenemos un grupo de trabajo configurado como mandan los cánones (los usuarios dados de alta en todos los equipo), podremos usar un único usuario para poder crear los libros de todos. De no estar esta configuración así, nos veremos obligados a lanzar el proceso equipo a equipo suministrando las credenciales adecuadas para cada uno.

Orígenes de eventos

En este marco estableceremos qué ficheros de eventos serán los que se procesen. Las posibilidades son:

1.      Sistema

2.      Aplicación

3.      Seguridad

4.      DNS

5.      Directorio Activo

6.      Servicio FRS

7.      Todos

La selección puede ser de uno o más orígenes a la vez; en el caso de seleccionar todos, se procesarán todos los ficheros de eventos que tenga el equipo, incluso si fuesen otros no contemplados en la lista. Cuando no existe un origen de eventos en concreto, el libro pasa a procesar el siguiente.

Libros a generar

En este marco se establece/n que libro/s se debe/n generar. Los tipos posibles son:

1.      Backup

2.      Clasificado

3.      Impresión

Backup

Este libro recoge todos los eventos que haya en el fichero de eventos que se procesa, de ahí su nombre. No realiza ninguna tarea más, solo recogerlos y “maquillarlos” en tantas hojas Excel como sea necesario; al ser el límite de líneas de una hoja Excel 65.536, nos podemos encontrar con ficheros de eventos que contengan más eventos (en concreto el origen “Seguridad” tiene más peligro que una piraña en el bidet, sobre todo si estamos en un equipo al que no se le ha limpiado desde hace tiempo), lo cual originará un error; en futuras versiones trataré de solucionar esto.

Cuando se selecciona este origen, aparecen dos casillas de verificación:

1.      Borrar el origen de eventos: deja vacío el fichero de eventos procesado

2.      Crear fichero evt: si queremos que se exporte el fichero de eventos a un evt marcaremos esta opción. Con un fichero evt podremos consultar los eventos cargándolo desde el visor de sucesos; los ficheros evt sólo se pueden generar en el equipo local, no en otro equipo.

Clasificado

El libro clasificado se llama así porque recoge los eventos clasificados en hojas. Cada dúo de número de evento – origen (por ejemplo evento 1000 de origen Userenv) se va escribiendo en su propia hoja. En este libro se omiten los eventos 10 de origen Print, que son los que recoge el libro de impresión.

Se crea además una primera hoja de resumen. En ella vemos en columnas, de izquierda a derecha:

1.      Número de veces que apareció el evento.

2.      Número de evento (ejemplo: 1000).

3.      Origen del evento (ejemplo: Userenv).

4.      Descripción del evento.

5.      Hipervínculo a la página correspondiente de EventID.

Tanto la columna de número de evento como la de origen tienen un hipervínculo que lleva a la hoja con lo eventos de ese número-origen.

Sobre la columna descripción

La columna descripción es rellenada a raíz de una búsqueda que se realiza en la hoja “Eventos” del libro de eventos. Las descripción que hay ahí no siempre serán adecuadas para nuestros equipos, no hay que tomarlas como si de una ley se tratara; en la mayoría de los casos serán adecuadas, pero en otros no responderán al caso de un equipo en concreto, sobre todo en el caso de errores (no hay más que ver en EventID cómo un mismo número-origen puede tener muchas explicaciones diferentes. Por ello es recomendable que estudiemos estas explicaciones en nuestro caso concreto y las modifiquemos de ser necesario.

Podemos hacer que el libro mejore creando nuevas entradas para los eventos en esta hoja, pues el libro busca en ella la descripción de un evento en concreto; en caso de no encontrarla no escribe nada en la hoja de resumen. Así pues, cuando encontremos la explicación a un evento no incluida en la lista de descripciones, deberíamos incluirla en ella y guardar el libro de eventos así modificado. Si añadimos un evento en esta hoja, lo más conveniente es la ordenemos de nuevo por Id de evento y Origen.

Impresión

Este libro crea una hoja por cada uno de los usuarios que aparezcan como lanzadores del evento 10 de origen Print. En esa hoja se podrá consultar cada uno de esos eventos, donde veremos el nombre del documento lanzado, entre otras cosas.

La primera hoja de este libro es un resumen, en el que aparecen listas con nombre de usuario y número de eventos 10-Print generados. La primera lista está ordenada por usuarios alfabéticamente y las subsiguientes son ranking por número de documentos impresos, número de hojas impresas y porcentaje de hojas por documento.

Ruta de destino de los libros generados

En el marco ruta de destino podremos escribir la ruta donde queremos que se guarden los libros que se generen. También podemos pulsar el botón “Explorar” y seleccionar la carpeta en el cuadro de diálogo de selección de carpeta que se abre.

Nomenclatura de los libros generados

Los libros serán guardados con la siguiente nomenclatura:

<nombre de equipo> <fecha(yyyymmdd) hora(hhnnss)> <fichero de eventos> ~ <tipo de libro>.xls

Ejemplo:

LEGOLAS – 20060512 143051 – System ~ Impresion.xls

Apéndice 1: Feedback

Este libro Excel depende de todo aquel que lo use para depurar sus errores y mejorar con nuevas prestaciones y descripciones de eventos. Por ello, agradecería que se me comunique en freyes arroba mvps punto org todo error o posible mejora y también que se me envíen las descripciones que se le hayan añadido, para así tener una mayor base de datos de descripciones.

Apéndice 2: Comparación con la anterior versión

Es como comparar un Ferrari con un Topolino –(|:o)))

La versión anterior no estaba automatizada: era necesario que el usuario abriese el visor de sucesos, hiciera clic derecho sobre el origen de eventos que quisiera procesar, lo exportara a un fichero CSV, que además se debía llamar “sistema.csv”, abrirlo desde Excel y pasar texto a columnas. Tener que hacer todo esto a mano no era lo peor; lo peor era que al basarse en un fichero CSV se perdían datos (el campo “Data” por ejemplo y además se producían saltos de línea indeseados (en concreto intentar procesar el origen “Seguridad” era un fracaso seguro).

El resultado generado era un libro mezcla del de Impresión y el Clasificado, sin ranking de impresión.

Apéndice 3: Límites de Excel

Un libro Excel tiene varios límites:

1.      Máximo número de hojas por libro:256

2.      Máximo número de columnas por hoja: 256

3.      Máximo número de líneas por hoja: 65536

4.      Máximo tamaño de datos en una celda: 32 Kb

5.      Máxima longitud de nombre en una hoja: 31 caracteres

Estos límites provocan determinados comportamientos que he debido desarrollar en este libro Excel:

·         Dado que el límite de líneas por hoja es de 65536, y haciendo pruebas en logs de seguridad (que suelen estar muy llenos) se me presentó el problema de que se pudiera rebasar este número de líneas en el libro de Backup, con lo que se producía un error. Para solventarlo, hice que se creara una nueva hoja para continuar con el volcado de los eventos. Por extensión, pensé que este mismo problema se podría presentar en otro tipo de hojas, como las de dúo de nº de evento – Origen, decidí hacer lo mismo, con lo que en lugar de presentarse las hojas con un nombre del estilo “1000-Userenv” a esto se añade un índice, en formato de dos dígitos y precedido de un guión, con lo que el nombre anterior quedaría “1000-Userenv-01”; de esa manera, se pueden tener tantas hojas como sea necesario (hasta un límite de 256 en total, claro).

·         El que el límite de caracteres para el nombre de una hoja sea de 31, hace que determinados orígenes de evento, con nombres largos, excedan este límite de por sí o lo hagan al sumarse al número de evento o al índice. Por ello, este nombre queda truncado para evitar el problema.

·         Como el límite de hojas es de 256, sería necesaria la creación de otro libro cuando éste fuera alcanzado. Quizás en otra versión, aunque no me convence, pues antes de que pasase esto, el equipo que ejecuta el libro Excel de eventos dejaría de responder adecuadamente, debido a que la memoria estaría llena. De momento, yo recomendaría que se limpien los eventos en los equipos con más frecuencia, pues nunca me ha pasado y para que pase me imagino que debe ser necesario un origen de evento configurado muy grande y nunca limpiado, lo que quizás demuestra un escaso mantenimiento del equipo. El libro Clasificado en una estupenda herramienta para revisar el estado de salud del equipo y buscar la solución de determinados problemas, por lo que generarlo con regularidad y limpiando el origen al generarlo, estaremos haciendo un buen mantenimiento del equipo.

·         El máximo tamaño de datos en una celda presenta problemas con el campo Data de un evento. Este campo es un array de bytes, que en ocasiones puede ser extenso. Como además se presenta en formato de editor hexadecimal (tal y como lo presenta el visor de sucesos cuando hacemos doble clic sobre un suceso), se aumento este tamaño. Debido a ello, los datos así presentados son truncados al límite de 32 KB, ignorándose el resto. Quizás para otra versión estudie el mecanismo para poder presentarlos sin perder nada.

·         Por suerte, el límite de columnas no afecta a este libro de eventos.

Apéndice 4: Administración remota

El libro Excel de eventos utiliza WMI para acceder a los eventos. Cuando queremos acceder por WMI a otro equipo que tiene el firewall activo se debe realizar la configuración que describe el siguiente artículo:

Connecting Through Windows Firewall
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/connecting_through_windows_firewall.asp

Windows XP Home Edition no soporta la administración remota, por lo que no se podrán registrar los sucesos de equipos XP Home desde otro equipo. Sí se puede, sin embargo, registrar los sucesos de un XP Professional desde un XP Home.

© Noviembre de 2006 –  Fernando Reyes López

 

Fichero ZIP: Este fichero contiene el libro Excel de Eventos v2.0 y el manual de uso. El libro Excel de Eventos v2.0 esta firmado con una firma digital de la Fábrica Nacional de Moneda y Timbre y para que sea aceptada sin avisos de seguridad la firma, se debe agregar a los emisores raíz la entidad emisora “FNMT Clas 2 CA” y confiar en sus certificados para firma de código; si nos fiamos de los billetes de la FNMT por qué no hacerlo de sus certificados -(|:o))

Anuncios

8 comentarios to “Libro Excel de Eventos V2.0”

  1. Peni said

    Muchísimas gracias por ofrecer esta herramienta. La verdad es que es muy muy cómodo el poder analizar lo que ocurre en un equipo tranquilamente sentado en la oficina :-)

  2. […] realizar tareas en otro, aunque sea de otro dominio. Una demostración de esto se puede ver en mi Libro Excel De Eventos v2.0, con el cual se puede operar con los visores de eventos de cualquier equipo de la LAN, sea o no de […]

  3. Vcitor said

    Hola Fernando, desde hace algun tiempo dí con tu fantastico “eventosV2”, que me ha sido de gran utilidad, sobre todo para hacer las auditorias de impresion en el dominio. Ahora necesitaria sacar estas mismas auditorias pero entre 2 fechas. ¿Como podria hacerlo? modificando alguna parte del codigo del programa? haciendo algo en el visor de sucesos?

    Gracias de antemano, y enhorabuena por esta herramienta!!

    • urpiano said

      Podrías probar a editar el procedimiento s_ObtenEventos, en el módulo bas_VolcadoDeEventos, de manera que donde pone:

          'Realizamos la búsqueda WQL de todos los eventos presentes en el fichero de eventos recibido como parámetro
          Set col_EventosRegistrados = obj_ServicioWMI.ExecQuery _
          ("Select * from Win32_NTLogEvent Where Logfile = '" & str_FicheroDeEventos & "'")

      Ponga algo así como:

          'Realizamos la búsqueda WQL de todos los eventos presentes en el fichero de eventos recibido como parámetro
          Set col_EventosRegistrados = obj_ServicioWMI.ExecQuery _
          ("Select * from Win32_NTLogEvent Where Logfile = '" & str_FicheroDeEventos & "' AND " & _
          "TimeGenerated >= 'fechainicial' AND TimeGenerated <= 'fechafinal'")
  4. Jose Maria said

    Hola;

    Me ha parecido fantastica la aplicación, aunque a veces no se porque se me ha quedado pillada, pero me reconoce todos los equipos de la red.

    estoy intentando, sin mucho exito, hacer una hoja excel en el que me aparezca todos los ordenadores de la red, pero a su vez me diga que versión de excel tienen instalada en cada equipo.

    sabrias orientarme , porfavor.

    Un Saludo.
    Jose maria.

  5. urpiano said

    Jose Maria,

    Mira si esto te ayuda:

    How Can I Determine Which Version of Word is Installed on a Computer?
    http://blogs.technet.com/b/heyscriptingguy/archive/2005/01/10/how-can-i-determine-which-version-of-word-is-installed-on-a-computer.aspx

  6. Jose Maria said

    Hola Urpiano;

    excepcional, he puesto los dos script en un archivo.vbs y a funcionado a la perfección tanto:

    Set objexcel = CreateObject(“Excel.Application”)
    Wscript.Echo “Version: ” & objexcel.Version
    Wscript.Echo “Build: ” & objexcel.Build
    objexcel.Quit

    y tambien

    Set objexcel = CreateObject(“Excel.Application”, “PC-03”)
    Wscript.Echo “Version: ” & objexcel.Version
    Wscript.Echo “Build: ” & objexcel.Build
    objexcel.Quit

    pero estoy intentando que al ejecutar una macro que yo ponga una serie de nombre de ordenadores, me devuelva el nombre del equipo y la versión en unas celdas.
    Pero no lo consigo.

    Gracias por todo.

    Un Saludo.
    Jose Maria.

    • urpiano said

      Jose Maria,

      Supongamos que en la hoja Excel tienes encabezados en la línea 1 con Equipo, Version, Build, Error y en la columna A tienes, a partir de la línea 2 los nombres de los equipos. Puedes hacer una macro de este estilo:

      Sub s_VersionOffice()
      
          Dim ws_Hoja As Excel,Worksheet
          Din lng_Linea As Long
          Dim obj_Excel As Object
      
          Set ws_Hoja = ActiveSheet
      
          For lng_Linea = 2 To ws_Hoja.UsedRange.Rows.Count
      
              On Error Resume Next
      
              Set obj_Excel = CreateObject("Excel.Application", ws_Hoja.Range("A" & lng_Linea).Value)
      
              If Err.Number = 0 Then
      
                  ws_Hoja.Range("B" & lng_Linea).Value = obj_Excel.Version
                  ws_Hoja.Range("C" & lng_Linea).Value = obj_Excel.Build
                  ws_Hoja.Range("D" & lng_Linea).Value = "Correcto"
      
              Else
      
                  ws_Hoja.Range("D" & lng_Linea).Value = Err.Number & " (" & Err.Decription & ")"
      
              End If
      
              Err.Clear
              On Error Goto 0
      
          Next lng_Linea
      
      End Sub 's_VersionOffice

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: