PowerShell es una poderosa herramienta de automatización y administración de sistemas desarrollada por Microsoft. Una de sus capacidades más destacadas es la posibilidad de ejecutar scripts para realizar tareas repetitivas o complejas. Sin embargo, es frecuente encontrar errores en la ejecución de scripts debido al desconocimiento de la sintaxis adecuada o de las políticas de seguridad. En este artículo te explicamos cómo ejecutar scripts en PowerShell correctamente y cuáles son las formas incorrectas que debes evitar.
Formas Correctas de Ejecutar un Script en PowerShell
1. Desde la consola de PowerShell con ruta relativa o absoluta
Para ejecutar un script .ps1
, primero asegúrate de estar en la ruta correcta o proporciona la ruta completa:
.\mi_script.ps1 # Ruta relativa (desde el directorio actual)
C:\Scripts\mi_script.ps1 # Ruta absoluta
Nota: PowerShell no permite ejecutar scripts por su nombre solamente (como en Linux), por razones de seguridad. Por eso se requiere
.\
o la ruta completa.
2. Ejecutar scripts desde otra ubicación usando &
(call operator)
El call operator permite ejecutar un script desde cualquier ruta, incluso si contiene espacios:
& "C:\Mis scripts\mi_script.ps1"
3. Pasar parámetros al script
Si tu script acepta parámetros, puedes invocarlo así:
.\mi_script.ps1 -Parametro1 "valor1" -Parametro2 "valor2"
4. Cambiar la política de ejecución (solo si es necesario)
PowerShell tiene una política de ejecución que puede bloquear la ejecución de scripts. Puedes consultar tu política con:
Get-ExecutionPolicy
Y cambiarla (como administrador) si fuera necesario:
Set-ExecutionPolicy RemoteSigned
RemoteSigned
permite ejecutar scripts locales sin firmar, pero requiere firma digital para scripts descargados.
5. Ejecución desde el Programador de tareas o atajos
Puedes configurar tareas automatizadas o accesos directos que ejecuten scripts:
powershell.exe -File "C:\Scripts\mi_script.ps1"
O con PowerShell Core:
pwsh.exe -File "C:\Scripts\mi_script.ps1"
Formas Incorrectas de Ejecutar un Script en PowerShell
1. Ejecutar sin prefijo .\
o sin ruta
mi_script.ps1 # Incorrecto, PowerShell no ejecutará así por defecto
Esto devolverá un error del tipo:
El término 'mi_script.ps1' no se reconoce como un nombre de cmdlet...
2. Hacer doble clic desde el Explorador de Windows
Aunque un script .ps1
puede estar asociado a PowerShell, hacer doble clic puede abrir y cerrar la ventana rápidamente, sin mostrar resultados ni errores.
3. Ignorar la política de ejecución
Intentar ejecutar un script sin verificar la política de ejecución puede producir errores como:
File C:\Scripts\mi_script.ps1 cannot be loaded because running scripts is disabled on this system.
No se debe cambiar la política sin entender las implicaciones de seguridad.
4. Ejecutar scripts mal escritos o con errores de codificación
Usar un editor de texto inadecuado (como el Bloc de notas) puede introducir errores invisibles (por ejemplo, codificación incorrecta o saltos de línea de Windows/Unix).
Recomendado: usar Visual Studio Code, PowerShell ISE o editores con soporte para PowerShell.
5. Copiar y pegar fragmentos sin verificar permisos o contexto
Scripts que interactúan con el sistema pueden requerir privilegios de administrador. Ejecutarlos sin una consola elevada generará errores o fallos silenciosos.
Conclusión
Ejecutar scripts en PowerShell puede ser muy sencillo si se respetan las normas de sintaxis y seguridad. Asegúrate de:
- Utilizar rutas correctas (con
.\
o completas), - Entender la política de ejecución,
- Usar entornos adecuados para edición y prueba.
Evitar las prácticas incorrectas te ahorrará tiempo y evitará problemas de seguridad o fallos inesperados.