¿Cómo se escribe un script PowerShell?

Cómo escribir un script PowerShell

PowerShell es un potente lenguaje de scripting creado por Microsoft que puede utilizarse para automatizar tareas o administrar servidores o estaciones de trabajo Windows. Desde hace algunos años, PowerShell también está disponible para Linux y macOS. Aquí hay alguna información útil para saber cómo escribir un script de PowerShell.

Además de este artículo, para aprender PowerShellLe recomiendo encarecidamente que lea este curso gratuito ofrecido por IT-Connect :

1. Aspectos básicos de la escritura de un script PowerShell

PowerShell es un lenguaje de objetos basado en un conjunto de comandos e instrucciones. El sitio se denominan "cmdletspronunciado " commandlettes" . Hay varios miles de ellos, entre otras cosas porque PowerShell puede gestionar Windows, pero también los distintos roles de Windows Server, los servicios de Azure y Microsoft 365, etc. Se pueden añadir nuevos comandos mediante la funcióninstalación de módulosSe enumeran en la Galería PowerShell.

Cada cmdlet sigue una estricta convención de nomenclatura: el nombre se compone de un verbo aprobado seguido de un sustantivo. Los dos términos van separados por un guión. Por ejemplo, el cmdlet Obtener proceso muestra todos los procesos que se están ejecutando actualmente en su ordenador. Casi podríamos traducir este nombre de cmdlet : Obtener = Obteniry Proceso = Procesoo " Obtener los procesos" .

Cada cmdlet contiene un conjunto de parámetros, es decir, opciones para influir en el comportamiento del comando que desea ejecutar. Por ejemplo, el comando Nuevo artículo se utiliza para crear nuevos elementos, como archivos y carpetas. Admite una serie de parámetros, como -Ruta para especificar la ruta de la carpeta o archivo que se va a crear, y -ItemType para especificar el tipo de elemento que se va a crear.

El siguiente comando, que puede ejecutar en una consola PowerShell, se utiliza para crear la carpeta C:DemoMiNuevaCarpeta.

New-Item -Path 'C:\Demo\MiNuevaCarpeta' -ItemType Directorio

Otro concepto a tener en cuenta es el tubería. La canalización es esencial para pasar los resultados de un cmdlet a otro. El cmdlet Get-LocalUser se utiliza para obtener una lista de todos los usuarios presentes en la máquina local. ¿Qué pasa si sólo queremos recuperar los usuarios activados? Vamos a aplicar un filtro utilizando la función Donde-Objeto que se sitúa justo después de la tubería. En este caso, el filtro se aplica a la sección Activado.

Aquí está el comando final:

Get-LocalUser | Where-Object { $_.Enabled -eq $true }

En PowerShell, los comandos devuelven objetos, y cada objeto tiene un conjunto de propiedadeses decir, características. Cada objeto se asocia también a métodosEs decir, acciones que se le pueden aplicar. Si tomamos el ejemplo de un ordenador, una propiedad podría ser el modelo de CPU, el modelo de RAM, la fuente de alimentación, etc. Y los métodos podrían ser diferentes acciones: arrancar el ordenador, realizar un reset, etc.

PowerShell es un lenguaje muy rico que soporta numerosas instrucciones para integrar bucles (For, ForEach, Do-While, etc.), estructuras condicionales (If, If Else, Switch, etc.), y mucho más... El Script PowerShell Se utiliza para comprobar si hay más de 10 GB disponibles en el volumen 'C' de la máquina Windows.

1TP4DiskSpace = Get-PSDrive C
if (1TP4DiskSpace.Free -lt 10GB) {
    Write-Warning "Espacio en disco insuficiente en la unidad C:"
    Write-Host "Espacio libre: $($espaceDisk.Free)"
}

En el ejemplo anterior, utilizamos una variable llamada " 1TP4Espacio en disco " Se utiliza para almacenar el resultado de un comando. En PowerShell, como te habrás dado cuenta, basta con especificar un " $ " seguido de un nombre para declarar una variable. Esta variable puede utilizarse para almacenar un objeto, una matriz, un número, una cadena de caracteres, etc., según sea necesario. Al llamar a la variable por su nombre, puede leer su contenido y acceder a la información que almacena.

Para obtener ayuda con PowerShell, puede utilizar los siguientes cmdlets : Obtenga ayuda y Obtener-miembro.

2. ¿Qué software debo utilizar para codificar en PowerShell?

Para codificar en PowerShell, evite utilizar aplicaciones básicas como Notepad++. Recomiendo utilizar Windows PowerShell ISEuna herramienta integrada en Windows y Windows Server, o bien Código de Visual Studio con PowerShell. Estos son dos editores de código que soportan completamente PowerShell, con ventaja para VSCode porque soporta las últimas versiones de PowerShell.

Para la administración diaria, es decir, para ejecutar comandos o scripts listos para usar, puede utilizar la función Consola PowerShell o la aplicación Terminal Windows.

Un script PowerShell se representa mediante un archivo con la extensión ".ps1". Esta extensión no tiene ninguna relación con la versión de PowerShell utilizada.

3. Algunas buenas prácticas de codificación en PowerShell

Estas son algunas de las mejores prácticas para codificar en PowerShell :

1. Utilice nombres de variables descriptivos: elige nombres que describan claramente el uso de la variable para que el código sea más fácil de entender. Evita nombres como "$a".

2. Comente su código : añade comentarios para explicar la lógica de tu script PowerShell. Esto te ayudará a ti y a los demás a entender el código cuando vuelvas a él más tarde...

3. Gestionar los errores : utilizar la instrucción "try-catch" para manejar las excepciones y proporcionar mensajes de error claros para facilitar la depuración. Esto también le permitirá actuar ante un error: " si se produce tal o cual error, se adopta tal o cual medida" .

4. No utilice alias en : Los alias pueden ser útiles en la consola, pero pueden hacer que el código sea menos legible. Utilice los nombres completos de los cmdlets en sus scripts. La lista de alias puede consultarse mediante "Get-Alias".

5. Introduzca su código : para que el código sea más legible, introduzca una sangría con la tecla "Tab".

6. Pruebe su código : Pruebe sus scripts en diferentes entornos antes de ejecutarlos en producción. El uso de "-WhatIf" puede ser útil para este propósito.

Además, puede utilizar el módulo PSScriptAnalyzer para analizar su secuencia de comandos PowerShell y comprobar si cumple las prácticas recomendadas. Este módulo está incluido en Visual Studio Code y analizará tu script PowerShell en tiempo real.

4. Conclusión

Al leer este artículo de la caja de tutoriales de TI, dispondrás de información útil para empezar a aprender a escribir un script de PowerShell. Hay muchos recursos disponibles en Internet, y la documentación de Microsoft es inestimable incluso después de varios años utilizando PowerShell.

Haga sus preguntas en los comentarios y comparta sus consejos si lo desea.

También te podría gustar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *