- 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.
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.
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:
- Abre el Programador de Tareas (taskschd.msc).
- Selecciona “Crear una tarea básica”.
- Configura el activador para definir cuándo se ejecutará.
- En acciones, selecciona “Iniciar un programa” e introduce powershell.exe.
- En parámetros, agrega:
-File "C:\ruta-del-script\script.ps1"
. - Guarda la tarea y pruébala manualmente.
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.
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.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.