Con el comando eventtriggers, q viene apartir del XP profesional podemos hacer que un suceso dispare una acción en nuestra máquina. La que queramos (local y remotamente). Esto viene perfecto para controlar una red de servidores en producción e incluso para sincronizar procesos y tareas batch entre ellas.
En principio, esto es válido únicamente para Windows XP Profesional y superiores (W2003).
Vamos a ver primero un ejemplo sencillito: supongamos que queremos crear un fichero log en donde se vaya guardando qué día y a qué hora, alguien ha hecho logon en nuestra máquina.
Para eso ocupamos el comando eventtriggers, el cual nos permite lanzar un programa o realizar una tarea automáticamente cuando ocurre algún suceso predeterminado que implica la grabación de ese suceso en el Visor de Sucesos (en otro TIP posterior veremos cómo podemos, además, crearnos sucesos "nuestros" predefinidos).
Igualmente supongo que, para este ejemplo, tenemos definida la política (en gpedit.msc) para que no audite las conexiones de usuario -es decir, para que grabe un suceso cada vez que un usuario se conecte.
Asociado el suceso, lo que vamos a hacer es lanzar un script (un .bat) llamado logon-s.bat. Nuestro deseo es que nos vaya grabando las conexiones de usuario en un archivo llamado conex.log y situado en una carpeta en c:\logs .
Para ello, creamos un .BAT en c:\logs llamado logon-s.bat con el siguiente contenido:
@echo off
setlocal
for /f "tokens=1 delims= " %%u in ('date /t') do set $d1=%%u
for /f "tokens=1 delims= " %%u in ('time /t') do set $t1=%%u
echo "%$d1% %$t1% Conexión usuario" >> c:\logs\conex.log
endlocal
De esta manera ya tenemos una batería que, si se ejecuta, grabará una línea a continuación de la última que exista en el fichero conex.log en esa carpeta, con el día, la hora y un texto que dice "Conexión usuario". Ahora, para provocar el que se ejecute cada vez que alguien se conecta, simplemente, ejecutamos en una ventana de comandos:
eventtriggers /create /tr conexiones /l SECURITY /eid 680 /tk c:\logs\logon-s.bat
De esta manera, hemos creado un disparador que ejecuta la batería logon.s.bat cada vez que en el visor de sucesos, en la parte de seguridad, se escriba un suceso con ID 680 (corresponde, tal y como podes comprobar viendo uno cualquiera de los mensajes, a la conexión con éxito de un usuario).
Ese suceso queda ya definido para siempre en la máquina.
En cualquier momento, ejecutando eventtrigers sin parámetros, nos dará una lista de los triggers (disparadores) definidos en nuestra máquina. En nuestro caso:
Trigger ID Event Trigger Name Task
========== ========================= ========================================
1 conexiones c:\logs\logon-s.bat
Ahora, si queremos borrar dicho disparador, simplemente:
eventtriggers /delete /tid 1
(el "1" es porque es en la lista anterior es el ID = 1)
La sintaxis completa -que podéis encontrar en la ayuda de XP- es:
eventtriggers[.exe] /create [/s Computer [/u Domain\User [/p Password]]] /tr TriggerName [/l [APPLICATION] [SYSTEM] [SECURITY] ["DNS Server"] [LOG] [DirectoryLogName]
- ] {[/eid ID]|[/t {ERROR|INFORMATION|WARNING|SUCCESSAUDIT|FAILUREAUDIT}]|[/so Source]} [/d Description] /tk TaskName [/ru {[Domain\]User | "System"} [/rp Password]]
eventtriggers[.exe] /delete [/s Computer [/u Domain\User [/p Password]]] /tid {ID|*}
eventtriggers[.exe] /query [/s Computer [/u Domain\User [/p Password]]] [/fo {TABLE|LIST|CSV}] [/nh] [/v]
Imaginense todo lo q podemos llegar hacer con este comando...pues lo dejo a su imaginacion..
Saludos.!!!