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.

  • Paquete MSI: la mejor opción para el usuario habitual.
  • Paquete ZIP: la manera más fácil de instalar varias versiones o usarlas en una canalización de CI/CD. Este es el 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.
  • Winget: para los usuarios que prefieren usar la nueva herramienta Administrador de paquetes de Windows.
  • 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.

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.2 se instala en un nuevo directorio y se ejecuta en paralelo con Windows PowerShell 5.1. PowerShell 7.2 es una actualización local que reemplaza a PowerShell 7.0 y versiones anteriores.

  • PowerShell 7.2 se instala en $env:ProgramFiles\PowerShell\7.
  • La carpeta $env:ProgramFiles\PowerShell\7 se agrega a $env:PATH
  • Se eliminan las carpetas de las versiones publicadas anteriormente.

Si necesita ejecutar PowerShell 7.2 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

PowerShell 7.2 admite 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, SCCM o el cuadro de diálogo interactivo de MU en Configuración.

El paquete MSI de PowerShell 7.2 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 SCCM
    • 0: no permite actualizar mediante Microsoft Update, WSUS o SCCM
  • ENABLE_MU
    • 1 (valor predeterminado): permite usa Microsoft Update para las actualizaciones automáticas
    • 0: no permite utilizar 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. Usar 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 administrativa 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.

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.2.0-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=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 $env:USERPROFILE\.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 de PowerShell mediante Winget

Winget, el administrador de paquetes de Windows, es una herramienta de línea de comandos que permite a los desarrolladores detectar, instalar, actualizar, quitar y configurar aplicaciones en equipos con Windows 10. Esta herramienta es la interfaz cliente para el servicio del Administrador de paquetes de Windows.

Nota

Vea la documentación de winget para obtener una lista de los requisitos del sistema y las instrucciones de instalación.

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.2.0.0  winget
Powershell Preview Microsoft.PowerShell.Preview 7.2.0.10 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

Instalación desde Microsoft Store

PowerShell 7.2 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 SCCM.

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.3 será 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. Cada método de instalación instala PowerShell en una ubicación diferente. Si no está seguro de cómo se instaló PowerShell, puede comparar la ubicación de instalación con la información del paquete de este artículo. Si instaló mediante el paquete MSI, la información aparece en el panel de control Programas y características.

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.2.0-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.2.0-win-Arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.2.0-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.2.0

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

  • Un ✅ indica que la versión del sistema operativo o PowerShell sigue recibiendo soporte técnico.
  • Un ❌ indica que la versión del sistema operativo o PowerShell no recibe soporte técnico.
  • Un 🟡 indica que la versión de PowerShell ya no recibe soporte técnico en esa versión del sistema operativo.
  • Cuando tanto la versión del sistema operativo como la versión de PowerShell tienen ✅, esa combinación recibe soporte técnico.
Windows 7.0 (LTS) 7.1 7.2 (LTS-Current)
✅ Windows Server 2016, 2019 o 2022
✅ Windows Server 2012 R2
✅ Windows Server Core (2012 R2 o versiones superiores)
✅ Windows Server Nano (1809 o versiones superiores)
❌ Windows Server 2012 🟡 🟡
❌ Windows Server 2008 R2 🟡 🟡
✅ Windows 11
✅ Windows 10 1607+
✅ Windows 8.1

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.0 (LTS) 7.1 7.2 (LTS-Current)
Nano Server, versión 1803+ x64, Arm32 x64 x64
Windows Server 2012 R2+ x64, x86 x64, x86 x64, x86
Windows Server Core 2012 R2+ x64, x86 x64, x86 x64, x86
Cliente de Windows 10 u 11 x64, x86 x64, x86, Arm64 x64, x86, Arm64
Cliente de Windows 8.1 x64, x86 x64, x86 x64, x86

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.