Instalación de PowerShell en Windows

Hay varias formas de instalar PowerShell en Windows. Cada método de instalación está diseñado para admitir diferentes escenarios y flujos de trabajo. Elija el método de instalación que mejor se adapte a sus necesidades.

  • Winget: forma recomendada de instalar PowerShell en clientes Windows.
  • Paquete MSI: mejor opción para escenarios de implementación empresarial y servidores de Windows.
  • Paquete ZIP: forma más sencilla de "cargarlo localmente" o instalar varias versiones.
    • Use este método de instalación para Windows Nano Server, Windows IoT y los sistemas basados en ARM.
  • Herramienta global de .NET: una buena opción para los desarrolladores de .NET que instalan y usan otras herramientas globales.
  • Paquete de Microsoft Store: una manera fácil de instalar para los usuarios ocasionales de PowerShell, pero que tiene limitaciones.

Nota

Los comandos de instalación de este artículo son para la versión estable más reciente de PowerShell. Para instalar otra versión de PowerShell, ajuste el comando para que se adapte a la versión que necesita. Los vínculos siguientes lo dirigen a la página de lanzamiento de cada versión en el repositorio de PowerShell en GitHub.

Los vínculos de descarga de cada paquete se encuentran en la sección Activos de la página de versiones. Es posible que la sección Assets (Recursos) esté contraída, por lo que tendría que hacer clic para expandirla.

Winget, el administrador de paquetes de Windows, es una herramienta de línea de comandos que permite a los usuarios detectar, instalar, actualizar, quitar y configurar aplicaciones en equipos cliente de Windows. Esta herramienta es la interfaz cliente para el servicio del Administrador de paquetes de Windows. La herramienta de línea de comandos winget se incluye con Windows 11 y las versiones modernas de Windows 10 de forma predeterminada como Instalador de aplicación.

Nota

Vea la documentación de winget para obtener una lista de los requisitos del sistema y las instrucciones de instalación. Actualmente, Winget no se ejecuta en servidores Windows.

Los siguientes comandos se pueden usar para instalar PowerShell mediante los paquetes de winget publicados:

Búsqueda de la versión más reciente de PowerShell

winget search Microsoft.PowerShell
Name               Id                           Version   Source
-----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.4.2.0   winget
PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.2   winget

Instalación de PowerShell o PowerShell (versión preliminar) mediante el parámetro id

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

Nota:

En los sistemas Windows que usan el procesador X86 o X64, winget instala el paquete MSI. En los sistemas que usan el procesador Arm64, winget instala el paquete de Microsoft Store (MSIX). Para obtener más información, consulte Instalación desde Microsoft Store.

Instalación del paquete MSI

Para instalar PowerShell en Windows, use los siguientes vínculos para descargar el paquete de instalación desde GitHub.

Una vez descargado, haga doble clic en el archivo instalador y siga las indicaciones.

El instalador crea un acceso directo en el menú de inicio de Windows.

  • De forma predeterminada, el paquete se instala en $env:ProgramFiles\PowerShell\<version>
  • Puede iniciar PowerShell mediante el menú Inicio o $env:ProgramFiles\PowerShell\<version>\pwsh.exe

Nota:

PowerShell 7.4 se instala en un nuevo directorio y se ejecuta en paralelo con Windows PowerShell 5.1. PowerShell 7.4 es una actualización local que quita las versiones anteriores de PowerShell 7. Las versiones preliminares de PowerShell se pueden instalar en paralelo con otras versiones de PowerShell.

  • PowerShell 7.4 se instala en $env:ProgramFiles\PowerShell\7
  • La carpeta $env:ProgramFiles\PowerShell\7 se agrega a $env:PATH

Si necesita ejecutar PowerShell 7.4 en paralelo con otras versiones, use el método de instalación ZIP para instalar la otra versión en una carpeta diferente.

Compatibilidad de Microsoft Update con PowerShell 7.2 y versiones posteriores

PowerShell 7.2 y versiones posteriores admiten Microsoft Update. Al habilitar esta característica, recibirá las actualizaciones más recientes de PowerShell 7 en el flujo de administración tradicional de Microsoft Update (MU), ya sea con Windows Update para empresas, WSUS, Microsoft Endpoint Configuration Manager o el cuadro de diálogo interactivo de MU en Configuración.

El paquete MSI de PowerShell incluye las siguientes opciones de línea de comandos:

  • USE_MU: esta propiedad tiene dos valores posibles:
    • 1 (valor predeterminado): permite realizar las actualizaciones mediante Microsoft Update, WSUS o Configuration Manager
    • 0: no permite realizar las actualizaciones mediante Microsoft Update, WSUS o Configuration Manager
  • ENABLE_MU
    • 1 (valor predeterminado): permite usa Microsoft Update para las actualizaciones automáticas
    • 0: no permite participar con Microsoft Update

Nota

Es posible que la habilitación de las actualizaciones se haya establecido en una instalación anterior o en una configuración manual. Con ENABLE_MU=0, no quita la configuración existente. Además, esta configuración la puede invalidar la configuración de directiva de grupo controlada por el administrador.

Para más información, consulte las Preguntas más frecuentes sobre Microsoft Update para PowerShell.

Instalación del paquete MSI desde la línea de comandos

Los paquetes MSI se pueden instalar desde la línea de comandos, lo que permite a los administradores implementar paquetes sin la interacción del usuario. El paquete MSI incluye las siguientes propiedades para controlar las opciones de instalación:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL: esta propiedad controla la opción para agregar el elemento Open PowerShell al menú contextual en el Explorador de Windows.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL: esta propiedad controla la opción para agregar el elemento Run with PowerShell al menú contextual en el Explorador de Windows.
  • ENABLE_PSREMOTING: esta propiedad controla la opción para habilitar la comunicación remota de PowerShell durante la instalación.
  • REGISTER_MANIFEST: esta propiedad controla la opción para registrar el manifiesto de registro de eventos de Windows.
  • ADD_PATH: esta propiedad controla la opción para agregar PowerShell a la variable de entorno PATH de Windows.
  • DISABLE_TELEMETRY: esta propiedad controla la opción para deshabilitar la telemetría de PowerShell estableciendo la variable de entorno POWERSHELL_TELEMETRY_OPTOUT.
  • INSTALLFOLDER: esta propiedad controla el directorio de instalación. El valor predeterminado es $env:ProgramFiles\PowerShell\. Esta es la ubicación donde el instalador crea la subcarpeta con versiones. No se puede cambiar el nombre de la subcarpeta con versiones.
    • En el caso de las versiones actuales, la subcarpeta con versiones es 7
    • En el caso de las versiones preliminares, la subcarpeta con versiones es 7-preview

En los ejemplos siguientes se muestra cómo instalar PowerShell de forma silenciosa con todas las opciones de instalación habilitadas.

msiexec.exe /package PowerShell-7.4.2-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1

Puede encontrar una lista completa de opciones de línea de comandos para Msiexec.exe en Opciones de línea de comandos.

Instalación del paquete ZIP

Se proporcionan archivos binarios ZIP de PowerShell para permitir escenarios de implementación avanzada. Descargue uno de estos archivos ZIP desde la página de la versión actual.

En función de cómo descargue el archivo, es posible que deba desbloquearlo mediante el cmdlet Unblock-File. Descomprima el contenido en la ubicación que quiera y ejecute pwsh.exe desde allí. A diferencia de la instalación de paquetes MSI, la instalación del archivo ZIP no comprueba los requisitos previos. Para que la comunicación remota en WSMan funcione correctamente, asegúrese de que se han cumplido los requisitos previos.

Use este método para instalar la versión basada en ARM de PowerShell en equipos como Microsoft Surface Pro X. Para obtener los mejores resultados, instale PowerShell en la carpeta para $env:ProgramFiles\PowerShell\7.

Instalación como una herramienta global de .NET

Si ya tiene instalado el SDK de .NET Core, puede instalar PowerShell como una herramienta global de .NET.

dotnet tool install --global PowerShell

El instalador de la herramienta dotnet agrega $HOME\.dotnet\tools a la variable de entorno $env:PATH. Sin embargo, el shell que se ejecuta actualmente no tiene $env:PATH actualizado. Para iniciar PowerShell desde un nuevo shell, escriba pwsh.

Instalación desde Microsoft Store

PowerShell se puede instalar desde Microsoft Store. Puede encontrar la versión de PowerShell en el sitio de Microsoft Store o en la aplicación de la tienda en Windows.

Ventajas del paquete de Microsoft Store:

  • Actualizaciones automáticas integradas en Windows
  • Se integra con otros mecanismos de distribución de software como Intune y Configuration Manager
  • Se puede instalar en sistemas Windows con procesadores x86, x64 o Arm64

Limitaciones conocidas

De manera predeterminada, los paquetes de Windows Store se ejecutan en un espacio aislado de aplicación que virtualiza el acceso a algunas ubicaciones del Registro y del sistema de archivos. Los cambios en las ubicaciones del registro y los archivos virtualizados no se conservan fuera del espacio aislado de la aplicación.

Este espacio aislado bloquea todos los cambios realizados a la carpeta raíz de la aplicación. No se pueden modificar las opciones de configuración de nivel de sistema almacenadas en $PSHOME. Esto incluye la configuración de WSMAN. Esto impide que las sesiones remotas se conecten a instalaciones basadas en el almacén de PowerShell. Se admiten las configuraciones de nivel de usuario y la comunicación remota de SSH.

Los siguientes comandos necesitan escribir en $PSHOME. Estos comandos no se admiten en una instancia de Microsoft Store de PowerShell.

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

Para más información, consulte Cómo se ejecutan las aplicaciones de escritorio empaquetadas en Windows.

Cambios para PowerShell 7.2

A partir de PowerShell 7.2, el paquete de PowerShell está exento de la virtualización de registro y archivos. Los cambios en las ubicaciones del registro y los archivos virtualizados ahora se conservan fuera del espacio aislado de la aplicación. Sin embargo, los cambios en la carpeta raíz de la aplicación siguen bloqueados.

Importante

Debe ejecutar la compilación 1903 de Windows o una superior para que esta exención funcione.

Instalación de una versión preliminar

Las versiones preliminares de PowerShell 7 se instalan en $env:ProgramFiles\PowerShell\7-preview, por lo que se pueden ejecutar en paralelo con versiones no preliminares de PowerShell. PowerShell 7.4 es la siguiente versión preliminar.

Actualización de una instalación existente

Para obtener los mejores resultados al actualizar, debe usar el mismo método de instalación que usó la primera vez que instaló PowerShell. Si no está seguro de cómo se instaló PowerShell, puede verificar el valor de la variable $PSHOME, que siempre apunta al directorio que contiene PowerShell en el que se está ejecutando la sesión actual.

  • Si el valor es $HOME\.dotnet\tools, PowerShell se instaló con la herramienta global de .NET.
  • Si el valor es $Env:ProgramFiles\PowerShell\7, PowerShell se instaló como un paquete MSI o con Winget en un equipo con un procesador X86 o x64.
  • Si el valor comienza con $Env:ProgramFiles\WindowsApps\, PowerShell se instaló como un paquete de Microsoft Store o con Winget en el equipo con un procesador ARM.
  • Si el valor es cualquier otra cosa, es probable que PowerShell se haya instalado como un paquete ZIP.

Si instaló a través del paquete MSI, esa información también aparece en el Panel de control de Programas y características.

Para determinar si PowerShell se puede actualizar con Winget, ejecute el siguiente comando:

winget list --name PowerShell --upgrade-available

Si hay una actualización disponible, la salida indica la versión más reciente disponible.

Nota:

Al actualizar, PowerShell no lo hará de una versión LTS a una versión que no sea LTS. Solo se actualiza a la versión más reciente de LTS, por ejemplo, de 7.2.3 a 7.2.19. Para actualizar desde una versión LTS a una versión estable más reciente o a la siguiente LTS, debe instalar la nueva versión con MSI para esa versión.

Cuando la versión instalada no es una versión LTS, PowerShell se actualiza a la versión estable más reciente.

Implementación en Windows 10 IoT Enterprise

Windows 10 IoT Enterprise incluye Windows PowerShell, que se puede usar para implementar PowerShell 7.

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.4.2-win-arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.4.2-win-arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.2-win-arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

Cuando configure la comunicación remota de PowerShell, recibirá un mensaje de error y se desconectará del dispositivo. PowerShell tiene que reiniciar WinRM. Ahora se puede conectar al punto de conexión de PowerShell 7 en el dispositivo.


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.2

Implementación en Windows 10 IoT Core

Windows 10 IoT Core agrega Windows PowerShell cuando se incluye la característica IOT_POWERSHELL, que se puede usar para implementar PowerShell 7. Los pasos definidos anteriormente para Windows 10 IoT Enterprise también se pueden seguir para IoT Core.

Para agregar la última versión de PowerShell en la imagen de envío, use el comando Import-PSCoreRelease para incluir el paquete en el área de trabajo y agregar la característica OPENSRC_POWERSHELL a la imagen.

Nota

En el caso de la arquitectura ARM64, Windows PowerShell no se agrega cuando se incluye IOT_POWERSHELL. Por lo tanto, la instalación basada en ZIP no funciona. Tiene que usar el comando Import-PSCoreRelease para agregarlo a la imagen.

Desarrollo en Nano Server

En estas instrucciones se da por supuesto que Nano Server es un sistema operativo "sin periféricos" con una versión de PowerShell que ya se ejecuta en él. Para más información, consulte la documentación del compilador de imágenes de Nano Server.

Los archivos binarios de PowerShell se pueden implementar mediante dos métodos diferentes.

  1. Sin conexión: monte el VHD de Nano Server y descomprima el contenido del archivo ZIP en la ubicación seleccionada de la imagen montada.
  2. En línea: transfiera el archivo ZIP a través de una sesión de PowerShell y descomprímalo en la ubicación seleccionada.

En ambos casos, necesita el paquete de la versión ZIP de Windows x64. Ejecute los comandos en una instancia de "administrador" de PowerShell.

Implementación sin conexión de PowerShell

  1. Use su utilidad ZIP favorita para descomprimir el paquete en un directorio de la imagen montada de Nano Server.
  2. Desmonte la imagen e iníciela.
  3. Conéctese a la instancia integrada de Windows PowerShell.
  4. Siga las instrucciones para crear un punto de conexión de comunicación remota mediante "otra técnica de instancia".

Implementación con conexión de PowerShell

Implemente PowerShell en Nano Server mediante los pasos siguientes.

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.4.2-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.4.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

Si le interesa la comunicación remota basada en WSMan, siga las instrucciones para crear un punto de conexión de comunicación remota mediante "otra técnica de instancia".

Comunicación remota con PowerShell

PowerShell admite el Protocolo de comunicación remota de PowerShell (PSRP) a través de WSMan y SSH. Para más información, consulte:

Se deben cumplir estos requisitos previos para habilitar la comunicación remota de PowerShell a través de WSMan en versiones anteriores de Windows.

  • Instale Windows Management Framework (WMF) 5.1 (según sea necesario). Para más información sobre WMF, consulte la información general sobre WMF.
  • Instale el entorno de ejecución de C universal en las versiones de Windows anteriores a Windows 10. Está disponible mediante descarga directa o Windows Update. Los sistemas con revisión completa ya tienen instalado este paquete.

Versiones compatibles de Windows

En la tabla siguiente se muestra una lista de las versiones de PowerShell y las versiones de Windows en las que se admiten. Estas versiones se admitirán hasta que la versión de PowerShell o la de Windows lleguen al final del soporte técnico.

  • El icono Con soporte técnico indica que la versión del sistema operativo o PowerShell todavía recibe soporte técnico.
  • El icono Sin soporte técnico indica que la versión de PowerShell ya no se admite en esa versión del sistema operativo.
  • El icono En prueba indica que no hemos terminado de probar PowerShell en ese sistema operativo.
  • El icono No admitido indica que la versión del sistema operativo o PowerShell no es compatible.
  • Cuando la versión del sistema operativo y la de PowerShell tienen un icono Admitido, esa combinación es compatible.
Windows 7.2 (LTS-previous) 7.3 7.4 (LTS-current)
Compatible Windows Server 2016, 2019, o 2022 Admitido Admitido Compatible
Compatible Windows Server Nano (1809 o posterior) Admitido Admitido Compatible
Compatible Windows 11 Admitido Admitido Compatible
Compatible Windows 10 1067 o posteriores Admitido Admitido Compatible

Nota

La compatibilidad con una versión específica de Windows la determinan las directivas de ciclo de vida de Soporte técnico de Microsoft. Para más información, consulte:

PowerShell recibe soporte técnico en Windows para las arquitecturas de procesador siguientes.

Windows 7.2 (LTS-Current) 7.3 7.4 (LTS-current)
Windows Server 2016+ x64, x86 x64, x86 x64, x86
Windows Server Core 2016+ x64, x86 x64, x86 x64, x86
Nano Server, versión 1803+ x64 x64 x64
Cliente de Windows 11 x64, Arm64 x64, Arm64 x64, Arm64
Cliente de Windows 10 x64, x86, Arm64 x64, x86, Arm64 x64, x86, Arm64

Ejecute winver.exe para comprobar la versión que utiliza.

Compatibilidad con la instalación

Microsoft admite los métodos de instalación de este documento, aunque puede haber otros de terceros disponibles desde otros orígenes. Si bien esas herramientas y métodos pueden funcionar, Microsoft no los admite.