Cómo actuar si la ejecución de scripts está deshabilitada

Hay varias casuísticas en el mundo de los desarrolladores con las que siempre nos vamos a encontrar. Por ejemplo, actualizar la versión PHP de un proyecto web o situaciones similares. Si alguna vez te has encontrado con la necesidad de ejecutar scripts en Windows 10 o Windows Server, por ejemplo para automatizar tareas como enviar un email cuando un usuario entra en una cuenta, o tareas relacionadas con Microsoft 365, es probable que te hayas topado con un error en consola que impide ejecutar el script.
¿Cómo aparece el error en la consola?
El error en consola suele ser un mensaje en el que aparece:
«No se puede cargar el archivo C:\Users\Arturo\Documents\FirstScript.ps1 porque la ejecución de scripts está deshabilitada en este sistema. Para obtener más información, consulta el tema about_Execution_Policies en https:/go.microsoft.com/fwlink/?LinkID=135170»
«La ejecución de scripts está deshabilitada en este sistema»

Un ejemplo típico puede darse en la compilación de un fichero SASS mediante Webpack, donde se ejecutan scripts para realizar diferentes acciones. Para ilustrarlo, hemos creado un script básico llamado FirstScript.ps1, que simplemente imprime un texto en pantalla:
| Write-Host «Hello, World!» |
Para ejecutarlo, abre PowerShell y escribe el símbolo &, seguido de la ruta completa del archivo entre comillas:
| & «C:\Users\Arturo\Documents\FirstScript.ps1» |
Cómo habilitar la ejecución de scripts
Windows desactiva por defecto la ejecución de scripts para evitar posibles usos maliciosos. Si necesitas activarla, tendrás que cambiar la política de ejecución de PowerShell.
Tipos de políticas de ejecución en PowerShell
PowerShell ofrece varias políticas. Las más comunes son:
- Unrestricted: se ejecuta cualquier script, esté o no firmado.
- Restricted: no se ejecuta ningún script (configuración por defecto).
- RemoteSigned: permite scripts locales, pero exige firma para los que vienen de otros equipos.
- AllSigned: todos los scripts, locales o no, deben estar firmados.
Para poder ver la política actual de ejecución abriremos PowerShell a nivel administrador. Para ello deberemos hacer clic en Inicio, escribir «Windows PowerShell», hacer clic con el botón derecho encima de la aplicación y finalmente hacer clic en «Ejecutar como administrador».

Una vez abierta la aplicación ejecutaremos el siguiente comando:
| Get-ExecutionPolicy -List |

Esto nos muestra que la política de ejecución no está definida. Para poder corregir esto deberemos ejecutar el siguiente comando:
| Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |

Si volvemos a listar los permisos podremos ver que el resultado ha cambiado y para el usuario actual la política de ejecución tiene el valor «RemoteSigned».

Finalmente, si volvemos a ejecutar el script que inicialmente nos devolvía el error, veremos que ahora sí permite su ejecución:

Con esto podemos concluir que Windows se toma la seguridad muy en serio y no permite ejecutar scripts de terceros por defecto, para así evitar posibles ejecuciones maliciosas en su sistema operativo. Además, hemos podido comprobar que no se requiere de un gran conocimiento técnico para habilitar la ejecución de scripts y así poder realizar programaciones al gusto del usuario.
Por último, queremos recomendarte iMacros. Se trata de una herramienta para la automatización de ejecución de tareas en el ámbito de tu navegador, ya que ofrece miles de posibilidades y opciones de automatización que te pueden interesar.
¿Ya funciona tu script?
Si vuelves a ejecutar el script que antes te daba error, verás que ahora sí se ejecuta correctamente.
Windows prioriza la seguridad, y por eso no permite ejecutar scripts por defecto. Pero, como has visto, con un par de comandos puedes habilitar esta opción y empezar a automatizar tus tareas.
Y si estás dando tus primeros pasos en automatización, no te pierdas herramientas como iMacros, ideal para ejecutar tareas desde tu navegador con muchas opciones de personalización.
¿Te interesa seguir profundizando en automatización? Aquí tienes una guía con scripts y comandos básicos de Linux que te ayudará a ganar soltura desde el terminal.
Y si estás listo para poner en marcha un proyecto más ambicioso, no te quedes solo en la fase local. En cdmon te ofrecemos planes de hosting escalables, con soporte real y sin letra pequeña, para que subas tu página al siguiente nivel. Te invitamos también a explorar nuestros dominios en oferta.