Si en el buscador escribiste "power shell 5", lo que buscas es Windows PowerShell 5.1, la consola que Windows 10 y Windows 11 traen de serie, distinta de PowerShell 7 (la moderna, multiplataforma). Aquí tienes qué es, cómo saber cuál se abre en tu equipo y cómo arreglar los errores más habituales: que no arranque, que bloquee los scripts o que no encuentre un módulo.
Datos comprobados en octubre de 2026.
Qué es Windows PowerShell 5.1 y dónde está en tu PC
Windows PowerShell 5.1 es la consola integrada en Windows 10 y Windows 11, basada en .NET Framework 4.5. Su ejecutable se llama powershell.exe y no debe confundirse con pwsh.exe, el de PowerShell 7. Al abrir "Windows PowerShell" desde el menú Inicio estás lanzando powershell.exe, que ejecuta scripts .ps1 y permite abrir también Windows PowerShell ISE, el editor que viene con el sistema para escribir y depurar scripts.
Aunque PowerShell 7 ya está disponible como descarga aparte, en Windows 10 sigue siendo la única consola de este tipo que trae el sistema de serie; en Windows 11 ocurre lo mismo, y la nueva Terminal abre por defecto Windows PowerShell 5.1 si no has instalado PowerShell 7. Por eso muchos scripts de administración, libros y foros siguen hablando de "PowerShell 5" cuando en realidad se refieren a esta consola de toda la vida.
pwsh aparte.En qué se diferencia Windows PowerShell 5.1 de PowerShell 7
La diferencia clave es la base: Windows PowerShell 5.1 está construido sobre .NET Framework 4.5 y solo funciona en Windows; PowerShell 6 en adelante es un proyecto de código abierto sobre .NET Core / .NET 5+, instalable en Windows, macOS y Linux. Esto cambia el nombre del ejecutable (powershell.exe frente a pwsh.exe) y, sobre todo, los módulos que trae cada uno.
| Lo que ves | Causa más probable | Dónde se arregla |
|---|---|---|
| Solo ves "Windows PowerShell" en Inicio | Tienes Windows PowerShell 5.1 y no has instalado PowerShell 7 | En qué se diferencia Windows PowerShell 5.1 de PowerShell 7 |
| Un cmdlet da error "no se reconoce" al pasarlo a PowerShell 7 | El cmdlet solo existe en Windows PowerShell 5.1 (WMI v1, snap-ins, Get-EventLog, etc.) | Windows PowerShell 5.1 no encuentra un módulo o un cmdlet |
powershell.exe no abre, pwsh.exe sí |
El fallo está en Windows PowerShell 5.1 o en su perfil | Windows PowerShell 5.1 no abre o se cierra al iniciar |
PowerShell 7 quitó módulos como ISE, PSScheduledJob y PSWorkflow, y eliminó otros cmdlets que solo viven en 5.1, entre ellos Add-PSSnapin, Get-PSSnapin, Remove-PSSnapin, Export-Console, Get-WmiObject, Set-WmiInstance, Remove-WmiObject, Get-EventLog, Show-EventLog, Write-EventLog, New-EventLog, Clear-EventLog, Limit-EventLog, Remove-EventLog, Add-Computer, Remove-Computer, Get-Transaction, Use-Transaction, Resume-Job, Suspend-Job, Export-Counter, Import-Counter, Convert-String y Enable-DscDebug. Si tu automatización depende de alguno, debe quedarse en Windows PowerShell 5.1.
powershell.exe 5.1 y pwsh.exe 7 y compara 1.1 el resultado: muchos módulos tradicionales ya cargan en 7 gracias a .NET Standard 2.0.Comprueba qué versión tienes antes de tocar nada
Antes de cambiar directivas, reparar archivos o reinstalar nada, necesitas saber con seguridad qué consola estás abriendo y qué versión carga. Confundir 5.1 con 7 es la causa número uno de "el script no funciona" o "el cmdlet no existe".
La versión exacta desde la propia consola
Abre la consola (Windows PowerShell o PowerShell 7 según cual tengas) y ejecuta el siguiente cmdlet:
$PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 ... ...
Si Major es 5, estás en Windows PowerShell (5.0 o 5.1). Si Major es 7, estás en PowerShell 7. Cualquier versión 6.x corresponde a PowerShell 6, ya descatalogado.
Dónde está cada ejecutable en el menú Inicio
En Windows 11 y Windows 10, el menú Inicio separa ambas consolas. Te interesa saber cuál lanza cada acceso directo para no abrir la otra sin darte cuenta.
"Windows PowerShell" abre powershell.exe 5.1; "PowerShell 7" (si lo instalaste) abre pwsh.exe. En Windows 11, Win+X > Terminal abre por defecto Windows PowerShell 5.1; puedes cambiarlo en la propia Terminal.
$PSVersionTable.PSVersion ves 5.1.x, todo lo que arregles a continuación va sobre Windows PowerShell 5.1. Si ves 7.x, ve a la guía de PowerShell 7.Windows PowerShell 5.1 no abre o se cierra al iniciar
Si al lanzar powershell.exe la ventana parpadea y se cierra sola, o directamente no aparece, lo más habitual es un perfil de usuario con un error que aborta el inicio, o archivos de sistema de PowerShell dañados. La causa más rara es que el servicio Power esté deshabilitado, cosa que no conviene hacer en Windows 10 u 11.
Restablece la configuración de usuario y prueba otra cuenta
Windows PowerShell carga al arrancar el perfil $HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1. Si ese archivo tiene un error de sintaxis o apunta a un módulo roto, la consola puede cerrarse sin mostrar nada.
Pasos para revisar el perfil del usuario
- Abre el Explorador de archivos y ve a
Documentos > WindowsPowerShell. - Busca el archivo
Microsoft.PowerShell_profile.ps1. - Si existe, renómbralo a
Microsoft.PowerShell_profile.ps1.bak(para poder volver atrás) o cópialo a otra carpeta. - Abre
powershell.exeotra vez desde Inicio. - Si sigue fallando, crea un usuario local nuevo en
Configuración > Cuentas > Familia y otros usuariosy prueba a abrir PowerShell con esa cuenta: si ahí abre, el problema está en tu perfil de usuario original.
.ps1 y corrige la línea que falla. Si solo abre con el usuario nuevo, tu perfil está dañado: mueve tus datos y usa el nuevo.Repón los archivos del sistema con SFC y DISM
Cuando el problema no es el perfil sino los propios archivos del sistema, las herramientas DISM y sfc pueden reponerlos desde una fuente oficial. DISM repara la imagen de Windows desde la que sfc luego copia los archivos correctos.
Abre Símbolo del sistema como administrador (en Windows 11, clic derecho en Inicio > Terminal (Administrador) y elige el perfil "Símbolo del sistema"; en Windows 10, clic derecho en Inicio > Windows PowerShell (Administrador) o Símbolo del sistema (Administrador)) y ejecuta estos dos comandos, uno después del otro, esperando a que cada uno termine:
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
La operación de restauración completó con éxito. La operación se completó correctamente.
Reinicia el equipo y abre Windows PowerShell otra vez.
sfc /scannow dice "La protección de recursos de Windows no encontró ninguna infracción de integridad", los archivos del sistema están bien y el fallo estaba en el perfil o en un script. Si encontró archivos dañados y los pudo reponer, PowerShell debería abrir ya.Windows PowerShell 5.1 bloquea la ejecución de scripts
Al intentar ejecutar un .ps1 verás un mensaje en rojo como "No se puede cargar el archivo … porque la ejecución de scripts está deshabilitada en este sistema". Esto lo controla la directiva de ejecución (Execution Policy) de PowerShell, un ajuste pensado para impedir que se ejecuten scripts sin querer.
Cambia la directiva de ejecución y comprueba con Get-ExecutionPolicy
Antes de cambiar nada, mira qué tienes. Hay cuatro ámbitos y el más restrictivo es el que se aplica: una directiva de grupo (MachinePolicy o UserPolicy) puede tenerla bloqueada aunque pongas lo que quieras con Set-ExecutionPolicy.
Abre Windows PowerShell como administrador (clic derecho en Inicio > Windows PowerShell (Administrador) en Windows 10 o Terminal (Administrador) en Windows 11 con perfil Windows PowerShell) y ejecuta:
Get-ExecutionPolicy -List
Scope ExecutionPolicy
MachinePolicy
UserPolicy
Process
CurrentUser RemoteSigned
Si ves RemoteSigned, AllSigned, Restricted o Unrestricted en CurrentUser o Process, puedes usar Set-ExecutionPolicy para cambiarlo en el ámbito CurrentUser:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
RemoteSigned exige firma digital solo en scripts descargados de Internet; los scripts locales que tú mismo escribas se ejecutan. AllSigned exige firma en todos.
MachinePolicy o UserPolicy muestra un valor, ve al siguiente punto: la directiva de grupo la está fijando.Si la directiva la fija la directiva de grupo, mira gpedit.msc o el Registro
Una directiva de grupo puede forzar la directiva de ejecución y dejar Set-ExecutionPolicy sin efecto. Entonces hay que mirar el editor de directivas o el Registro.
gpedit.msc. Si tienes Home, ve directo a la parte de Registro. Antes de tocar el Registro, crea un punto de restauración: Configuración > Sistema > Recuperación > Restauración de Windows o buscando "Crear un punto de restauración".Si está en "Habilitada", ahí verás la directiva aplicada y desde qué ámbito. Si no tienes gpedit.msc o quieres ajustar a mano, la clave equivalente está en el Registro:
Crea (o modifica) el valor DWORD llamado ExecutionPolicy con el valor deseado (RemoteSigned, AllSigned, etc.). Si la directiva de grupo vuelve a fijarla en cada inicio, esta entrada la pisará: entonces hay que cambiar la GPO, no el Registro.
Get-ExecutionPolicy -List y confirma que el ámbito que te bloqueaba ya tiene el valor que necesitas.Windows PowerShell 5.1 no encuentra un módulo o un cmdlet
Si al ejecutar un script obtienes un error del tipo "No se reconoce el nombre del cmdlet 'X'" o "No se puede encontrar el módulo 'X'", lo normal es que el módulo no esté en las rutas de PowerShell o que el cmdlet sea de los que solo existen en Windows PowerShell 5.1 y desaparecieron en PowerShell 7.
Importa el módulo a mano y mira el error real
Antes de tocar nada, fuerza la importación y deja que te diga qué pasa de verdad: -Verbose muestra cada acción y un error de carga mucho más claro que el mensaje genérico.
Import-Module NombreDelModulo -Verbose
VERBOSE: Loading module from path '...\NombreDelModulo.psd1'.
VERBOSE: Importing cmdlet 'Get-Foo'.
Si el módulo no está instalado o está en otra carpeta, usa:
Get-Module -ListAvailable NombreDelModulo
Esto lista las versiones instaladas y sus rutas. Si no aparece, no está en $env:PSModulePath, así que PowerShell no lo ve. La solución es instalar el módulo desde su fuente oficial (PowerShell Gallery con Install-Module NombreDelModulo -Scope CurrentUser, o copiarlo a una carpeta listada en esa variable).
Get-Module -ListAvailable lo lista, el problema era la ruta o que no estaba instalado.Cmdlets de WMI v1 que ya no existen
PowerShell 7 eliminó los cmdlets de WMI v1 (Get-WmiObject, Set-WmiInstance, Remove-WmiObject, Invoke-WmiMethod) y los reemplazó por Get-CimInstance, Set-CimInstance, Remove-CimInstance e Invoke-CimMethod. Estos últimos también están en Windows PowerShell 5.1, así que la migración suele ser directa si solo usabas WMI.
Get-CimInstance Win32_OperatingSystem
Si un script te falla con "no se reconoce el cmdlet Get-WmiObject", primero ejecútalo en Windows PowerShell 5.1 (donde sigue existiendo) y, si quieres hacerlo compatible con PowerShell 7, reemplaza Get-WmiObject por Get-CimInstance en el script. Lo mismo con Get-EventLog y compañía, que en 7 están quitados.
Get-WmiObject por Get-CimInstance el script funciona tanto en powershell.exe como en pwsh.exe, tu script queda listo para las dos consolas.Si Windows PowerShell 5.1 no se soluciona, prueba estos últimos pasos
Si después de revisar perfil, archivos del sistema, directivas y módulos, powershell.exe sigue sin funcionar, queda recurrir a restaurar el sistema o reinstalar la propia característica de Windows PowerShell.
Reinicia los componentes de Windows PowerShell y restaura el sistema
Antes de restaurar el sistema, prueba a cerrar cualquier instancia colgada y volverlas a abrir. Si hay un powershell.exe zombie bloqueando la configuración, se queda con archivos en uso y un simple doble clic puede parecer que "no hace nada".
Pasos para cerrar instancias colgadas y, si no basta, restaurar
- Cierra todas las ventanas de PowerShell y Terminal.
- Abre PowerShell como administrador y ejecuta:
Get-Process -Name powershell, powershell_ise -ErrorAction SilentlyContinue | Stop-Process -Force
- Abre
powershell.exedesde Inicio otra vez. - Si sigue igual, ve a
Configuración > Sistema > Recuperacióny usa "Restaurar sistema" para volver a un punto anterior a cuando empezó el problema. Tus archivos personales no se borran.
Reinstala Windows PowerShell 5.1 sobre el sistema
Windows PowerShell 5.1 viene como característica del propio Windows 10 u 11, así que no se "instala" como un programa aparte. La forma segura de reponerlo es la reparación de Windows, que deja intactos tus archivos y aplicaciones.
Pasos para reparar Windows y reponer Windows PowerShell 5.1
- Descarga la Herramienta de creación de medios de Windows 10 u 11 desde
microsoft.com. - Ejecútala y elige "Actualizar este equipo ahora".
- Marca "Conservar archivos personales y aplicaciones" y sigue hasta el final.
- Cuando termine, abre Windows PowerShell y comprueba con
$PSVersionTable.PSVersionque sigue marcando5.1.
$PSVersionTable.PSVersion sigue mostrando 5.1.x y los scripts vuelven a ejecutar, Windows PowerShell 5.1 está repuesto.Lo que conviene recordar de Windows PowerShell 5.1
- Ya viene con Windows 10 y 11: su ejecutable es
powershell.exe, nopwsh.exe. - No es multiplataforma y no recibe funciones nuevas: PowerShell 7 va por separado.
- Conserva módulos y cmdlets antiguos: WMI v1, snap-ins,
Get-EventLogy compañía. - Sus errores típicos se arreglan revisando perfil, directiva de ejecución y rutas de módulos antes de tocar el Registro.
- Si nada de eso funciona, repara Windows desde la herramienta oficial de Microsoft.
Siguiente paso: abre powershell.exe y comprueba con $PSVersionTable.PSVersion qué versión tienes realmente antes de aplicar nada.
Dudas sobre Windows PowerShell 5.1
1. Qué es PowerShell 7 y por qué se instala aparte si Windows ya incluye PowerShell 5.1
PowerShell 7 es la versión moderna y multiplataforma de la consola, basada en .NET, que Microsoft publica como aplicación independiente y se descarga desde GitHub o la Microsoft Store. Windows sigue llevando 5.1 de fábrica porque muchas herramientas del sistema y scripts antiguos dependen de él. Por eso conviven los dos: 7 para trabajar a diario y 5.1 para la compatibilidad.
2. Cómo se descarga e instala PowerShell 7 en Windows
Se descarga desde la página oficial en GitHub (microsoft/PowerShell) eligiendo el instalador .msi para Windows x64 o arm64, o desde la Microsoft Store buscando “PowerShell”. Tras instalarlo, aparece el acceso directo “PowerShell 7” en Inicio y convive con la versión 5.1 original, así que ningún script antiguo deja de funcionar.
3. Cómo saber qué versión de PowerShell tengo instalada
Abre PowerShell y escribe $PSVersionTable.PSVersion: la primera línea muestra Major.Minor (por ejemplo 5.1 o 7.4). También puedes distinguirlo por el título de la ventana: “Windows PowerShell” es la 5.1 que trae el sistema, y “PowerShell 7” es la instalada aparte.
Fuentes
- Microsoftabout_Windows_PowerShell_5.1 – PowerShell | Microsoft Learnconsultado el 16/10/2026
- GithubReleases · PowerShell/PowerShell – GitHubconsultado el 16/10/2026
- MicrosoftServicio Power (Power) — documentación oficialconsultado el 16/10/2026