lunes, 31 de julio de 2017

Instalación remota - PSEXEC

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….

Adjunto el código del ejemplo de Acrobat

Enjoy J

Culex.




miércoles, 12 de julio de 2017

Apuntes - UNED DyASO


Una asignatura muy interesante y con un buen ED, las PED son de nivel medio de dificultad pero son de las que molan..

El examen no es facil pero con un poco de suerte se puede sacar buena nota

Bueno, aquí dejo mis Apuntes, como de costumbre una mezcla bastante heterogénea de documentos, apuntes manuscritos, ampliados de otros alumnos etc etc

Culex.