Búsqueda de sitios web

Actualización de la versión de PowerShell en Windows


Este artículo describe cómo actualizar Windows PowerShell a la última versión 5.1 y cómo instalar (actualizar) PowerShell Core 7.3. Actualmente hay dos ramas de PowerShell:

  • El Windows PowerShell clásico (la versión máxima es la 5.1, que ya no está en desarrollo);

  • La nueva plataforma PowerShell Core (la versión 7.3 ya está disponible).

Aunque la numeración de versiones de PowerShell continúa desde 5.1 (6.0, 6.1, 7.0, 7.1, etc.), son dos plataformas diferentes. Por lo tanto, la actualización de Windows PowerShell y PowerShell Core se tratará por separado.

PowerShell Core 7.x es la versión más compatible con el clásico Windows PowerShell. Esto significa que puede ejecutar fácilmente sus antiguos archivos de script y cmdlets de PS1 en PowerShell Core.

Actualización a Windows PowerShell 5.1

Windows PowerShell 5.1 ya está instalado de manera predeterminada en todas las versiones, comenzando con Windows 10 y Windows Server 2016.

Debe actualizar manualmente a PowerShell 5.1 para versiones anteriores (Windows 7/8.1 y Windows 2008 R2/2012). Por ejemplo, Windows Server 2012 R2 (Windows 8.1) tiene instalado PowerShell 4.0.

Intentemos actualizar la versión de Windows PowerShell a 5.1 en Windows Server 2012 R2.

Primero, verifique la versión actual de PowerShell (la captura de pantalla muestra que es PowerShell 4.0):

$PSVersionTable.PSVersion

Para actualizar su versión de PowerShell a 5.1, instale Windows Management Framework 5.1, que requiere .NET Framework 4.5.2 (o posterior). Asegúrese de que .NET 4.5.2 o superior esté instalado con este comando:

(Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release

En mi caso, la versión de lanzamiento

378675

significa que está instalada la versión 4.5.1 de .NET Framework. Entonces, tengo que descargar e instalar la última versión de .NET Framework 4.8 (aquí está el enlace al instalador fuera de línea: https://go.microsoft.com/fwlink/?linkid=2088631 —

ndp48-x86-x64-allos-enu.exe

).

Instale el paquete .NET 4.8 (deberá reiniciar su computadora):

Si instala WMF 5.1 sin .NET 4.5.2, algunas funciones de PowerShell no estarán disponibles.

Descargar WMF 5.1 para Windows Server 2012 R2 —

Win8.1AndW2K12R2-KB3191564-x64.msu

(https://go.microsoft.com/fwlink/?linkid=839516).

Instale Windows Management Framework 5.1 desde el archivo MSU.

Después de reiniciar el servidor, abra la consola powershell.exe y asegúrese de que la versión de PowerShell se haya actualizado a 5.1.

Si tiene Windows 7 o Windows Server 2008 R2 no compatible, puede actualizar la versión de PowerShell de 2.0 a 5.1 de la misma manera. Primero, instale .Net Framework 4.5.2 (o posterior), luego WMF 5.1 (los enlaces de descarga serán diferentes a los de Windows Server 2012 R2).

¿Cómo instalar o actualizar PowerShell Core 7?

PowerShell Core es multiplataforma y está en desarrollo activo (a diferencia de Windows PowerShell 5.1). En realidad, PowerShell Core es una nueva plataforma instalada en el sistema operativo junto con el clásico Windows PowerShell. Esto significa que no puede actualizar de PowerShell 5.1 a PowerShell Core 7.3. PowerShell 7.x se instala en su computadora por separado de Windows PowerShell 5.1 (en paralelo).

PowerShell Core 6.x y 7.x están disponibles en este momento. Se recomienda que siempre instale la última versión de PowerShell (actualmente 7.3) a menos que necesite compatibilidad especial con scripts heredados.

Hay varias formas de actualizar (instalar) la versión de PowerShell Core en Windows 10 y 11:

  • Use el instalador PowerShell Core MSI, que está disponible para descargar desde GitHub;

  • Usando el administrador de paquetes integrado de Windows 10/11 WinGet;

  • Uso de la tienda de Microsoft.

A continuación, usando el ejemplo de actualizar PowerShell Core a 7.3 en Windows 10 22H2, veremos todos estos métodos.

Actualización de PowerShell Core mediante la instalación de MSI

Si desea instalar PowerShell Core con el paquete MSI, vaya a la página del proyecto https://github.com/PowerShell/PowerShell y descargue el paquete de instalación para la versión de su sistema operativo. En el momento de escribir este artículo, la versión más reciente de PowerShell es v7.3.3, con fecha del 24 de febrero de 2023 (por ejemplo,

PowerShell-7.3.3-win-x64.msi

o

PowerShell-7.3.3-win-x86.msi

). Use solo versiones estables o LTS para un entorno de producción.

Descargue el archivo MSI e instálelo.

Están disponibles las siguientes opciones de instalación:

  • Agregue PowerShell a la variable de entorno de ruta

  • Registre el manifiesto de registro de eventos de Windows (se crea un registro de Visor de eventos separado para los eventos de PowerShell.

    %SystemRoot%\System32\Winevt\Logs\PowerShellCore%4Operational.evtx

    )

  • Habilitar PowerShell Remoting (habilita y configura WinRM para PowerShell Remoting)

  • Agregue el menú contextual 'Abrir aquí' al Explorador

  • Agregue el menú contextual 'Ejecutar con PowerShell 7' para archivos de PowerShell

A continuación, puede habilitar las actualizaciones automáticas de PowerShell Core a través de Windows Update/WSUS (consulte a continuación).

Para instalar PowerShell Core desde un paquete MSI usando SCCM/MDT/scripts en modo silencioso, puede usar un comando con los siguientes parámetros:

ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
ENABLE_PSREMOTING
REGISTER_MANIFEST
ADD_PATH
DISABLE_TELEMETRY
USE_MU

- use Microsoft Update para obtener actualizaciones de PSCore

ENABLE_MU

- permitir que PowerShell Core se actualice a través de Windows Update

Por ejemplo, el comando para una instalación silenciosa podría verse así:

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

Puede actualizar PowerShell directamente desde la consola. Para instalar o actualizar a la última versión de PowerShell Core, ejecute el siguiente comando:

iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

Este comando descarga el archivo MSI de PowerShell 7.3 de GitHub y luego inicia la instalación a través del instalador de MSI.

Cuando finaliza la instalación, aparece la ventana de PowerShell Core (pwsh.exe). Verifique la versión de PowerShell para asegurarse de que esté actualizada a PoSh 7.3.3.

Uso de WinGet Package Manager para instalar o actualizar PowerShell Core

Si tiene instalado el administrador de paquetes WinGet, puede instalar o actualizar su versión de PowerShell al último comando:

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

O bien, puede instalar una versión específica de PowerShell Core:

winget install --id=Microsoft.PowerShell -v "7.1.2" -e

Si tiene instalado el administrador de paquetes Chocolatey, use los comandos (para 5.1):

choco install powershell -y
choco upgrade powershell -y

o para PowerShell 7.x:

choco install pwsh -y
choco install pwsh -y

Tenga en cuenta los directorios predeterminados para diferentes versiones de PowerShell:

  • Windows PowerShell 5.1:

    $env:WINDIR\System32\WindowsPowerShell\v1.0
  • PowerShell Núcleo 6.x:

    $env:ProgramFiles\PowerShell\6
  • PowerShell Núcleo 7.x:

    $env:ProgramFiles\PowerShell\7

Si se instaló PowerShell 6.x en su computadora, el

$env:ProgramFiles\PowerShell\6

El directorio se elimina automáticamente cuando instala PowerShell 7.3.

Tenga en cuenta que el nombre del archivo ejecutable de PowerShell ha cambiado. En PowerShell Core, es c:\Program Files\PowerShell \pwsh.exe. Tiene su propio icono en el menú Inicio.

  • Para ejecutar Windows PowerShell basado en .NET Framework, el

    powershell.exe

    se utiliza el comando

  • Para ejecutar PowerShell Core basado en .NET Core, use el

    pwsh.exe

Esto significa que tiene Windows PowerShell 5.1 y PowerShell Core 7.3 instalados en su computadora.

Para encontrar la versión y compilación de PowerShell que está instalada en su dispositivo, puede verificar la versión del archivo pwsh.exe:

(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').Version

Así es como puede verificar la versión de un archivo en una computadora remota:

Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:\Program Files\PowerShell\7\pwsh.exe').Version}

Windows PowerShell proporciona un modo especial de compatibilidad con versiones anteriores que le permite ejecutar una versión anterior de PowerShell incluso si tiene instaladas versiones más nuevas. Puede usar el siguiente comando para ejecutar una versión específica del ejemplo de PowerShell, 4.0):

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 4

Instale PowerShell Core en Windows 10 y 11 a través de Microsoft Store

En Windows 10 y 11, puede instalar o actualizar PowerShell a través de Microsoft Store. Puede buscar manualmente la aplicación PowerShell en la Tienda o usar este enlace.

También puede usar WinGet para instalar la versión Store de PowerShell:

winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D

La ventaja de instalar PowerShell Core desde Microsoft Store es que App Store verifica automáticamente su versión instalada de PowerShell e instala automáticamente las actualizaciones a medida que están disponibles.

Para verificar que ha instalado la versión Store de PowerShell Core, use el comando:

Get-AppPackage Microsoft.PowerShell

El paquete Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe está instalado en este ejemplo.

Sin embargo, también existen inconvenientes por el hecho de que dicha instancia de PowerShell se ejecutará en un entorno de espacio aislado.

Puede descargar el archivo de la aplicación APPX/MSIX e instalarlo mediante el

Add-AppxPackage

cmdlet (o como se describe en el artículo "Reparación de Microsoft Store").

Instalación/actualización de PowerShell Core en equipos remotos

Considere dos escenarios para instalar o actualizar PowerShell Core en varias computadoras remotas.

Implementación de PowerShell Core con directiva de grupo

Puede usar la directiva de grupo para implementar y actualizar centralmente PowerShell Core en un dominio de Active Directory. Utilice las características del GPO para implementar paquetes MSI en equipos de dominio.

  1. Descargue el archivo de instalación MSI de PowerShell y cópielo en el directorio SYSVOL del controlador de dominio;

  2. Abra la Consola de administración de políticas de grupo de dominio (

    gpmc.msc

    ), cree un nuevo GPO y vincúlelo a la OU con computadoras y servidores;

  3. Vaya a la sección de GPO Configuración del equipo -> Configuración de software, cree un nuevo paquete y especifique la ruta al archivo de instalación de PowerShell MSI en la carpeta SYSVOL del dominio (utilice la ruta UNC);

    Para orientar con mayor precisión su política a los dispositivos de dominio, puede utilizar los filtros GPO WMI.

  4. Para actualizar la configuración de la política de grupo para la instalación del software, debe reiniciar las computadoras. La nueva versión de PowerShell se instalará en todas las computadoras al inicio.

¿Cómo actualizar PowerShell en una computadora remota desde el símbolo del sistema?

Puede usar la línea de comandos para actualizar PowerShell en una computadora remota.

  • El primer método utiliza un instalador MSI en una carpeta de red compartida para actualizar PowerShell de forma remota en una computadora:

    Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\\mun-fs01\install\PowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
  • El siguiente script selecciona todas las computadoras habilitadas que ejecutan Windows 10 desde el dominio de Active Directory y comienza a descargar e instalar PowerShell Core en cada una de ellas:

    $ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"'
    ForEach ($computer in $ADcomputers) {
    Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"}
    }

    Debe tener el módulo Active Directory PowerShell instalado en la computadora para usar el cmdlet GetADComputer.

Tenga cuidado al usar los comandos remotos de PowerShell al conectarse a equipos remotos (con el

Enter-PSSession

y

Invoke-Command

cmdlet). Si necesita conectarse a un punto final de PowerShell 7, debe usar el comando:

Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"

De lo contrario, se conectará al extremo de PowerShell Remoting 5.1.

La forma más común de actualizar PowerShell Core en las distribuciones de Linux es usar el administrador de paquetes nativo.

Actualización de PowerShell a través de Windows Update o WSUS

Antes de PowerShell Core 7.2, pwsh.exe no se actualizaba automáticamente. Solo hubo una notificación en la consola después del lanzamiento de una nueva versión:

A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.3

A partir de la versión 7.2, PowerShell Core admite actualizaciones automáticas a través de Windows Update (Microsoft Update, Windows Update for Business, servidor WSUS interno o SCCM). Para hacer esto, debe habilitar las opciones apropiadas durante la instalación del paquete MSI.

  • El primero permite que PowerShell se actualice automáticamente usando cualquier canal disponible (habilita el parámetro de registro UseMU =1 en el

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShellCore

    llave)

  • La segunda casilla de verificación le permitirá recibir actualizaciones para todo el software de Microsoft, no solo para Windows. Si esta opción está deshabilitada, no recibirá actualizaciones de PowerShell de Microsoft Update, pero puede recibirlas de su WSUS/SCCM (el parámetro de registro registeredwithAU=1 en

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Services\7971F918-A847-4430-9279-4A52D1EFE18D

    )

Verifique que la opción Recibir actualizaciones para otros productos de Microsoft cuando actualice Windows ahora está habilitada en Configuración -> Actualización y seguridad -> Actualización de Windows -> Opciones avanzadas.

Un administrador puede configurar la instalación de actualizaciones opciones a través de la configuración de directiva de grupo.

Ahora, cuando haga clic en el botón Buscar actualizaciones o ejecute un análisis de actualizaciones a través del módulo PSWindowsUpdate, también recibirá actualizaciones para PowerShell Core.

Artículos relacionados