HP

«La ejecución de scripts está deshabilitada en este sistema»: qué significa y cómo arreglarlo

noviembre 5, 2026 Window Error 9 min read
"La ejecución de scripts está deshabilitada en este sistema": qué significa y cómo arreglarlo

Al hacer doble clic en un archivo .ps1 o al ejecutarlo desde la consola de PowerShell, Windows responde con el mensaje «La ejecución de scripts está deshabilitada en este sistema». Es la protección que viene activada de fábrica: la directiva de ejecución está en Restricted, así que ningún archivo de script puede arrancar. Lo más probable es que baste con permitir solo los scripts que escribas o descargues de fuentes de confianza con Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. Aplica a Windows 10 y Windows 11. Datos comprobados en octubre de 2026.

Por qué PowerShell bloquea los scripts .ps1 al ejecutarlos

Windows trae, por defecto, la directiva de ejecución de PowerShell en Restricted. Esa directiva es una medida de seguridad: le dice a PowerShell que no debe cargar ni ejecutar ningún archivo .ps1, así un script descargado de Internet no puede arrancar sin que tú lo permitas. Cuando escribes la ruta del script en la consola, PowerShell lee la directiva, ve que está en Restricted y devuelve el aviso que ves en pantalla.

La directiva se cambia con el cmdlet Set-ExecutionPolicy. Los valores útiles son RemoteSigned (scripts locales sí, los descargados de Internet solo si están firmados por un editor de confianza), AllSigned (todos deben ir firmados) y Unrestricted (sin restricción, no recomendado). El ajuste se guarda en el Registro y se aplica al instante.

Lo que ves y por qué pasa

Lo que ves Causa probable Dónde se arregla
«La ejecución de scripts está deshabilitada en este sistema» al ejecutar el .ps1 La directiva está en Restricted y no la has cambiado todavía Permitir solo tus scripts sin tocar todo el sistema
Mismo mensaje aunque ya has hecho Set-ExecutionPolicy RemoteSigned Lo has ejecutado sin permisos de administrador en la consola normal o la GPO de la empresa lo bloquea Cómo abrir PowerShell con los permisos adecuados / La directiva de la empresa manda
«El archivo no está firmado digitalmente» sobre un .ps1 descargado de Internet La directiva es RemoteSigned y el archivo conserva la marca de «descargado de la web» Permitir solo tus scripts sin tocar todo el sistema
Al hacer doble clic sobre el .ps1 se abre el Bloc de notas y el script no corre PowerShell no ejecuta scripts con doble clic; .ps1 queda asociado a un editor Ejecutar un script puntual sin cambiar la directiva
Antivirus o SmartScreen pone en cuarentena el .ps1 aunque la directiva esté bien El archivo no está firmado o el editor no es de confianza para el antivirus Si nada funciona al ejecutar el script

Cómo abrir PowerShell con los permisos adecuados

Antes de cambiar nada, conviene saber qué directiva tienes ahora y desde dónde se aplica. La consola «normal» lee la directiva del usuario actual; la consola abierta como administrador puede cambiar la directiva del equipo, pero en equipos del trabajo la directiva puede venir impuesta por la empresa y no podrás moverla.

  1. Abre PowerShell como administrador: en Windows 11, haz clic derecho en el botón de Inicio (Win+X) y elige Terminal (Administrador); en Windows 10, abre el menú Inicio, busca Símbolo del sistema o Windows PowerShell, clic derecho y Ejecutar como administrador. Confirma el cuadro de Control de cuentas de usuario.
  2. En la consola, ejecuta Get-ExecutionPolicy -List para ver las directivas por ámbito (MachinePolicy, UserPolicy, Process, CurrentUser, LocalMachine) y qué valor tiene cada una.
  3. La directiva efectiva es la más restrictiva de las que estén fijadas: si MachinePolicy o UserPolicy aparecen rellenas, las manda una GPO y tu Set-ExecutionPolicy no hará efecto.
ConfiguraciónSistemaPara desarrolladoresTerminalWindows Terminal
Comprueba: si en la lista aparece LocalMachine : Restricted y los demás Undefined, estás ante el caso normal: con un Set-ExecutionPolicy en tu usuario basta.

Permitir solo tus scripts sin tocar todo el sistema

Para un equipo personal, lo más limpio es permitir solo los scripts locales (los que tú escribes) y los descargados que estén firmados por un editor de confianza. Eso lo consigues con RemoteSigned en el ámbito del usuario actual, sin necesidad de abrir la consola como administrador. Si tu script viene de Internet, además de la directiva necesitarás «desbloquearlo» para que Windows le quite la marca de archivo descargado.

Cambia la directiva solo para tu usuario

Abre PowerShell (consola normal, no hace falta administrador) y ejecuta:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

PowerShell te preguntará si quieres cambiar la directiva. Pulsa S y Enter. Después comprueba con Get-ExecutionPolicy -List que en la fila CurrentUser ahora aparece RemoteSigned.

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy        Undefined
      Process        Undefined
  CurrentUser      RemoteSigned
 LocalMachine        Undefined
Comprueba: vuelve a ejecutar tu .ps1. Si arranca y muestra su salida, está resuelto. Si sigue dando el mismo mensaje, ve a «La directiva de la empresa manda».

Desbloquea el archivo descargado

Cuando un .ps1 viene de Internet (descarga del navegador, adjunto, etc.), Windows le pone una marca de origen (Zone.Identifier) y, con RemoteSigned, exige firma. Tienes dos caminos:

  1. Desde el Explorador de archivos: clic derecho en el .ps1 > Propiedades > en la pestaña General, abajo, marca Desbloquear > Aceptar.
  2. Desde PowerShell: ejecuta Unblock-File -Path "C:\ruta\script.ps1" (la ruta, entre comillas).
Nota: Unblock-File no cambia la directiva: solo le quita la marca al archivo concreto. Si tu directiva sigue en Restricted, el script seguirá sin ejecutarse.
Comprueba: ejecuta de nuevo el script. Si ahora arranca, la causa era la marca de archivo descargado.

Ejecutar un script puntual sin cambiar la directiva

Si solo necesitas correr un script una vez y no quieres cambiar la directiva de tu usuario, PowerShell admite el parámetro -ExecutionPolicy Bypass para esa sola ejecución. Es el camino rápido para probar algo o para lanzar scripts desde un acceso directo sin dejar la directiva relajada en el sistema.

  1. Pulsa Win+R, escribe powershell -ExecutionPolicy Bypass -File "C:\ruta\script.ps1" y pulsa Enter. Cambia la ruta por la de tu script.
  2. Si prefieres desde el Explorador de archivos: clic derecho en el .ps1 > Ejecutar con PowerShell (disponible en Windows 10 y Windows 11 desde PowerShell 3.0).

powershell -ExecutionPolicy Bypass -File "C:\ruta\script.ps1"
Cuidado: -ExecutionPolicy Bypass desactiva la protección solo para esa ejecución. Úsalo con scripts de los que conozcas el origen; no lo conviertas en atajo habitual para scripts descargados sin verificar.
Comprueba: el script se ejecuta y muestra su salida sin pedirte cambiar la directiva. La directiva del sistema sigue como estaba.

La directiva de la empresa manda: scripts bloqueados en un equipo del trabajo

En equipos gestionados por una organización, la directiva de ejecución puede venir fijada por una Directiva de grupo (GPO). En ese caso, MachinePolicy o UserPolicy aparecen rellenas en Get-ExecutionPolicy -List y tus cambios con Set-ExecutionPolicy se ignoran o se revierten al cerrar la consola. La forma correcta de verlo es la herramienta de directivas del propio Windows.

  1. Pulsa Win+R, escribe gpedit.msc y pulsa Enter. Si Windows es Home, esta herramienta no está: pide al administrador de tu organización que ajuste la GPO.
  2. Ve a Directiva de equipo local > Configuración del equipo > Plantillas administrativas > Componentes de Windows > Windows PowerShell > Activar la ejecución de scripts.
  3. Si la directiva está habilitada, mira qué directiva de ejecución ha elegido el administrador (Allow only signed scripts, Allow local scripts and remote signed scripts, etc.). No la cambies sin autorización: en un equipo del trabajo, saltarse la GPO puede saltarse también el antivirus o el control de aplicaciones.

Comprueba si hay una GPO activa

gpedit.msc solo está en Windows Pro, Enterprise y Education. Si tu equipo es Home o no tienes acceso a la directiva, mira el Registro y el resultado de directivas (RSoP):

Equipo\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
  1. Pulsa Win+R, escribe rsop.msc y revisa Configuración del equipo > Plantillas administrativas > Componentes de Windows > Windows PowerShell.
  2. Para verlo de forma directa, abre el Editor del Registro (Win+R > regedit) y comprueba el valor ExecutionPolicy en la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell. Si ahí dice RemoteSigned y tu consola lo aplica, esa es la directiva real.
Comprueba: si en rsop.msc o en el Registro ves una directiva fijada por la empresa, tu única salida legalmente es contactar con el administrador de sistemas para que autorice tu script o cambie la GPO.

Si nada funciona al ejecutar el script

Si ya cambiaste la directiva, desbloqueaste el archivo y aun así el script no corre (o se cierra sin hacer nada), el problema puede estar en la propia firma del archivo, en el antivirus o en la asociación de la extensión .ps1 con otro programa. Haz estas comprobaciones en este orden:

  1. Firma del script: ejecuta Get-AuthenticodeSignature "C:\ruta\script.ps1". Si el resultado dice NotSigned, tu .ps1 no está firmado: con AllSigned no correrá, y con RemoteSigned solo si es local y está desbloqueado.
  2. Antivirus o SmartScreen: revisa el historial de protección en Seguridad de Windows > Historial de protección. Si el archivo aparece como puesto en cuarentena, restáuralo y añade la carpeta a las exclusiones solo si confías en el origen.
  3. Asociación de .ps1: ejecuta Get-Command powershell.exe para confirmar la ruta de PowerShell. En el Explorador, clic derecho en el .ps1 > Abrir con > confirma que abre con Windows PowerShell o Windows Terminal, no con el Bloc de notas.

Get-AuthenticodeSignature "C:\ruta\script.ps1"
Comprueba: si la firma es válida y el antivirus lo deja pasar, el script debería ejecutarse. Si el problema es de asociación, al elegir Abrir con > Windows PowerShell queda arreglado para próximos archivos.

Lo que ya descartaste del error de scripts deshabilitados

  • La directiva aplicada al usuario o al equipo.
  • El desbloqueo del archivo descargado.
  • Los permisos de la consola de PowerShell (administrador cuando haga falta).
  • El bloqueo por GPO de la empresa o por el antivirus.

Fuentes

  1. Github600+ free PowerShell scripts (.ps1) for Linux, macOS, and Windows.consultado el 16/10/2026
  2. Microsoft«La ejecución de scripts está deshabilitada en este sistema» (PowerShell) — documentación oficialconsultado el 16/10/2026
  3. MicrosoftVista web heredada Aplicaciones de Windows 8/8.1/UWP HTML/JavaScript (también conocidas como aplicaciones web hospedadas y aplicaciones web de Windows) Aplicaciones progresivas heredadas de Web Apps (PWA) Microsoft Edge (EdgeHTML) heredado DevTools (en desuso en Windows) — documentación oficialconsultado el 16/10/2026
  4. MicrosoftERROR_TOO_MANY_DESCRIPTORS (error 331, 0x14B) — documentación oficialconsultado el 16/10/2026
  5. MicrosoftERROR_INVALID_LDT_DESCRIPTOR (error 564, 0x234) — documentación oficialconsultado el 16/10/2026