Cómo ejecutar scripts en PowerShell: Guía completa paso a paso

Última actualización:
Autor:
  • PowerShell requiere configurar las políticas de ejecución para permitir scripts.
  • Los scripts se ejecutan con rutas específicas y parámetros opcionales.
  • Windows PowerShell ISE y VS Code son ideales para la edición de scripts.
  • El Programador de Tareas permite la automatización de scripts en Windows.

Ejecutar scripts en PowerShell

PowerShell es una herramienta poderosa que permite automatizar tareas en entornos Windows mediante scripts. Aunque es una utilidad imprescindible para administradores de sistemas, su ejecución de scripts está restringida por defecto por razones de seguridad. Para poder usar correctamente los scripts de PowerShell, es necesario conocer las políticas de ejecución, los permisos requeridos y las diferentes formas de ejecutarlos.

En este artículo, abordaremos en detalle todo lo que necesitas saber sobre la ejecución de scripts en PowerShell, desde cómo escribirlos hasta la mejor forma de ejecutarlos en el sistema, incluyendo soluciones para errores comunes y opciones avanzadas como la ejecución en otros equipos o mediante el Programador de Tareas.

¿Qué es un script en PowerShell?

Un script en PowerShell es simplemente un archivo de texto que contiene una o varias líneas de comandos que se ejecutan de forma secuencial. Estos archivos tienen la extensión .ps1 y pueden incluir comandos simples o bloques de código complejos con estructuras de control, funciones y parámetros.

Usar scripts permite ejecutar tareas repetitivas de manera automática, compartir configuraciones y administrar sistemas de forma más eficiente. Para crearlos, se puede utilizar cualquier editor de texto, aunque PowerShell ISE y Visual Studio Code son opciones más recomendadas por sus funcionalidades avanzadas.

Configuración de la política de ejecución

PowerShell usa una política de ejecución para determinar qué scripts pueden ejecutarse y bajo qué condiciones. Las opciones disponibles son:

  • Restricted: No se permite ejecutar ningún script. Solo se pueden ejecutar comandos en la sesión interactiva.
  • AllSigned: Solo pueden ejecutarse scripts firmados digitalmente con un certificado de confianza.
  • RemoteSigned: Los scripts descargados de Internet deben estar firmados, pero los scripts locales pueden ejecutarse sin firma.
  • Unrestricted: Se pueden ejecutar todos los scripts sin restricciones.
  Guía completa para crear una jaula chroot en Linux: pasos, usos y consejos

Para comprobar la política de ejecución actual, debes ejecutar el siguiente comando en PowerShell:

Get-ExecutionPolicy

Si deseas cambiarla, usa el siguiente comando con permisos de administrador:

Set-ExecutionPolicy RemoteSigned

Cómo ejecutar un script en PowerShell

Para ejecutar un script en PowerShell, es necesario especificar la ruta completa del archivo. Si el script está en la carpeta actual, usa:

.
ombre-del-script.ps1

Si el script está en otra ubicación, especifícala completa:

C:\Scripts\nombre-del-script.ps1

También puedes ejecutar scripts con parámetros, como en este ejemplo:

.
ombre-del-script.ps1 -Parametro valor

Escribir y editar scripts en PowerShell

Una forma eficiente de escribir y editar scripts en PowerShell es usar PowerShell ISE o Visual Studio Code. Estos entornos ofrecen herramientas como resaltado de sintaxis, autocompletado y ejecución integrada.

Para abrir PowerShell ISE:

  • Presiona Windows + R y escribe powershell_ise.
  • Selecciona “Ejecutar como administrador” si es necesario.

Desde PowerShell ISE, puedes escribir un script en una nueva pestaña y guardarlo con la extensión .ps1. Posteriormente, puedes ejecutarlo directamente desde este entorno.

Cómo ejecutar scripts en otros equipos

PowerShell permite ejecutar scripts en otros equipos de forma remota mediante el cmdlet Invoke-Command. Para ello, el equipo remoto debe permitir sesiones remotas.

Ejemplo de ejecución remota en otros equipos:

Invoke-Command -ComputerName Servidor01 -FilePath C:\Scripts\nombre-del-script.ps1

Es necesario que PowerShell Remoting esté habilitado en el equipo de destino. Para activarlo, debes ejecutar en el equipo remoto:

Enable-PSRemoting -Force

Automatizar la ejecución con el Programador de Tareas

Ejecutar scripts de PowerShell de forma automática es una tarea común en entornos empresariales. Para ello, se puede utilizar el Programador de Tareas de Windows.

Pasos para crear una tarea programada que ejecute un script de PowerShell:

  1. Abre el Programador de Tareas (taskschd.msc).
  2. Selecciona “Crear una tarea básica”.
  3. Configura el activador para definir cuándo se ejecutará.
  4. En acciones, selecciona “Iniciar un programa” e introduce powershell.exe.
  5. En parámetros, agrega: -File "C:\ruta-del-script\script.ps1".
  6. Guarda la tarea y pruébala manualmente.

Automatizar scripts en PowerShell

Solución a errores comunes

Al ejecutar scripts en PowerShell, pueden surgir errores debido a restricciones de políticas de ejecución o permisos insuficientes. Algunas soluciones comunes incluyen:

  • Ejecutar PowerShell como administrador: Haz clic derecho en PowerShell y selecciona “Ejecutar como administrador”.
  • Verificar la política de ejecución: Usa el comando Get-ExecutionPolicy y cambia la configuración si es necesario.
  • Usar rutas absolutas: Asegúrate de especificar la ruta completa del script.
  • Permitir ejecución remota: Si el script se ejecuta en otro equipo, habilita PowerShell Remoting.
  Cómo encantar cosas en Minecraft - Puedes encantar cosas en Minecraft en los niveles 1000, X e infinito.

Dominar la ejecución de scripts en PowerShell permite automatizar tareas, mejorar la gestión de sistemas y simplificar procesos administrativos. Ajustar correctamente las políticas de ejecución, usar herramientas adecuadas para escribir scripts y configurarlos en el Programador de Tareas ayuda a incrementar la eficiencia y seguridad en entornos Windows.

Cómo Administrar Archivos Con Powershell
Artículo relacionado:
Cómo Administrar Archivos Con Powershell

Deja un comentario