PowerShell es una herramienta de línea de comandos desarrollada por Microsoft para automatizar tareas administrativas comunes. Un script es una colección de comandos de PowerShell, almacenados en un archivo de texto con extensión *.ps1. Al ejecutar un script de PowerShell, el intérprete lee el archivo y ejecuta los comandos de forma secuencial.
Puedes crear un script de PowerShell utilizando cualquier editor de texto (incluso Notepad). Pero preferiblemente, se recomienda utilizar un editor de scripts de PowerShell. El editor predeterminado incluido en Windows es el Entorno de Scripting Integrado de PowerShell (PowerShell ISE). Incluye funciones útiles como el resaltado de colores, completado de código, verificación de sintaxis, depuración, autosave, protección contra bloqueos, etc.
Microsoft tiene un editor de código gratuito multiplataforma llamado Visual Studio Code (VS Code), el cual está disponible para Windows, Linux y macOS. Admite una variedad de lenguajes de programación a través de extensiones que puedes instalar, incluyendo PowerShell.
Una ventaja de Visual Studio Code es que admite las versiones más recientes de PowerShell, mientras que PowerShell ISE solo admite hasta la versión 5.1 de PowerShell.
Cómo ejecutar un script de PowerShell (guía rápida)
Aquí tienes un resumen rápido de cómo ejecutar un script de PowerShell. El siguiente método funciona para scripts de PowerShell que no tienen parámetros requeridos y no devuelven salida en el símbolo del sistema.
- Haz clic derecho en el script de PowerShell en el Explorador de archivos.
- Selecciona Ejecutar con PowerShell en el menú contextual.
- El script se ejecutará con una política de ejecución de Bypass. La política de ejecución para la computadora o el usuario no se cambia.
¡Para obtener más detalles sobre cómo escribir y ejecutar scripts de PowerShell, sigue leyendo!
Cómo crear scripts de PowerShell
Hay un par de maneras en las que puedes crear scripts de PowerShell:
- Con el editor de código multiplataforma Visual Studio Code
- Con PowerShell ISE
- O cualquier otro editor de texto, es decir, NotePad
Creando scripts de PowerShell con Visual Studio Code
Visual Studio Code no está disponible por defecto en Windows, por lo que debe descargarse desde el sitio web dedicado de Visual Studio. En nuestro caso, necesitamos descargar la distribución para Windows, la cual está disponible para sistemas de 64 bits, 32 bits y ARM.
A continuación se muestran los diferentes pasos que debes seguir después de instalar la aplicación. En primer lugar, debes abrir Visual Studio Code desde el menú Inicio.

Instalar la extensión de PowerShell
Abre el menú de extensiones haciendo clic en el icono de extensión que se muestra en la figura siguiente, o usa el atajo de teclado Ctrl + Shift + X.

Escribe powershell en el cuadro de búsqueda, selecciona la opción más descargada como se muestra a continuación, asegurándote de descargar la extensión proporcionada por Microsoft. Luego haz clic en Instalar.

Cuando se complete la instalación, no verás ninguna confirmación. Sin embargo, verás que el botón Instalar ha sido reemplazado por las opciones Desactivar y Desinstalar.

Cómo crear un script de PowerShell con Visual Studio Code
Para crear un nuevo script de PowerShell, ve a Archivo > Nuevo archivo, o usa el atajo de teclado Ctrl + N.

Para especificar que el nuevo archivo es un script de PowerShell, haz clic en Texto sin formato en la parte inferior izquierda, o en Seleccionar un Idioma en el panel de script. Cualquiera de las opciones te llevará a la caja Seleccionar un Modo de Idioma. Escribe powershell y luego selecciona PowerShell.

Esto activará la Extensión de PowerShell, y notarás un cambio en el comportamiento y la funcionalidad. Primero, verás que el ícono junto al Nombre de Archivo cambiará a PowerShell. Además, notarás que se iniciará la Consola de PowerShell, donde podrás ejecutar comandos y scripts de PowerShell.

El mismo resultado se puede lograr al guardar el archivo con la extensión *.ps1.
Ingresa los siguientes comandos en el panel de script y apreciarás beneficios como el resaltado de colores, autocompletado de comandos y sugerencias de sintaxis en acción:
Write-Host "This is a Visual Studio Code script" Write-Host "Writing PowerShell Scripts is fun!"

Nota: La tercera línea es solo para fines de demostración, para mostrar la opción de autocompletado de comandos.
Para guardar el archivo, puedes usar el menú Archivo: Archivo > Guardar. También puedes utilizar el atajo de teclado Ctrl + S.
Luego, elige una ubicación fácilmente accesible, proporciona el nombre de archivo, asegúrate de especificar *.ps1 como extensión de archivo, y haz clic en Guardar. En este ejemplo, estoy guardando el archivo en C:\TEMP\MiScriptVSCode.ps1.

La ejecución de scripts en VS Code se cubrirá más adelante en el artículo.
Creando scripts con el ISE de Windows PowerShell
Para iniciar el PowerShell ISE, haga clic en el botón Inicio (o en el botón de búsqueda) y comience a escribir PowerShell ISE. Verá la aplicación en los resultados de búsqueda con diferentes opciones de apertura. Siempre se recomienda utilizar Ejecutar como administrador para asegurarse de que todas las órdenes se ejecuten correctamente y no se bloquearán.

Entonces, creemos un script en el PowerShell ISE. Escriba las siguientes líneas, y de nuevo, puede notar características prácticas como el colorido, la autocompleción de comandos, las sugerencias de sintaxis, etc.:
Write-Host "This is a PowerShell ISE script" Write-Host "Writing PowerShell Scripts is fun!"

Nota: La tercera línea es solo para fines demostrativos, para mostrar la opción de finalización de comandos.
Ahora guardemos la lista de comandos como un script de PowerShell. Para ello, debe hacer clic en el icono de disquete en la barra de herramientas, luego haga clic en Archivo > Guardar en el menú Archivo. También puede utilizar la combinación de teclas Ctrl + S.
En el Guardar como diálogo, elija una carpeta, proporcione un nombre de archivo, especifique la extensión *.ps1 y haga clic en Guardar. En este ejemplo, estoy proporcionando el siguiente nombre: C:\TEMP\MyPowerShellISEScript.ps1.

Creación de scripts con NotePad
No se recomienda utilizar un editor de texto básico para escribir scripts de PowerShell, pero es una posibilidad. Tomemos un ejemplo con NotePad
- Abra NotePad y escriba los siguientes comandos:
Write-Host "This is a Notepad script" Write-Host "Writing PowerShell Scripts is fun!

- Para guardar el script, seleccione Archivo > Guardar.
- En el Guardar como diálogo, elija una carpeta y proporcione un nombre de archivo con la extensión *.ps1. En este ejemplo, estoy usando: C:\TEMP\MyNotepadScript.ps1.
Cómo ejecutar scripts de PowerShell
A PowerShell script (*.ps1 file) can be run in the PowerShell console, which recognizes the *.ps1 file type and runs the commands sequentially. You may open the script as a file in code editors like the PowerShell ISE and Visual Studio Code, and run the whole script in the console pane or run only a part of it.
Cómo habilitar scripts de PowerShell cambiando la directiva de ejecución
Las directivas de ejecución de PowerShell son una característica de seguridad que controla las condiciones bajo las cuales PowerShell carga archivos de configuración y ejecuta scripts. Es importante señalar que esto no es un sistema de seguridad ya que las directivas de ejecución pueden ser fácilmente evitadas. Sin embargo, ayudan a proteger a los usuarios de ejecutar scripts de manera involuntaria.
La directiva de ejecución predeterminada para Windows 11 es Restricted. En sistemas operativos no Windows, la directiva de ejecución predeterminada es Unrestricted, y no se puede cambiar.
Para ver la directiva de ejecución actual, use el comando de PowerShell Get-ExecutionPolicy.
Puedes cambiar la directiva de ejecución en Windows utilizando el cmdlet Set-ExecutionPolicy:
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
Las diferentes directivas de ejecución se discutirán en el siguiente tema.
Cambiar la directiva de ejecución de PowerShell
En Windows, puedes establecer la directiva de ejecución para la máquina local, el usuario actual o el proceso de PowerShell.
Para listar todos los ámbitos disponibles, utilice Get-ExecutionPolicy -List.
Get-ExecutionPolicy -List
El orden es importante, por lo que el elemento configurado en el nivel más alto tiene prioridad. Por ejemplo, si ha establecido una directiva de ejecución mediante una directiva de grupo, ésta tendrá prioridad sobre las demás.

Policy | Description |
Restricted | The default execution policy for Windows client OSes. It does not allow ANY scripts (*.ps1 files) to be executed. Still, you may run individual commands. |
RemoteSigned | The default execution policy for Windows Server. It Allows running scripts that are created locally. Scripts downloaded from untrusted locations, like the Internet, e-mail, messengers, etc. must be digitally signed by a trusted publisher. You may use the command Unblock-File to allow a script to run on the system. |
Unrestricted | The default execution policy for non-Windows computers, and it cannot be changed. It allows unsigned scripts to run, but it shows a warning message and asks for confirmation if scripts are coming from an untrusted location. |
AllSigned | It requires all scripts running on the machine to be digitally signed by a trusted publisher, no matter if they are created locally on the machine or downloaded from the Internet. |
Bypass | It allows all scripts to run, like Unrestricted, but no confirmation is required. |
Undefined | There is no execution policy set on the specified scope. If all scopes are set as undefined, then the default execution policies are applied. |
Para permitir que PowerShell ejecute scripts, debe utilizar el comando Set-ExecutionPolicy -ExecutionPolicy <PolicyName>.
Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
Por defecto, este comando aplica su política elegida al ámbito Máquina local. Si desea especificar un ámbito diferente, debe utilizar el parámetro -Scope y proporcionar el nombre del ámbito.
Por ejemplo, el siguiente comando establece la directiva de ejecución en No restringido para el usuario actual:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
Ejecutar un script con PowerShell
Para abrir la consola de PowerShell, haga clic en el botón Inicio (o en el botón de búsqueda), escriba powershell y haga clic en Ejecutar como administrador.

Para ejecutar un script en la consola de PowerShell, puede:
- Utilizar la ruta completa al script, como: C:\TEMP\MyNotepadScript.ps1
- O utilizar solo el nombre del script, desde la carpeta donde se encuentra el archivo: .\MyNotepadScript.ps1
Ejecutar un script de PowerShell en Visual Studio Code
Para ejecutar un script en Visual Studio Code, primero debe iniciar la aplicación y abrir el archivo del script creado anteriormente (C:\TEMP\MyVSCodeScript.ps1).
- Seleccione Archivo > Abrir Archivo o use el atajo de teclado Ctrl + O.

- Con el script cargado en VS Code, puede ejecutarlo haciendo clic en el botón Ejecutar en la esquina superior derecha, o presionando F5 en su teclado.
El script se ejecutará en la pestaña de la consola, donde verá la salida del script.

Otra opción sería ejecutar solo una parte del script (Ejecutar Selección). Esto suele ser útil cuando está creando su script y desea confirmar que partes de él se comportan como se esperaba.
- Para ejecutar una selección del script, resalte la parte que desea ejecutar.
- Haga clic en Ejecutar Selección en la esquina superior derecha de la consola, o presione F8 en su teclado.
Esta vez, VS Code ejecuta solo las líneas de código seleccionadas en la pestaña de la consola.

Ejecutar un script en PowerShell ISE
Ejecutar scripts en PowerShell ISE es bastante similar.
- Inicie PowerShell ISE.
- Abra el script de la demostración anterior (en este caso – C:\TEMP\MyPowerShellISEScript.ps1) usando Archivo > Abrir, o el Abrir icono desde la barra de herramientas, o el atajo de teclado Ctrl + O.
- Seleccione el archivo de script y haga clic en Abrir.
Para ejecutar todo el script, use el botón Ejecutar en la barra de herramientas o presione F5 en su teclado. Esto ejecutará el archivo de script en la pestaña de la consola, devolviendo el resultado.

Si necesita ejecutar solo una parte del script, resalte la sección y seleccione Ejecutar selección desde la barra de herramientas, o presione F8 en su teclado. De nuevo, el PowerShell ISE solo ejecutará las líneas de código seleccionadas.

Ejecutar un script de PowerShell desde el símbolo del sistema
Si los archivos *.ps1 son interpretados por PowerShell, el símbolo del sistema (CMD) no puede trabajar con scripts de PowerShell directamente. Si desea ejecutar un script de PowerShell en CMD, deberá ejecutarlo llamando al proceso de PowerShell con el parámetro -File, como se muestra a continuación:
PowerShell -File C:\TEMP\MyNotepadScript.ps1.
Conclusión
Los scripts de PowerShell son una excelente manera de automatizar tareas repetitivas. Siga la regla general: “Si necesita hacer algo más de una vez, scripteo”, ¡y no puede ir mal!
Artículo relacionado:
Source:
https://petri.com/how-to-write-and-run-a-powershell-script-file-on-windows-11/