PowerShell

PowerShell: qué es, qué errores da y cómo arreglarlo

noviembre 12, 2026 Window Error 11 min read
PowerShell: qué es, qué errores da y cómo arreglarlo

Si al escribir PowerShell te aparece un mensaje en rojo, el script no se ejecuta o la ventana se cierra al abrirla, el problema casi siempre está en la versión instalada, en la directiva de ejecución o en un módulo que falta. Esta guía cubre lo que le pasa a PowerShell en Windows 10 y Windows 11, cómo distinguir cada causa y los pasos para volver a usarlo sin romper nada.

Qué es PowerShell y para qué sirve en Windows

PowerShell es una herramienta de Microsoft que combina tres cosas en una: un shell de línea de comandos (la ventana donde escribes órdenes), un lenguaje de scripting (para escribir esas órdenes en archivos .ps1 y reutilizarlas) y un marco de automatización (para aplicar esa misma configuración a muchos equipos a la vez). A diferencia del Símbolo del sistema, que solo devuelve texto, PowerShell trabaja con objetos .NET: cuando pides la lista de procesos o de servicios, recibes un objeto con sus propiedades, no solo líneas de texto plano.

En Windows viene preinstalado Windows PowerShell 5.1, integrado en el propio sistema. PowerShell 7 es la versión más reciente, multiplataforma (se ejecuta también en Linux y macOS), y se instala aparte desde la web de Microsoft o con winget. La consola incluye además PSReadLine, que aporta el autocompletado con Tab, el historial de comandos y la predicción de la siguiente orden mientras escribes. Con PowerShell puedes automatizar desde tareas locales (renombrar archivos, listar servicios) hasta procesos de empresa con módulos como los de Azure, Exchange, SQL Server o VMware.

Por qué PowerShell falla en Windows: las causas más comunes

Lo que ves Causa probable Dónde se arregla
"No se puede cargar porque la ejecución de scripts está deshabilitada en este sistema" La directiva de ejecución está en Restricted y bloquea los .ps1 PowerShell no ejecuta scripts: cambia la directiva de ejecución
La ventana se abre y se cierra al instante Acceso directo roto o una tarea programada que fuerza el cierre PowerShell no abre o se cierra al instante: atajo y permisos
"No se reconoce como un cmdlet, función, archivo de script o programa ejecutable" Falta el módulo que contiene ese cmdlet El cmdlet no se reconoce: instalar el módulo que falta
Doble clic sobre un .ps1 y se abre el Bloc de notas La asociación de archivos .ps1 apunta al Bloc de notas en vez de a PowerShell Windows abre los .ps1 con el Bloc de notas: reasocia los archivos

Comprueba qué le pasa a PowerShell antes de tocar nada

Antes de aplicar ningún arreglo conviene saber qué versión tienes, qué directiva de ejecución está activa, si el módulo que necesitas está instalado y si hay algún evento en el Visor de eventos que apunte a la causa real. Cuatro comprobaciones rápidas, sin riesgo:

La versión de PowerShell que tienes y desde dónde corre

Abre en PowerShell y ejecuta los dos comandos siguientes. El primero te dice la versión exacta y la edición; el segundo, el host que estás usando. Windows PowerShell 5.1 viene con el sistema; PowerShell 7.x es la versión multiplataforma y opcional.

$PSVersionTable
Get-Host

Name                           Value
----                           -----
PSVersion                      7.4.6
PSEdition                      Core
OS                             Microsoft Windows 10.0.26100
Platform                       Win32NT

Si ves PSVersion 5.1, estás usando Windows PowerShell integrado. Si ves 7.x con PSEdition Core, estás en PowerShell 7.

La directiva de ejecución que tienes ahora mismo

Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
   CurrentUser    RemoteSigned
 LocalMachine       Undefined

Si en LocalMachine o CurrentUser aparece Restricted, los scripts .ps1 no se ejecutarán aunque el archivo exista. Si aparece AllSigned, exigirá que cada script esté firmado digitalmente.

Si el módulo falta o no se reconoce el cmdlet

Get-Module -ListAvailable

Si el módulo que necesitas no aparece en la lista, PowerShell no lo encuentra. Para probar uno concreto, intenta importarlo:

Import-Module NombreDelModulo

Si responde sin errores, el módulo está disponible; si devuelve "No se encuentra el módulo", toca instalarlo.

Los eventos de PowerShell en el Visor de eventos

Visor de eventosRegistros de WindowsAplicación

Filtra por origen PowerShell y revisa los IDs de evento y el mensaje: suelen señalar la línea exacta donde falló un script o el motivo por el que PowerShell no arrancó.

PowerShell no ejecuta scripts: cambia la directiva de ejecución

Si al lanzar un .ps1 Windows responde que la ejecución de scripts está deshabilitada, el problema es la Execution Policy. Esta política no es una medida de seguridad estricta, sino un freno para evitar ejecutar scripts por accidente; cambiarla para tu usuario no rompe nada.

Abrir PowerShell con los permisos necesarios

Botón InicioTerminal de Windows (Administrador) (Windows 11)
Botón InicioWindows PowerShellWindows PowerShell (Administrador) (Windows 10)

El título de la ventana debe decir "Administrador". Sin ese permiso, Set-ExecutionPolicy no podrá aplicar cambios en LocalMachine.

Cambiar la Execution Policy solo para tu usuario

Abre en PowerShell como administrador y ejecuta:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Cuando pida confirmación, escribe S y pulsa Enter. Después comprueba con Get-ExecutionPolicy -List que CurrentUser muestra RemoteSigned. Esta política permite scripts locales sin firma y exige firma solo en los descargados de Internet.

Comprueba: al ejecutar de nuevo tu .ps1, debería correr sin el mensaje de error. Si sigue igual, abre PowerShell como administrador y repite el paso.

Restablecer la directiva si la cambiaste mal

Abre en PowerShell como administrador y ejecuta:

Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine

Esto devuelve Windows al valor por defecto y deja el equipo como estaba.

Comprueba: Get-ExecutionPolicy -List mostrará Restricted en LocalMachine, el ajuste original.

PowerShell no abre o se cierra al instante: atajo y permisos

Cuando la ventana aparece y desaparece al instante, PowerShell no está roto: lo que falla es el acceso directo o algo que lo cierra de inmediato. Antes de tocar nada, descartas el problema en un minuto.

Probar PowerShell desde Ejecutar antes de tocar nada

Pulsa Win+R, escribe powershell y pulsa Enter. Si la consola se queda abierta esperando órdenes, el fallo está en el acceso directo del menú Inicio, no en PowerShell.

Devolver el acceso directo del menú Inicio a su estado normal

Botón InicioBuscar "Windows PowerShell"Clic derechoAbrir ubicación de archivo

Borra el acceso directo roto y crea uno nuevo con destino powershell.exe (Windows PowerShell) o pwsh.exe (PowerShell 7). Evita accesos directos de terceros: pueden tener parámetros que cierren la ventana al terminar.

Revisar las tareas programadas que cierran PowerShell

Pulsa Win+R, escribe taskschd.msc y revisa la biblioteca de tareas. Si alguna tarea dispara powershell.exe con parámetros que cierran la ventana al terminar, desactívala o corrígela y deja apuntado qué cambiaste.

Comprueba: Win+R y powershell debe mantener la consola abierta hasta que tú la cierres.

El cmdlet no se reconoce: instalar el módulo que falta

Si al escribir un cmdlet PowerShell responde que no lo reconoce, el shell está correcto: lo que falta es el módulo que lo contiene. La solución es buscarlo en la Galería de PowerShell (PSGallery) e instalarlo.

Buscar el módulo en la Galería de PowerShell

Abre en PowerShell y ejecuta:

Find-Module Nombre

El resultado mostrará el nombre exacto, la versión y el autor. Evita módulos de procedencias desconocidas: instala solo los que vivan en la PSGallery por defecto.

Instalar el módulo para el usuario actual

Abre en PowerShell y ejecuta:

Install-Module -Name Nombre -Scope CurrentUser

Cuando pida confirmación con un aviso sobre un proveedor sin confianza, escribe S. Después comprueba:

Get-Module -ListAvailable Nombre

El módulo debe aparecer con su versión.

Importarlo en cada sesión o guardarlo en el perfil

Abre en PowerShell y ejecuta:

Import-Module Nombre

Si quieres que cargue solo cada vez que abres PowerShell, añade esa misma línea al perfil:

notepad $PROFILE

Guarda el archivo y reinicia PowerShell. La próxima vez, el módulo se cargará automáticamente.

Comprueba: el cmdlet antes rechazado ya se ejecuta sin el mensaje de "no se reconoce".

Windows abre los .ps1 con el Bloc de notas: reasocia los archivos

Si al doble clic sobre un script PowerShell se abre el Bloc de notas en vez de ejecutarse, la asociación de archivos .ps1 apunta a otro programa. La solución es cambiarla desde Configuración.

Asociar los .ps1 a PowerShell desde Configuración

ConfiguraciónAplicacionesAplicaciones predeterminadasBuscar ".ps1"Elegir Windows PowerShell o PowerShell 7

En Windows 10 la ruta es Configuración > Aplicaciones > Aplicaciones predeterminadas y eliges el programa para cada extensión.

Reabrir PowerShell tras el cambio y comprobar

Cierra y vuelve a abrir PowerShell. Ve a la carpeta del script y ejecuta:

.\archivo.ps1

El script debe arrancar en la consola en vez de abrirse en el Bloc de notas.

Comprueba: el script se ejecuta y muestra su salida en la consola.

Si nada funciona: repara PowerShell y el propio Windows

Si tras probar las partes anteriores el error sigue, toca reparar la instalación. Empieza por lo menos invasivo: reinstalar PowerShell 7 si lo añadiste aparte. Si aun así el problema persiste, restaura Windows sin perder tus archivos.

Desinstalar y reinstalar PowerShell 7 si lo añadiste aparte

  1. Pulsa Win+R, escribe cmd y ábrelo como administrador.
  2. Ejecuta winget list Microsoft.PowerShell para ver la instalación.
  3. Ejecuta winget uninstall Microsoft.PowerShell para quitarlo.
  4. Ejecuta winget install Microsoft.PowerShell para volver a la última versión estable.
  5. Abre PowerShell 7 y comprueba con $PSVersionTable que la versión es la esperada.

Restaurar Windows sin perder archivos

ConfiguraciónSistemaRecuperaciónRestaurar el PC manteniendo mis archivos

Elige "Resolver problemas" para que repare la instalación sin formatear. El equipo se reiniciará varias veces y puede tardar bastante.

Cuidado: restaura Windows solo cuando lo anterior no haya funcionado. Haz copia de tus archivos importantes antes por si algo se interrumpe.
Comprueba: PowerShell vuelve a abrirse, ejecuta scripts y reconoce los cmdlets que necesitas.

Lo que ya has descartado sobre los errores de PowerShell

  • Si los scripts no corren, la Execution Policy está en Restricted o AllSigned (Get-ExecutionPolicy -List).
  • Si un cmdlet no se reconoce, el módulo no está instalado o no está en $env:PSModulePath (Get-Module -ListAvailable).
  • Si la ventana se cierra sola, el problema está en el acceso directo o en una tarea programada, no en PowerShell.
  • Si un .ps1 abre el Bloc de notas, la asociación de archivos apunta a otro programa (Configuración > Aplicaciones predeterminadas).
  • Si todo lo anterior falla, reinstala PowerShell 7 con winget o restaura Windows sin perder archivos.

Windows PowerShell 5.1 sigue integrado en Windows 10 y 11; PowerShell 7 es la versión multiplataforma opcional, instalable desde winget o desde la web de Microsoft.

Dudas sobre PowerShell y sus errores en Windows

1. ¿Qué diferencia hay entre Windows PowerShell y el Símbolo del sistema?

El Símbolo del sistema (cmd) trabaja con comandos de texto simples y está pensado para tareas rápidas. PowerShell es una consola más moderna que usa cmdlets (Verbo-Sustantivo, como Get-Process) y maneja objetos, pipelines y scripts, por lo que sirve tanto para lo básico como para automatizar cosas en el sistema. En Windows 10 y 11 conviven y puedes abrir ambos desde el menú Win+X.

2. ¿Para qué sirve PowerShell en el día a día?

Sirve para administrar el equipo sin pulsar menús: listar servicios, apagar máquinas en red, instalar programas con winget, consultar el registro o crear scripts que automaticen tareas repetidas. Es la consola que usan administradores para gestionar Windows a fondo, y también la que abre el menú Win+X como "Terminal" en Windows 11.

3. ¿Cómo se empieza a escribir un script en PowerShell?

Un script es un archivo de texto con extensión .ps1 donde escribes los cmdlets línea a línea, por ejemplo "Get-Service | Where-Object Status -eq 'Running'". Se guarda con el Bloc de notas o Visual Studio Code y se ejecuta haciendo clic derecho sobre él o con el comando "& 'C:\ruta\script.ps1'" en la propia consola.

4. ¿Qué es la extensión de PowerShell en Visual Studio Code?

Es el complemento oficial de Microsoft llamado PowerShell Extension que añade resaltado de sintaxis, autocompletado de cmdlets, depuración paso a paso y una consola integrada (REPL) dentro de VS Code. Se instala desde el panel de extensiones escribiendo "PowerShell" y, al abrir un archivo .ps1, VS Code sugiere cambiar a este modo.

5. ¿Qué es PowerShell explicado de forma sencilla?

Es una consola de texto avanzada, sustituta del viejo Símbolo del sistema, con la que le das instrucciones a Windows escribiendo comandos. En lugar de pulsar menús, escribes lo que quieres hacer (ver procesos, copiar archivos, instalar programas) y el equipo lo ejecuta. Viene instalada por defecto en Windows 10 y Windows 11.

6. ¿Se puede eliminar Windows PowerShell del equipo?

Sí, pero no conviene: muchos programas, el propio Windows y ciertas herramientas de soporte la llaman por dentro, así que desinstalarla puede provocar errores al actualizar, al abrir el menú Win+X o al ejecutar comandos del sistema. Si solo no la usas, déjala instalada; ocupa unos 50 MB y no ralentiza nada.

7. ¿Dónde se puede aprender PowerShell gratis por Internet?

El sitio oficial Microsoft Learn tiene el curso gratuito "PowerShell on Microsoft Learn" con ejemplos interactivos desde nivel cero. También son útiles los tutoriales de la documentación de PowerShell en learn.microsoft.com y los retos de código de páginas como Hackerrank o Exercism para practicar scripts reales.

8. ¿Qué tipo de lenguaje es PowerShell?

Es un lenguaje de scripting interpretado, basado en .NET, orientado a objetos y con una sintaxis de comandos en forma verbo-sustantivo (Get-Item, Set-Service, New-Item). Está pensado para administrar sistemas Windows, aunque desde la versión 7 (PowerShell Core) también es multiplataforma y funciona en Linux y macOS.

Fuentes

  1. Microsofthow to install or update windows power shell on a computer that …consultado el 16/10/2026
  2. MicrosoftServicio Power (Power) — documentación oficialconsultado el 16/10/2026