Habilitar la ejecución de scripts para PowerShell

Este artículo explica cómo habilitar la ejecución de scripts para PowerShell de forma segura y sencilla. Se aborda qué es la política de ejecución, por qué limita la ejecución de scripts, cómo comprobar y cambiar esa configuración, y qué riesgos implica hacerlo sin cuidado.

Cuando intentas ejecutar un script en PowerShell y recibes un mensaje de error, suele ser porque la política de ejecución está configurada para impedirlo. Esto es común en equipos con restricciones de seguridad, especialmente en entornos corporativos. Este artículo resuelve las dudas más frecuentes y guía paso a paso para que puedas habilitar la ejecución de scripts para PowerShell sin comprometer la seguridad de tu sistema.

En este texto encontrarás

  • Qué significa la política de ejecución y por qué existe.
  • Cómo comprobar la configuración actual en tu equipo.
  • Qué permisos necesitas para cambiar la política.
  • Pasos claros para habilitar la ejecución de scripts.
  • Diferencias entre cambios temporales y permanentes.
  • Riesgos y consejos para mantener la seguridad.
  • Cómo funcionan las políticas en entornos corporativos.
  • Soluciones a problemas comunes y recomendaciones prácticas.

Mensaje de error típico al intentar ejecutar scripts y su significado

«No se puede cargar el archivo XXXX porque en el sistema está deshabilitada la ejecución de scripts. Vea «get-help about_signing» para obtener más información».

Este mensaje aparece cuando PowerShell bloquea la ejecución de un script debido a la política de ejecución configurada en el sistema. Básicamente, el sistema está protegiendo al usuario de ejecutar código que podría ser malicioso o no confiable.

Es importante entender esta advertencia para no intentar soluciones inseguras, como deshabilitar la protección sin saber qué implica. El mensaje también sugiere usar get-help about_signing, que es un recurso oficial para aprender más sobre la firma digital y la seguridad en scripts.

¿Qué es la política de ejecución en PowerShell y por qué existe?

La política de ejecución (ExecutionPolicy) es una configuración de seguridad en PowerShell que controla qué tipos de scripts pueden ejecutarse en un equipo. Su objetivo principal es proteger el sistema de scripts maliciosos que podrían dañar el equipo o robar información.

Existen diferentes niveles de políticas, desde las más restrictivas, que bloquean todos los scripts, hasta las más permisivas, que permiten ejecutar cualquier script sin restricciones. Esto afecta tanto a usuarios domésticos como a técnicos y administradores, quienes deben balancear la facilidad de uso con la seguridad.

Por ejemplo, la política Restricted impide la ejecución de cualquier script, mientras que RemoteSigned permite ejecutar scripts locales pero exige que los descargados de Internet estén firmados digitalmente.

 

Cómo comprobar la política de ejecución actual en tu sistema

RESUME ESTE ARTÍCULO CON IA: Extrae lo esencial automáticamente

Para saber qué política está activa en tu equipo, abre PowerShell y ejecuta el comando

Get-ExecutionPolicy

Este comando devuelve la política actual, que puede ser

  • Restricted: No se permite ejecutar scripts.
  • RemoteSigned: Permite scripts locales y requiere firma para scripts descargados.
  • Unrestricted: Permite ejecutar cualquier script.
  • Bypass: No se aplican restricciones.

Para ver las políticas aplicadas en diferentes ámbitos (usuario, máquina, proceso), usa

Get-ExecutionPolicy -List

Esto muestra una lista con las políticas ordenadas por prioridad, ayudando a identificar qué configuración prevalece.

Permisos necesarios para cambiar la política de ejecución

Modificar la política de ejecución requiere abrir PowerShell con permisos de administrador. Esto es porque cambiar esta configuración afecta la seguridad del sistema y puede impactar a otros usuarios.

Para abrir la consola con permisos elevados

  • Haz clic en el menú Inicio.
  • Escribe «PowerShell».
  • Haz clic derecho en «Windows PowerShell» y selecciona «Ejecutar como administrador».

Si no tienes permisos administrativos, solo podrás cambiar la política para tu usuario actual, y algunas opciones estarán limitadas. En entornos corporativos, puede que la política esté bloqueada por el administrador y no puedas modificarla.

Intentar cambiar la política sin autorización puede ser arriesgado y generar problemas de seguridad o incumplimiento de normativas.

Pasos detallados para habilitar la ejecución de scripts en PowerShell

Para cambiar la política de ejecución, usa el comando Set-ExecutionPolicy. Los pasos básicos son

  1. Abre PowerShell como administrador.
  2. Ejecuta el comando para establecer la política deseada. Por ejemplo, para permitir scripts firmados localmente y descargados con firma
  3. Set-ExecutionPolicy RemoteSigned
  4. Confirma el cambio escribiendo S o Y cuando se te pregunte.
  5. Verifica el cambio con Get-ExecutionPolicy.

Las políticas más usadas son

Política Descripción Uso recomendado
Restricted No permite ejecutar scripts. Configuración predeterminada para máxima seguridad.
RemoteSigned Permite scripts locales; requiere firma para scripts descargados. Usuarios que ejecutan scripts confiables y descargados.
Unrestricted Permite ejecutar cualquier script sin restricciones. Usuarios avanzados que confían en todos los scripts.
Bypass Ignora todas las políticas de ejecución. Uso temporal para ejecutar scripts específicos.

Para cambiar la política solo para el usuario actual sin afectar a otros, usa

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Si necesitas revertir el cambio, ejecuta

Set-ExecutionPolicy Restricted

Beneficios y riesgos

Beneficios

Habilita la ejecución de scripts legítimos para automatizar tareas y aumentar productividad.

Opciones de ámbito (Process, CurrentUser, LocalMachine) permiten cambios finos y controlados.

Política RemoteSigned equilibra seguridad y funcionalidad al exigir firma para descargas.

Cambios temporales (ExecutionPolicy Bypass en proceso) permiten ejecutar sin alterar la configuración global.

Herramientas como Unblock-File y firma digital ayudan a gestionar confianza de scripts individuales.

Practicas recomendadas (respaldos de políticas, pruebas en entorno controlado) reducen riesgos operativos.

Riesgos

Políticas permisivas (Unrestricted, Bypass) aumentan la exposición a scripts maliciosos.

Cambiar políticas a nivel máquina requiere permisos de administrador y puede incumplir normativas corporativas.

Usuarios sin experiencia pueden desactivar protecciones de forma insegura y sin entender consecuencias.

Directivas de Grupo pueden bloquear cambios; intentar forzar cambios puede provocar conflictos o sanciones.

Bypass temporal puede ser usado indebidamente si no hay seguimiento ni control de auditoría.

Gestión inadecuada de firmas y desbloqueo de archivos aumenta la superficie de ataque.

Diferencias entre habilitar la ejecución de scripts de forma permanente y temporal

Los cambios permanentes afectan la configuración global o del usuario y se mantienen tras reiniciar el sistema. Los temporales solo duran la sesión actual de PowerShell.

Para limitar el cambio a un ámbito específico, usa el parámetro -Scope

  • CurrentUser: Solo afecta al usuario actual.
  • LocalMachine: Afecta a todos los usuarios del equipo (requiere administrador).
  • Process: Solo para la sesión actual de PowerShell.

Ejemplo de ejecución temporal sin cambiar la configuración global

pwsh.exe -ExecutionPolicy Bypass -File script.ps1

Esto ejecuta el script con la política Bypass solo para esa sesión, sin modificar la política del sistema.

La ventaja de los cambios temporales es que no alteran la configuración permanente ni requieren permisos elevados. La desventaja es que hay que aplicarlos cada vez que se abre una nueva sesión.

Seguridad y riesgos al habilitar la ejecución de scripts

Usar políticas como Unrestricted o Bypass sin control puede ser peligroso, ya que permite ejecutar cualquier script, incluso malicioso. Por eso, es fundamental usar scripts firmados y certificados digitales siempre que sea posible.

Cuando descargas scripts de Internet, Windows marca esos archivos con una bandera de seguridad. Para permitir su ejecución, primero debes desbloquearlos con

Unblock-File -Path .script.ps1

Esto elimina la restricción de seguridad para ese archivo específico.

Algunos consejos para mantener la seguridad

  • Ejecuta solo scripts de fuentes confiables.
  • Usa la política RemoteSigned para equilibrar seguridad y funcionalidad.
  • Evita usar Unrestricted o Bypass a menos que sea necesario y supervisado.
  • Revisa y firma digitalmente tus scripts si trabajas en entornos corporativos.

Cómo gestionar la política de ejecución en entornos corporativos y con directivas de grupo

En empresas, la política de ejecución suele estar controlada por las Directivas de Grupo (GPO), que tienen prioridad sobre las configuraciones locales. Estas políticas pueden impedir que los usuarios cambien la configuración.

El orden de prioridad para la política efectiva es

  1. MachinePolicy (GPO a nivel máquina)
  2. UserPolicy (GPO a nivel usuario)
  3. Process (configuración temporal en la sesión)
  4. LocalMachine (configuración local para todos los usuarios)
  5. CurrentUser (configuración local para el usuario actual)

Si la política está bloqueada por el administrador, no podrás cambiarla. En ese caso, las alternativas son

  • Solicitar al administrador que autorice la ejecución de scripts.
  • Usar la ejecución temporal con -ExecutionPolicy Bypass si está permitido.
  • Ejecutar scripts firmados y aprobados por la organización.

Es importante respetar estas políticas para no comprometer la seguridad corporativa ni incumplir normas internas.

Solución a problemas comunes al habilitar la ejecución de scripts

Algunos errores frecuentes incluyen

  • Scripts sin firmar PowerShell bloquea scripts descargados sin firma. Solución: usar Unblock-File o firmar el script.
  • Permisos insuficientes No poder cambiar la política sin abrir PowerShell como administrador.
  • Restricciones en Windows Server Core o Nano Server Estos sistemas tienen políticas más estrictas y requieren comandos específicos para cambiar la política.

Antes de modificar la política, es recomendable hacer un respaldo de la configuración actual

Get-ExecutionPolicy -List | Out-File "C:backup_politicas.txt"

Así podrás restaurar la configuración si algo falla.

Consejos prácticos para habilitar la ejecución de scripts para PowerShell de forma segura y eficiente

  • Elige la política más restrictiva que permita ejecutar tus scripts, preferiblemente RemoteSigned.
  • Documenta cualquier cambio que realices en la configuración para futuras referencias.
  • Prueba tus scripts en entornos de prueba antes de usarlos en producción.
  • Mantén PowerShell actualizado para aprovechar mejoras de seguridad.
  • Revisa periódicamente la política de ejecución para asegurarte de que sigue siendo adecuada.
  • Evita usar políticas como Unrestricted o Bypass sin supervisión.

Lo que debes recordar para habilitar la ejecución de scripts en PowerShell sin complicaciones

Para habilitar la ejecución de scripts para PowerShell sin problemas, primero verifica la política actual con Get-ExecutionPolicy. Si está en Restricted, abre la consola como administrador y cambia la política con Set-ExecutionPolicy RemoteSigned o la que se ajuste a tus necesidades.

Recuerda que la seguridad es clave: usa scripts firmados y evita políticas demasiado permisivas. Si trabajas en un entorno corporativo, respeta las directivas de grupo y consulta con el administrador.

Finalmente, consulta siempre get-help about_signing para entender mejor las firmas digitales y la seguridad en PowerShell.


¿Qué te parece esta guía para habilitar la ejecución de scripts para PowerShell? ¿Has tenido problemas con las políticas de ejecución? ¿Cómo te gustaría que se simplificara este proceso? Comparte tus dudas, experiencias o sugerencias en los comentarios.


Sobre este mismo tema

Preguntas: habilitar ejecución de scripts para PowerShell, Consultas: activar ejecución de scripts en PowerShell, Dudas sobre cómo habilitar scripts en PowerShell, Cómo permitir la ejecución de scripts PowerShell, Guía para habilitar ejecución de scripts en PowerShell, Inquietudes sobre la política de ejecución de PowerShell, Problemas para activar ejecución de scripts en PowerShell, Permitir scripts en PowerShell dudas, Configurar política de ejecución en PowerShell preguntas, Autorizar ejecución de scripts PowerShell consultas, Cómo cambiar la política de ejecución en PowerShell, Activar ejecución de .ps1 en PowerShell dudas, Solución para habilitar scripts PowerShell, Pasos para permitir ejecución de scripts en PowerShell

RESUME ESTE ARTÍCULO CON IA: Extrae lo esencial automáticamente