viernes, 12 de febrero de 2021

Primer script en PowerShell

 Buenas tardes queridos lectores, el día de hoy dejare de lado SQL SERVER y PostgreSQL que había venido publicando para subir una serie de post sobre Powershell, serán cosas básicas, pero muy útiles que nos servirán para la automatización de tareas mediante lenguaje de scripting.

¿Qué es powershell?




Consola de PowerShell



Según la definición de Microsoft podemos saber que PowerShell es un marco de administración y automatización de tareas multiplataforma que consta de un shell de línea de comandos y lenguaje de scripting; en pocas palabras, Powershell es la evolución del llamado MS-DOS, cmd o línea de comandos, para entendernos mejor, esa pantalla negra que servía para introducir comandos.

Consola de comandos (cmd)



A diferencia de la línea de comandos, donde se introducía un comando y se esperaba una respuesta, PowerShell trabaja con objetos, la respuesta es totalmente en objetos, además de que se puede programar utilizando los objetos de .NET.

También los comandos son mas intuitivos, ya que cuentan con el prefijo GET o con el prefijo SET según sea el caso.

La primera versión de PowerShell surgió en el año 2006 y su desarrollo lo ha llevado hasta la versión 5.1 lanzada en 2016 con muchísimas mejoras.

PowerShell y PowerShell ISE

Si buscamos PowerShell en el equipo, seguramente aparecerán dos opciones. ¿Pero cual es el que tengo que usar?. Pues bien, ambos son PowerShell, la diferencia es que PowerShell es simplemente la consola de comandos en PowerShell y PowerShell ISE es el IDE para programar scripts en PowerShell, así que si se van a crear script recomiendo utilizar PowerShell ISE, si no se van a crear scripts, la consola es más que suficiente para nuestra labor.

PowerShell ISE

Para pedir ayuda en Powershell haremos uso del comando Get-Help


El comando Get-Help


PowerShell tiene una gran base de datos de ayuda de sus comandos y acceder a dicha ayuda es muy sencillo, lo haremos con el comando Get-Help, para poder tener acceso a la ayuda, hace falta actualizarla y eso le haremos con el comando Get-Help Update que tendremos que ejecutar como Administrador



Una vez descargada la ayuda podemos pedir ayuda a la consola sobre algún comando haciendo uso de Get-Help, por ejemplo:

GET-HELP get-childitem


Existen otras opciones dentro del comando Get-Help, pero no las veremos en este post, ahora crearemos nuestro primer script

Creando nuestro primer Script ("Hola mundo")


Vamos a crear nuestro primer script, y como en todos los lenguajes de programación el primero programa siempre es un "Hola mundo", pues ese será también nuestro primer script.

Para comenzar a crear nuestros script utilizaremos el IDE llamado PowerShell ISE

Cuando entremos al ISE daremos clic en el botón de Nuevo, que se encuentra en la esquina superior izquierda


En la parte de la derecha, encontramos una lista de comandos disponibles y un poco de ayuda con ellos, una vez abierto el documento para el script procedemos a mostrar en pantalla nuestro "Hola Mundo"

Write-Host "Hola Mundo" 


Como hemos dicho antes, PowerShell trabaja con objetos, de manera que el comando Write-Host en realidad es una función, misma que recibe argumentos, en el caso del ejemplo se recibe un argumento con el valor "Hola mundo", que es una cadena de texto.


Vamos a listar la ayuda del comando Write-Host para ver que otras opciones tenemos:


Como vemos aparecen alguna opciones que podemos utilizar, tales como BackgroundColor y ForeGroundColor, que nos permitirán darle color a nuestro texto como lo veremos a continuación:


Como vemos, el texto esta mostrándose con letras amarillas sobre fondo negro, tal como se lo especificamos en los parámetros.

Ejecutar un script


Ya vimos como crear y ejecutar un script en el ISE de PowerShell, ahora viene la pregunta ¿Como lo ejecutamos despues?

Anteriormente cuando usabamos MS-DOS, se creaban archivos de proceso por lotes (los llamados archivos batch .bat), que eran archivos que al ejecutarse corrían de arriba abajo todas las instrucciones  que habíamos introducido, pues es lo mismo con PowerShell, solo que los archivos aquí son archivos .ps1

Los archivos de scripts de PowerShell (cmdlets) tienen la extensión .ps1 

Para guardar un script basta con darle clic en el icono de Guardar, vamos a guardar el script que acabamos de crear de Hola mundo, en alguna ubicación fácil de recordar, en mi caso será en la unidad D:\PS


Ahora una vez creado y guardado el script, ya lo puedo utilizar desde PowerShell


Como vemos, si ejecutamos el comando directamente, la consola no arrojará un error, esto es debido a que la consola espera que la instrucción "hola.ps1" sea una instrucción, pero no lo es, es un script, por lo cual tendremos que decirle mediante /. que es un script de la siguiente manera:

./hola.ps1

La ejecución de este comando nos mostrará un nuevo mensaje de error:



Este error es debido a las restricciones para ejecutar el script del Sistema Operativo, por seguridad, no podemos ejecutar scripts, salvo que le indiquemos puntualmente lo contrario, existen varias opciones de seguridad, pero no las veremos en este momento, solo veremos como habilitar la ejecución de scripts.

Para eso utilizaremos el siguiente comando desde Administrador:

Set-ExecutionPolicy unrestricted


Ahora si podremos ejecutar nuestro script sin problema

.\Hola.ps1




Hasta aquí el post queridos lectores, espero haya sido de su agrado y utilidad, cualquier duda, no dejen de compartirla. Les pido si les gusto el post, den un clic a algún anuncio patrocinado.

Saludos

No hay comentarios.:

Publicar un comentario

Select SQL en Excel

  Buenas noches queridos lectores, el día de hoy veremos como devolver una consulta de SQL SERVER en una hoja de Excel para poder visualizar...