Volver

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

Portada-Ejec-de-scripts.png

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, u otra situación similar. Si alguna vez os habéis 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 entre en una cuenta, o tareas relacionadas con Microsoft 365 y su automatización con los usuarios, lo más seguro es que os haya saltado un error en consola y no hayáis podido ejecutar dicho 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 de un caso donde podáis obtener este error puede ser en la compilación de un fichero sass mediante Webpack, donde se ejecutan scripts para realizar diferentes acciones. Para este ejemplo hemos creado un script básico llamado «FirstScript.ps1», que básicamente imprime por pantalla un texto. El contenido de dicho script es el siguiente:

​Write-Host «Hello, World!» ​

La manera de ejecutar el anterior script es abriendo la consola de PowerShell y escribiendo el símbolo &, la ruta del archivo en cuestión y el nombre del fichero, todo esto entre corchetes exceptuando el símbolo inicial:

& «C:\Users\Arturo\Documents\FirstScript.ps1»

Cómo habilitar la ejecución de scripts

Para poder ejecutar los scripts se debe cambiar la configuración de ejecución de scripts de Windows, ya que esto viene deshabilitado por defecto para evitar que se ejecuten scripts maliciosos en el sistema.

Tipos de políticas de ejecución de Powershell

PowerShell tiene varias políticas de ejecución, cuatro de las más usadas son:

1. Restricted: ningún script será ejecutado. Como comentaba anteriormente, esta es la configuración predeterminada.

2. RemoteSigned: permiten ejecutar los scripts creados localmente con firma remota. Los scripts que se crearon en otra máquina no se ejecutarán a menos que estén firmados por un editor de confianza.

3. AllSigned: los scripts solo se ejecutarán si está firmado por un editor de confianza. Aquí también se incluyen los scripts creados localmente.

4. Unrestricted: todos los scripts se ejecutarán, da igual quién los haya creado y si están o no 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.

Si ya has aprendido cómo detener la ejecución de scripts y estás listo para avanzar, te invitamos a explorar nuestros dominios en oferta. En cdmon, encontrarás la promoción perfecta para ti. Descubre nuestra promoción de dominios y elige el que mejor se adapte a tus proyectos. Con precios competitivos y una amplia selección, estamos seguros de que encontrarás el dominio ideal para potenciar tu presencia en internet. ¡Visítanos y comienza tu camino hacia el éxito online!