Guía básica de scripting de Windows PowerShell: Tutorial para principiantes

Microsoft PowerShell, comúnmente conocido como Windows PowerShell, ofrece una forma práctica de automatizar diversas tareas, ya sea que estés trabajando en un servidor de Windows o en una estación de trabajo de Windows.

Los administradores del sistema deberían aprender este lenguaje de script como una habilidad para automatizar tareas, especialmente las repetitivas, y desarrollar tareas administrativas avanzadas para aligerar sus cargas de trabajo y ejecutar operaciones utilizando comandos predecibles y probados. Estos comandos se pueden ejecutar en sistemas locales o remotos utilizando la función de remoting de PowerShell, por ejemplo, para realizar actualizaciones en el registro de Windows en varios sistemas.

PowerShell no es exactamente como los lenguajes de programación que estás acostumbrado a usar en un entorno de desarrollo integrado (IDE) como Visual Studio Code, también conocido como VS Code. Las variables de PowerShell, los cmdlets, los módulos y los proveedores son la base y constituyen herramientas poderosas de PowerShell que te ayudarán a realizar el trabajo.

Índice de Contenido
  1. Variables de PowerShell
  2. Cmdlets de PowerShell
  3. Módulos de PowerShell
  4. Proveedores de PowerShell
  5. 1. Archivos PS1
  6. 2. Permisos de ejecución
  7. 3. Ejecutar un script
  8. 4. Pipelining
  9. 5. Variables
  10. 6. El símbolo @
  11. 7. Split
  12. 8. Join
  13. 9. Puntos de interrupción
  14. 10. Paso a paso (Step)

Variables de PowerShell

Una variable es un término que se utiliza para identificar un valor específico y permitir su referencia y reutilización fácilmente.

Cmdlets de PowerShell

Un cmdlet es un comando integrado de PowerShell (uno de los más comunes es el cmdlet "Get" que se utiliza para recuperar configuraciones existentes o buscar ayuda mediante el cmdlet "get-help").

Módulos de PowerShell

Un módulo es un paquete que contiene múltiples objetos, como cmdlets, variables y más.

Enseñanza y Aprendizaje con Microsoft: Herramientas y Lecciones para Profesores de todos los Niveles

Proveedores de PowerShell

Un proveedor es un programa .NET que proporciona acceso a información, como el registro, alias, funciones, variables, sistemas de archivos y el entorno general del sistema operativo.

Windows PowerShell, que se ejecuta exclusivamente en el sistema operativo Windows, se complementa con PowerShell Core, que es una versión avanzada capaz de ejecutarse en los sistemas operativos Windows, Mac y Linux de la misma manera que lo hace Visual Studio Code.

A continuación, se presenta un tutorial de scripting de Windows PowerShell destinado a principiantes, con el objetivo de ilustrar los conceptos básicos del scripting para ayudar a los principiantes a trabajar con scripts existentes de Windows PowerShell o cmdlets de PowerShell, o a crear nuevos.

Puedes iniciar Windows PowerShell desde el menú Inicio, en la carpeta Windows PowerShell, para familiarizarte con este tutorial de PowerShell. Los dos programas con los que puedes trabajar son Windows PowerShell y Windows PowerShell ISE (Entorno de scripting integrado). El primer ejecutable es la interfaz de línea de comandos, y el segundo es una interfaz basada en GUI que se muestra de la siguiente manera:

Guía básica de scripting de Windows PowerShell: Tutorial para principiantes - Software | Imagen 1 Newsmatic

Personalmente, prefiero utilizar Windows PowerShell ISE para el scripting de PowerShell, ya que proporciona una ventana de consola de PowerShell que permite la funcionalidad del símbolo del sistema, junto con una barra de herramientas práctica y referencias de comandos a la derecha que se pueden hacer clic para insertar comandos de PowerShell y obtener más información sobre ellos.

Guía de Examen de Certificación Lotus Notes: Desarrollo de Aplicaciones y Administración del Sistema

Ten en cuenta que los ejecutables predeterminados son de 64 bits, pero puedes encontrar una versión de 32 bits de PowerShell en esta carpeta con fines de compatibilidad con versiones anteriores.

1. Archivos PS1

La sintaxis de PowerShell puede ser un poco intimidante para los recién llegados, así que comencemos con lo básico de los scripts, que también se llaman archivos PS1. Un script de Windows PowerShell no es más que un archivo de texto simple que se puede ejecutar tanto en Windows PowerShell como en Windows PowerShell ISE. El lenguaje de scripting de PowerShell funciona ejecutando una serie de comandos de PowerShell (o un solo comando), con cada comando apareciendo en una línea separada. Para que el archivo de texto se trate como un script de PowerShell, su nombre de archivo debe tener la extensión .PS1 para indicar una extensión de PowerShell.

El ejemplo más simple y básico de PowerShell es un archivo llamado Datecheck.ps1, que contiene la siguiente entrada:

Get-Date

A continuación, se muestra un ejemplo de la salida:

Martes, 10 de mayo de 2022 3:20:04 pm

Cómo gestionar eficazmente grandes volúmenes de correo electrónico

2. Permisos de ejecución

Para evitar la ejecución de scripts maliciosos, PowerShell utiliza una política de ejecución. De forma predeterminada, la política de ejecución está configurada en Restringida, lo que significa que los scripts de PowerShell no se ejecutarán. Puedes determinar la política de ejecución actual utilizando el siguiente cmdlet:

Get-ExecutionPolicy

Las políticas de ejecución que puedes utilizar son:

  • Restringida: Los scripts no se ejecutarán.
  • RemoteSigned: Los scripts creados localmente se ejecutarán, pero los descargados de Internet no lo harán (a menos que estén firmados digitalmente por un editor de confianza).
  • AllSigned: Los scripts se ejecutarán solo si han sido firmados por un editor de confianza.
  • Sin restricciones: Los scripts se ejecutarán independientemente de su origen y si están firmados.

Puedes establecer la política de ejecución de PowerShell utilizando el siguiente cmdlet:

Set-ExecutionPolicy <nombre de política>

Nota: cuando escribas en el símbolo del sistema de PowerShell, puedes escribir parte del comando y presionar Tab para completar automáticamente el resto (o mostrar múltiples opciones que coincidan con lo que has ingresado). Por ejemplo, al escribir Set-Ex y presionar tabulador, completará automáticamente todo el comando Set-ExecutionPolicy y te ahorrará tiempo.

Integración de StarOffice: calendarios

3. Ejecutar un script

Durante muchos años, si querías ejecutar un archivo ejecutable desde la línea de comandos, la práctica habitual era navegar hasta la ruta del archivo y luego escribir el nombre del archivo ejecutable. Sin embargo, este método antiguo no funciona para los scripts de PowerShell.

Si quieres ejecutar un script de PowerShell, normalmente tendrás que escribir la ruta completa junto con el nombre del archivo. Por ejemplo, para ejecutar un script llamado SCRIPT.PS1, podrías escribir:

C:\Scripts\Script.ps1

La gran excepción es que puedes ejecutar un script simplemente escribiendo su nombre si la carpeta que contiene el script está en la ruta del sistema. También existe un acceso directo que puedes utilizar si ya estás en la carpeta que contiene el script. En lugar de escribir la ruta completa del script en esa situación, puedes ingresar ".\" y el nombre del script. Por ejemplo, podrías escribir:

.\Script.ps1

4. Pipelining

El término "pipelining" se refiere a alimentar la salida de un comando en otro comando. Esto permite que el segundo comando actúe sobre la entrada que ha recibido. Para canalizar dos comandos (o cmdlets), simplemente sepáralos con el símbolo de tubería (|).

Cómo gestionar eficazmente el correo electrónico en tu empresa

Para ayudarte a entender cómo funciona el "pipelining", imagina que quieres crear una lista de los procesos que se están ejecutando en un servidor y ordenar esa lista por el número de identificación del proceso. Puedes obtener una lista de procesos utilizando el cmdlet "Get-Process", pero la lista no estará ordenada. Sin embargo, si ingresas la salida del cmdlet en el comando "Sort-Object ID", la lista se ordenará. La cadena de comandos utilizada se vería así:

Get-Process | Sort-Object ID

5. Variables

Aunque puedes utilizar "pipelining" para pasar la salida de un comando a otro comando, a veces el "pipelining" por sí solo no es suficiente. Cuando ingresas la salida de un comando en otro comando utilizando "pipelining", esa salida se utiliza de inmediato. Ocasionalmente, es posible que necesites almacenar la salida durante un tiempo para poder utilizarla (o reutilizarla) más tarde. Aquí es donde entra en juego una variable de PowerShell.

Es fácil pensar en una variable como un contenedor para almacenar un valor, pero en PowerShell, una variable puede almacenar toda la salida de un comando. Por ejemplo, supongamos que quieres almacenar la lista de procesos que se están ejecutando en un servidor como una variable. Para hacerlo, puedes utilizar esta línea de código:

$a = Get-Process

Aquí, la variable se llama $a. Si quieres utilizar la variable, simplemente llámala por su nombre. Por ejemplo, escribir $a imprimirá el contenido de la variable en la pantalla.

WordPerfect Office 2000: La solución perfecta para compartir documentos en diferentes plataformas

También puedes asignar una variable a la salida final de varios comandos que se han canalizado juntos. Simplemente rodea los comandos con paréntesis. Por ejemplo, para ordenar los procesos en ejecución por ID del proceso y luego asignar la salida a una variable, puedes utilizar este comando:

$a = (Get-Process | Sort-Object ID)

Al ejecutar "echo $a", se ejecutará el comando que asignaste a la variable.

6. El símbolo @

Utilizando el símbolo @, puedes convertir el contenido de una lista en una matriz. Por ejemplo, toma la siguiente línea de código, que crea una variable llamada $Procs que contiene varias líneas de texto (una matriz):

$procs = @{name="explorer","svchost"}

También puedes utilizar el símbolo @ al utilizar la variable, para asegurarte de que se trate como una matriz en lugar de un solo valor. Por ejemplo, la siguiente línea de código ejecutará el cmdlet Get-Process contra la variable que definí hace un momento. Al hacerlo, Windows mostrará todos los procesos utilizados por Windows Explorer y Svchost. Observa cómo se utiliza el símbolo @ frente al nombre de la variable en lugar del signo de dólar que solemos ver:

Cómo contar elementos en una lista de Excel utilizando la función Subtotales

Get-Process @procs

7. Split

El operador "split" divide una cadena de texto en función de un carácter que designes. Por ejemplo, supongamos que quieres dividir una frase en una matriz que consista en cada palabra individual de la frase. Puedes hacerlo utilizando un comando como este:

"Esto es una prueba" -split " "

El resultado se verá así:

Esto

es

Cómo solucionar problemas de acceso a carpetas de Outlook en un entorno colaborativo

una

prueba

8. Join

Así como "split" puede dividir una cadena de texto en varias partes, el operador "join" puede combinar múltiples bloques de texto en uno solo. Por ejemplo, esta línea creará una cadena de texto que consiste en mi nombre y apellido:

"Scott","Matteson" -join " "

El espacio entre las comillas al final del comando le indica a Windows que inserte un espacio entre las dos cadenas de texto.

9. Puntos de interrupción

Ejecutar un script de PowerShell recién creado puede tener consecuencias no deseadas si el script contiene errores. Una manera de protegerte es insertando puntos de interrupción en ubicaciones estratégicas dentro de tu script. De esta manera, puedes asegurarte de que el script funcione como se pretende antes de procesar todo el contenido.

Cómo forzar que tus archivos favoritos aparezcan en la parte superior del árbol de directorios

La forma más fácil de insertar un punto de interrupción es mediante el número de línea. Por ejemplo, para insertar un punto de interrupción en la décima línea de un script, podrías utilizar un comando como este:

Set-PSBreakpoint -Script C:\Scripts\Script.ps1 -Line 10

También puedes vincular un punto de interrupción a una variable. Entonces, si deseas que tu script se interrumpa cada vez que el contenido de una variable $ cambie, puedes utilizar un comando como este:

Set-PSBreakpoint -Script C:\scripts\Script.ps1 -variables a

Observa que no incluí el signo de dólar después del nombre de la variable.

Existen una serie de verbos que puedes utilizar con PSBreakpoint, incluyendo Get, Enable, Disable y Remove.

Cómo extraer una subcadena de texto en Excel usando las funciones Izquierda

10. Paso a paso (Step)

Cuando estás depurando un script, a veces es necesario ejecutar el script línea por línea. Para hacerlo, puedes utilizar el proceso de Stepping en PowerShell ISE para hacer que el script se detenga después de cada línea, independientemente de si existe o no un punto de interrupción. Utiliza las funciones indicadas en la tabla a continuación.

Guía básica de scripting de Windows PowerShell: Tutorial para principiantes - Software | Imagen 2 Newsmatic

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Guía básica de scripting de Windows PowerShell: Tutorial para principiantes , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.