martes, 29 de junio de 2021

Tratar el contenido de un archivo en Bucle con PowerShell

 A veces es muy útil realizar acciones a partir de algún archivo de datos... Por ejemplo, buscar alguna característica de un listado de equipos o usuarios que te pasan en algún excel, o similar. Bueno, vamos a ver cómo leer un archivo en PowerShell para luego utilizarlo en un bucle. La función es simple, pero lo importante es entender el proceso. 

El script es el siguiente:

$archivo = get-content c:\ficheromaquinas.txt

foreach ( $equipo in $archivo ) {

write-host $equipo

Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status Running

 La primera línea, $archivo = get-content c:\ficheromaquinas.txt lo que hace es meter en una variable con el nombre "archivo" todo el contenido que hay en el documento "ficheromaquinas.txt" Powershell permite tratar esa variable, que se pasa a llamar $archivo como un único objeto.

El segundo fragmento:

foreach ( $equipo in $archivo ) {....} 

Lo que hace es decir que para cada nuevo elemento que se encuentra en archivo, al que pasaremos a llamar "equipo" haga lo que metamos dentro de las llaves.

Dentro de las llaves hemos metido un script muy simple, 

Get-Service -Name spooler -ComputerName $equipo  | Set-Service -Status Running

Que lo que hace es que mire el servicio spooler (la cola de impresión, vaya) de cada equipo, que metimos en la variable $equipo, y lo arranque, canalizando el comando con el "|" y le pase la orden  Set-Service -Status Running, para arrancarlo.

Igual que podemos obtener ese servicio, podemos hacer lo mismo con, por ejemplo un apache, Oracle Service, RDP...lo que sea, y sólo de las máquinas que tenemos en el archivo. Pero lo importante es el hecho de meter el contenido del archivo en una variable, para a partir de ahí, con un "foreach", pedirle que haga una acción.

miércoles, 16 de junio de 2021

Libro de PowerShell en español

 PowerShell lleva con nosotros desde Windows XP, prácticamente, y poco a poco se ha ido convirtiendo en una herramienta esencial para el entorno Windows, hasta el punto de ser prácticamente esencial en las nuevas versiones de sus productos, puesto que sin esta herramienta, no podríamos realizar tareas básicas que ya no son accesibles mediante GUI. 

Formándome e informándome sobre PowerShell, dí con un libro de Xavier Genestós sobre esta herramienta, en su web, sysadmit.com

Es un libro "peculiar", podríamos decir. Si has visto otros libros sobre esta materia, habrás observado el desarrollo de los mismo hacia el apartado del scripting, orientándolos sobre todo como si de una formación de un libro de programación se tratara. No se si conoces los libros de "Microsoft xxx Pocket Consultant", que eran una especie de manual de trabajo de lo que tratara el libro, de la editorial de Microsoft. Este libro es la versión condensada de esos libros. Tomas lo básico, lo más interesante, y lo plasma en sus páginas. Lo que vendría a ser un "chuletario" de manejo de Powershell, pero en un libro tamaño cuaderno grande, de 200 páginas, indizado. De tener una pega, es que pasa muy de puntillas por la parte del desarrollo de scripts, donde para eso, sí se puede quedar corto. Pero también es cierto que va más focalizado a que entiendas la gramática de PowerShell, para que te busques la vida por internet adaptando los miles de scripts que hay por la web.

Una foto de ejemplo del contenido del libro, que sirve mejor que el índice para hacerse una idea de a qué me refiero con "datos condensados" y de máxima utilidad. Igualmente te encuentras otros comandos de usu muy resumidos para distintas tareas como conexion via ssh con powershell, comprobación de puertos, psremote en reemplazo de psexec de las pstools, etc...

Puedes consultar AQUI el más información del libro en la web de su autor para tener una idea más clara de su contenido.

El libro puedes adquirirlo a través de este ENLACE.