Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
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.