Cómo solucionar problemas con scripts de PowerShell en Windows 11
Si los scripts de PowerShell te ignoran o te generan errores, no eres el único. A veces, la configuración de seguridad predeterminada de Windows 11 impide la ejecución de scripts, lo que dificulta la automatización. Por suerte, existen algunas maneras de flexibilizar estas restricciones, lo justo para que tus scripts funcionen sin convertir tu PC en un completo desastre. El objetivo es ajustar las políticas de ejecución de forma segura, evitando así la aparición accidental de scripts sospechosos. Tras seguir estos pasos, deberías poder ejecutar tus scripts de PowerShell sin problemas, ya sean locales o desde la red.
Cómo solucionar el problema de un script de PowerShell que no se ejecuta en Windows 11
Método 1: Ejecutar PowerShell como administrador (fácil y rápido)
Este es el primer paso más sencillo. Las políticas de ejecución de PowerShell suelen requerir permisos de administrador para modificarlas. Haga clic derecho en el botón Inicio (o presione Win + X) y seleccione Terminal de Windows (Administrador) o Windows PowerShell (Administrador). Debe ejecutarse con permisos de administrador; de lo contrario, los comandos no se ejecutarán correctamente. Haga una prueba rápida ejecutando el script después. A veces, ejecutarlo como administrador resuelve el problema, ya que otorga los permisos necesarios. En algunas configuraciones, esto basta; en otras, deberá ajustar la configuración.
Método 2: Cambiar la política de ejecución para permitir scripts
Esta es la solución principal. Es un poco extraño, pero Windows tiene una política restrictiva predeterminada que impide la ejecución de la mayoría de los scripts a menos que estén firmados o sean de confianza específica. Para simplificar la configuración, vuelva a abrir PowerShell con permisos de administrador y escriba:
Set-ExecutionPolicy RemoteSigned
Pulsa Enter. Cuando se te solicite, escribe Y
y vuelve a pulsar Enter. Este comando te permite ejecutar scripts locales libremente, pero también comprueba las firmas si extraes código de internet. En algunas máquinas, este comando puede fallar la primera vez y luego funcionar tras reiniciar; no tengo ni idea de por qué, pero es un meme en la comunidad de PowerShell. Si no funciona inmediatamente, reinicia el equipo e inténtalo de nuevo.
Método 3: Ajustar el registro para soluciones de nivel profundo
Esto es un poco más complejo, pero a veces las políticas del sistema están estrictamente controladas a nivel de registro. Si cambiar la configuración de PowerShell no solucionó el problema, quizás deba revisar el registro. Presione Windows + R, escriba regedit
y presione Enter. Antes de modificar los archivos de registro, haga una copia de seguridad, ya que a Windows le gusta complicar las cosas.
Navegar a:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
Haga clic derecho en Windows, seleccione Nuevo > Clave y llámelo PowerShell
. Luego, en la nueva PowerShell
clave, haga clic derecho en el panel derecho, seleccione Nuevo > Valor DWORD (32 bits) y llámelo EnableScripts
. Haga doble clic y establezca el valor en 1
. Esto básicamente indica a Windows que permita scripts con un nivel de seguridad más bajo.
Cierra el editor de registro y reinicia tu PC. Con eso basta, pero recuerda: editar el registro puede ser un poco intimidante si no sabes lo que haces, así que no te excedas. Además, algunas herramientas de seguridad pueden seguir bloqueando scripts, así que compruébalas también.
Consejos adicionales y problemas comunes
Algunos consejos adicionales porque Windows puede ser impredecible:
- Primero haga una copia de seguridad de su registro, en caso de que cometa algún error.
- Asegúrese de que su software de seguridad no esté bloqueando PowerShell; a veces los antivirus pueden ser un problema en estos casos.
- Si los comandos generan errores, revise la sintaxis, especialmente si copia de las guías. A Windows le encantan los errores tipográficos.
Y recuerda: cambiar las políticas de ejecución puede ser arriesgado si ejecutas scripts incorrectos. Sé siempre precavido con lo que ejecutas. Más vale prevenir que curar, ¿no?
Resumen
Ejecutar scripts de PowerShell en Windows 11 no es tarea fácil, pero es posible. Primero, ejecutar como administrador suele ser útil, seguido de flexibilizar la política de ejecución con Set-ExecutionPolicy. Cuando esto no es suficiente, se pueden aplicar ajustes al registro, que pueden llevar las cosas al límite. Recuerda mantener copias de seguridad y revisar tus comandos. Una vez configurados, tus scripts deberían ejecutarse sin problemas, lo que te ayudará a automatizar todo tipo de tareas y ahorrar tiempo.
Preguntas frecuentes
¿Cuál es la política de ejecución en PowerShell?
Básicamente, es la forma en que Windows decide qué scripts pueden ejecutarse. Considérelo como una puerta de seguridad: las más bloqueadas impiden que los scripts se ejecuten, lo cual es bueno para la seguridad, pero molesto si se necesita automatización.
¿Puedo revertir la política de ejecución a la predeterminada?
Totalmente. Simplemente ejecútalo Set-ExecutionPolicy Restricted
en PowerShell como administrador y se bloqueará todo. Es útil si quieres deshacer lo que hiciste o reforzar la seguridad.
¿Cambiar la política de ejecución comprometerá la seguridad?
Puede serlo si no tienes cuidado. Reducir las restricciones implica que podrían ejecutarse scripts maliciosos si no tienes cuidado. Ejecuta siempre scripts de fuentes confiables, sin excepciones.