Estando un poco aburrido de tener
mal parcheado los ordenadores de mi curro, y después de que la asignatura DyASO
me haya abierto los ojos respecto al uso de script, me he puesto a trastear un
poco y al final me he montado unos script para instalar de forma remota,
desatendida y silenciosa unos cuantos programas que se están actualizando un
día sí y otro también.
En concreto los siguientes; Adobe
Reader, Chrome, Firefox, Flash Player y java.
Y ya puestos a la tarea también
actualizaciones de Windows pero este va en otro post.
La utilidad de línea de comandos
que hace posible todo esto es PSEXEC.EXE
PSEXEC es parte de
Sysinternal y para hacer de una explicación larga una corta, podemos resumir diciendo que
nos permite ejecutar procesos en un equipo remoto.
La sintaxis es (resumiendo mucho)
la siguiente: psexec \\computer [arguments]
Y con más detalle: psexec [\\computer[,computer2[,...] | @file\]\]\[-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
Y como el movimiento se demuestra
andando vamos a explicar un poco el tema. Normalmente se usan siempre los
mismos argumentos y solo tenemos que investigar un poco para ver cómo podemos
instalar el programa que nos interesa desde la línea de comandos y sin
interactuar con el usuario.
Por ejemplo, el siguiente comando
instalaría flashPlayer en el pc1.
psexec \\pc1 -c -s -u dominio\username -p
password \\path\flashplayer.exe -install -force
y explicando un poco más,
-c, copia el ejecutable desde la
ruta indicada \\path\flashplayer.exe a la máquina local
-s, ejecuta el proceso con
privilegios system
-u y -p, nos permiten especificar
el usuario y contraseña con la que hacemos log on en la máquina remota.
(obviamente un administrador)
flashplayer.exe -install -force,
argumentos necesarios para la instalación.
Esto no está mal pero si tienes
que parchear 100 equipos pues al final es un poco rollo, así que por qué no lo
mejoramos un poco y lo hacemos en los 100 del tirón J
La cosa es sencilla, un bucle que
va leyendo los nombres de máquina de un fichero (equipos.txt) y punto. Luego
para tener todo controlado usamos unos ficheros de log y voila! … un script muy útil que nos va a
ahorrar bastante tiempo a la hora de tener parcheado los equipos.
Usamos dos fichero de log, uno
para ver que ha pasado de un vistazo (log.txt) y poder actualizar nuestro
dashboard de forma rápida y otro con el detalle por si tenemos que hacer
debugging (detalle_%MYDATE: =%.log).
Aquí hay un ejemplo del script para Acrobat,
Y un ejemplo de ejecución con Java.
Estoy seguro que debe haber muchísimaaaaaaas formas distintas de
hacerlo, mejores y más rápidas pero esta tampoco funciona mal.
Una cosita que es recomendable es abrir la consola que vamos
a usar para lanzar el script con un usuario con permisos admin en las maquinas
objetivo
Lo bueno es que podemos usar PSEXEC para instalar casi de
todo, ejecutar comandos remotos etc etc….
Enjoy J
Culex.