El mensaje «La ejecución de scripts está deshabilitada en este sistema» es el comportamiento de seguridad por defecto de PowerShell, no un error. Windows bloquea la ejecución de scripts .ps1 de forma predeterminada para evitar que se ejecuten scripts maliciosos sin tu conocimiento.
Respuesta rápida: Dificultad Baja · Tiempo estimado 5 min · Riesgo Bajo (si cambias la directiva de forma amplia) · Requiere administrador: Sí · Windows 10 y 11.
¿Qué significa este error?
PowerShell tiene una «directiva de ejecución» (Execution Policy) que determina qué scripts puede ejecutar. Por defecto, en la mayoría de los equipos viene configurada como «Restricted», que bloquea todos los scripts, incluso los que tú mismo has creado, como medida de seguridad frente a malware basado en scripts.
Síntomas
- Mensaje «execution of scripts is disabled on this system» o su versión en español
- Ocurre al intentar ejecutar cualquier archivo .ps1, propio o de terceros
- Los comandos normales de PowerShell (no en forma de script) funcionan sin problema
Causas
1. Directiva de ejecución «Restricted» por defecto (la causa, no un fallo)
2. Política de grupo corporativa que fuerza una directiva restrictiva (en equipos de empresa)
Solución 1 (básica): Cambiar la directiva para el usuario actual
La opción más segura y recomendada para uso personal.
- Abre PowerShell como administrador.
- Ejecuta:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - Confirma con «S» (Sí) cuando se solicite.
Resultado esperado: podrás ejecutar tus propios scripts locales y scripts firmados digitalmente de terceros, manteniendo bloqueados los scripts descargados sin firma.
💡 Consejo: «RemoteSigned» es el equilibrio recomendado entre seguridad y funcionalidad: permite scripts locales sin restricción, pero exige firma digital en los descargados de internet.
Solución 2 (intermedia): Ejecutar un script puntual sin cambiar la directiva global
Si solo necesitas ejecutar un script concreto una vez, sin cambiar la configuración general:
- Abre PowerShell.
- Ejecuta:
powershell -ExecutionPolicy Bypass -File "ruta\del\script.ps1"
Resultado esperado: el script se ejecuta esa vez concreta sin modificar la configuración permanente del sistema.
Solución 3 (avanzada): Comprobar políticas de grupo en equipos de empresa
- Ejecuta
Get-ExecutionPolicy -Listpara ver si hay una directiva forzada a nivel de máquina o política de grupo. - Si aparece una directiva impuesta por «GroupPolicy», contacta con tu departamento de IT — no podrás cambiarla localmente.
Resultado esperado: identificas si la restricción viene de una política corporativa que requiere gestión centralizada.
Verificar la solución
Ejecuta Get-ExecutionPolicy y confirma que muestra «RemoteSigned» (o el valor que hayas configurado); prueba a ejecutar tu script de nuevo.
Si el problema persiste
- Comprueba que ejecutas PowerShell como administrador al cambiar la directiva.
- Consulta la guía general del cluster: Guía completa de herramientas del sistema.
Preguntas frecuentes
¿Es seguro cambiar la directiva de ejecución?
Sí, «RemoteSigned» es una configuración estándar y recomendada; evita usar «Unrestricted» salvo que sepas exactamente por qué lo necesitas.
¿Esto desprotege mi equipo frente a malware?
No significativamente si usas «RemoteSigned», ya que sigue exigiendo firma digital para scripts descargados de internet.
¿Por qué Windows bloquea esto por defecto?
Para evitar que scripts maliciosos se ejecuten automáticamente sin que el usuario lo sepa o autorice explícitamente.
¿Afecta esto a comandos normales de PowerShell?
No, solo afecta a la ejecución de archivos de script (.ps1); los comandos escritos directamente en la consola no se ven afectados.
Errores relacionados
- Categoría: Herramientas del Sistema
- Guía completa del cluster: Guía completa de herramientas del sistema
- Artículo relacionado: El símbolo del sistema no abre
Conclusión
El bloqueo de scripts en PowerShell es una medida de seguridad intencionada, no un error. Cambiar la directiva a «RemoteSigned» resuelve el problema manteniendo un nivel de seguridad razonable.
