PowerShell

Windows PowerShell 5.1: qué es, en qué se diferencia de PowerShell 7 y cómo arreglar sus errores

noviembre 4, 2026 Window Error 12 min read
Windows PowerShell 5.1: qué es, en qué se diferencia de PowerShell 7 y cómo arreglar sus errores

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.

Nota: Windows PowerShell 5.1 no es multiplataforma ni se actualiza ya con nuevas funciones: Microsoft mantiene la rama PowerShell 7 por separado. Si necesitas características nuevas, ejecuta 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.

Consejo: Antes de migrar nada a PowerShell 7, abre 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.

InicioTodas las aplicacionesWindows PowerShellWindows PowerShell
InicioTodas las aplicacionesPowerShell 7PowerShell 7
Win+XTerminal (Windows 11) o Símbolo del sistema (Windows 10)

"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.

Comprueba: Si al escribir $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

  1. Abre el Explorador de archivos y ve a Documentos > WindowsPowerShell.
  2. Busca el archivo Microsoft.PowerShell_profile.ps1.
  3. Si existe, renómbralo a Microsoft.PowerShell_profile.ps1.bak (para poder volver atrás) o cópialo a otra carpeta.
  4. Abre powershell.exe otra vez desde Inicio.
  5. Si sigue fallando, crea un usuario local nuevo en Configuración > Cuentas > Familia y otros usuarios y prueba a abrir PowerShell con esa cuenta: si ahí abre, el problema está en tu perfil de usuario original.
Comprueba: Si PowerShell abre con el perfil renombrado, el causante era ese script. Edita el .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.

Comprueba: Si 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.

Comprueba: Si al volver a ejecutar tu script ya no aparece el mensaje rojo, el arreglo funcionó. Si sigue bloqueado y 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.

Cuidado: En Windows 10 y 11 Home no está 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".
Win+Rgpedit.mscConfiguración de usuarioPlantillas administrativasWindows PowerShellActivar la ejecución de scripts

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:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

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.

Comprueba: Tras ajustar la GPO (o reiniciar, si tocaste el Registro), vuelve a ejecutar 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).

Comprueba: Si el cmdlet ya no da "no se reconoce" y 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.

Comprueba: Si al cambiar 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

  1. Cierra todas las ventanas de PowerShell y Terminal.
  2. Abre PowerShell como administrador y ejecuta:

   Get-Process -Name powershell, powershell_ise -ErrorAction SilentlyContinue | Stop-Process -Force
  1. Abre powershell.exe desde Inicio otra vez.
  2. Si sigue igual, ve a Configuración > Sistema > Recuperación y usa "Restaurar sistema" para volver a un punto anterior a cuando empezó el problema. Tus archivos personales no se borran.
Cuidado: La restauración del sistema no recupera archivos borrados después del punto elegido, pero sí revierte cambios en el Registro, servicios y actualizaciones. Úsala solo si el problema empezó en una fecha concreta.
Comprueba: Si al restaurar PowerShell abre sin tocar nada más, ya está. Si ni restaurando se arregla, pasa al siguiente paso.

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

  1. Descarga la Herramienta de creación de medios de Windows 10 u 11 desde microsoft.com.
  2. Ejecútala y elige "Actualizar este equipo ahora".
  3. Marca "Conservar archivos personales y aplicaciones" y sigue hasta el final.
  4. Cuando termine, abre Windows PowerShell y comprueba con $PSVersionTable.PSVersion que sigue marcando 5.1.
Cuidado: Si desmarca esa opción, el equipo se reinstala desde cero y se borran aplicaciones y, posiblemente, datos. Asegúrate de tener copia de lo importante.
Comprueba: Si tras la reparación $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, no pwsh.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-EventLog y 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

  1. Microsoftabout_Windows_PowerShell_5.1 – PowerShell | Microsoft Learnconsultado el 16/10/2026
  2. GithubReleases · PowerShell/PowerShell – GitHubconsultado el 16/10/2026
  3. MicrosoftServicio Power (Power) — documentación oficialconsultado el 16/10/2026