Pide tu presupuesto ya!

Actualización de PowerShell 7: un tutorial completo

¿Está listo para realizar la actualización de PowerShell 7 y obtener acceso a todas las funciones nuevas? Si es asi, el articulo es para ti.

Cuando se lanzó PowerShell 6, se suponía que llevaría una versión básica de PowerShell a todas las plataformas (PowerShell Core). Con PowerShell 7 (la última versión de PowerShell al momento de escribir este artículo), ahora buscamos que todas las plataformas sean iguales en el PowerShell que pueden ofrecer (tanto Windows PowerShell como PowerShell Core).

En este artículo, aprenderá cómo realizar una actualización de PowerShell 7 manualmente y cómo automatizar el proceso de actualización en el futuro con implementaciones masivas a través de GPO y PowerShell Remoting.

Al momento de escribir este artículo, la versión actual de PowerShell 7 es la Vista previa 3. La mayoría de las referencias en este artículo se aplicarán a esta versión.

Cómo realizar la actualización de PowerShell 7 en una máquina

Al igual que PowerShell Core 6.0, el proceso para instalar PowerShell Core 7 es similar. Veamos algunas formas diferentes de instalar PowerShell 7 en una sola máquina.

Antes de comenzar la actualización de PowerShell 7, asegúrese de revisar los requisitos previos. Notarás que estos son los mismos requisitos para PowerShell versión 6.

  • El tiempo de ejecución universal C debe ser instalado
  • Marco de administración de Windows (WMF) 4.0 o posterior – solo si tiene una versión de Windows 7 o Windows Server 2008R2. En versiones posteriores de Windows, como Windows 8.1, Windows 10 y Windows Server 2016, no se requiere WMF.

Instalación manual de PowerShell 7

Para iniciar la actualización de PowerShell 7, descargue PowerShell 7. Para hacerlo, vaya a la página de lanzamientos de GitHub para PowerShell y busque la versión que desea instalar. Para este artículo, estamos usando el PowerShell 7.0.0 vista previa 3 liberar. En Windows, desplácese un poco hacia abajo y descargue el PowerShell-7.0.0-preview.3-win-x86.msi Paquete MSI y ejecútelo.

Pantalla de bienvenida de instalación de PowerShell 7

El asistente le hará algunas preguntas sencillas, como dónde desea instalar PowerShell. Al realizar una actualización de PowerShell 7, es importante utilizar un directorio de instalación independiente si desea ejecutar varias versiones de PowerShell en paralelo.

El asistente también le preguntará si desea registrar PowerShell en el PATH Variable ambiental. Agregar la carpeta de instalación de PowerShell a su RUTA facilita la apertura de PowerShell 7 después de una actualización de PowerShell 7.

Otra opción es Registre PowerShell en el manifiesto de registro de eventos de Windows. Cuando está habilitada, esta opción aprovecha el registro sólido que se incluye con esta versión de PowerShell.

A continuación, le pregunta si desea habilitar PowerShell Remoting desde el principio, lo que puede ayudar con todas las tareas remotas.

Finalmente, se le preguntará si desea Agregue menús contextuales ‘Abrir aquí’ al Explorador. Esta opción le permite hacer clic derecho en cualquier carpeta cuando navega en el Explorador de Windows y abrir una ventana de PowerShell dentro de ese directorio de trabajo.

Aunque los dos últimos son completamente opcionales y dependen de usted, le recomiendo encarecidamente altamente Recomendamos habilitar los dos primeros, así:

Elegir los valores predeterminados en la instalación de PowerShell 7
Elegir los valores predeterminados en la instalación de PowerShell 7

Una vez que haya respondido todas sus preguntas, haga clic en Próximo y comenzará la instalación.

Abrir PowerShell 7

Una vez instalado, puede ejecutar PowerShell 7 abriendo cualquier terminal de línea de comando y escribiendo pwsh-preview.

Tenga en cuenta que no utilizará este nombre de comando una vez que la versión 7 de PowerShell salga de la fase de “vista previa”. Una vez que salga de la vista previa, podrá iniciar PowerShell 7 con pwsh.

Instalación de PowerShell 7 con PowerShell

El líder del equipo de Microsoft PowerShell, Steve Leetuiteó una forma práctica de instalar PowerShell 7 (actualización de PowerShell 7) utilizando PowerShell Invoke-RestMethod cmdlet. Este fragmento de código utiliza el comando para consultar el repositorio de PowerShell GitHub, descargar un script de instalación que luego descarga e instala PowerShell 7 con una sola línea.

A continuación encontrará la sintaxis para hacerlo. Abra una consola de Windows PowerShell y ejecute el siguiente resumen.

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

Este fragmento de código utiliza PowerShell Invoke-Expression cmdlet (iex en el resumen) para aceptar una cadena y ejecutarla como código de PowerShell. Esta cadena llama al Invoke-RestMethod cmdlet (irm en el resumen) para descargar el guión que Steve ha escrito. ¡Recomiendo encarecidamente utilizar el enlace y comprobar el código usted mismo antes de ejecutar este comando!

El fragmento luego pasa el UseMSI y Preview parámetros al script para obtener e instalar el último MSI.

Si desea ejecutar este script de forma completamente silenciosa y desatendida, puede utilizar el Quiet parámetro. Al momento de escribir este artículo, el Preview El parámetro todavía apunta a PowerShell 7 Preview 3.

Instalación de PowerShell 7 con un módulo

Otra forma de instalar PowerShell 7 es mediante Jeff Hicks‘Módulo de PowerShell llamado PSReleaseHerramientas. Este módulo, muy parecido al ingenioso de Steve, ayuda a mantener actualizada su versión de PowerShell.

Con dos líneas de PowerShell, puedes descargar el módulo con Install-Module y usando el Install-PSPreview comando que viene con el módulo PSRelaseTools, puede instalar la vista previa de PowerShell 7.

PS51> Install-Module -name PSReleaseTools -Force
PS51> Install-PSPreview -mode Quiet

Implementación de PowerShell 7 en una organización

Hay un par de opciones cuando se trata de implementar PowerShell 7 a escala. Veamos dos formas comunes de hacerlo realidad.

Implementación de PowerShell 7 con un GPO

Puede automatizar sus implementaciones de actualización de PowerShell 7 en muchas máquinas utilizando objetos de política de grupo. PowerShell es fácil de implementar a través de GPO, ya que se adapta a otras tecnologías de Microsoft mientras está empaquetado como MSI. Cuando implemente esto a través de GPO, querrá tener en cuenta algunas cosas.

Utilice un GPO basado en computadora

Primero asegúrese de utilizar una política basada en computadora y no una política basada en usuario. Puede Lea más sobre las diferencias entre estas dos políticas aquí.. En los servidores, la mayoría de las veces, los usuarios no inician sesión de forma interactiva, lo que inicia una implementación.

Si está implementando PowerShell 7 en muchos servidores, querrá que la implementación se realice independientemente de la interacción del usuario con la máquina.

Configurar un recurso compartido de archivos de red

También asegúrese de que el recurso compartido de red en el que colocó el MSI de PowerShell 7 tenga el permiso adecuado establecido para permitir que todos los servidores de su entorno accedan a él. Aunque está fuera del alcance de este artículo, puedes Encuentre más aquí sobre la creación de archivos compartidos..

Configurar el GPO

Luego creará su GPO con los siguientes pasos:

  • Coloque el MSI en el recurso compartido de archivos asignado al que puedan acceder sus computadoras.
  • Cree un GPO inicial dentro del Consola de administración de políticas de grupo. Puede Lea más sobre los GPO de inicio aquí
  • Una vez creado el GPO, ábrelo y navega hasta Configuracion de Computadora –> Configuración de software.
  • Botón derecho del ratón Instalación de software luego seleccione Nuevo –> Paquete.
  • En el cuadro de diálogo, agregue la ruta UNC completa al MSI. Por ejemplo, si un archivo compartido llamado carpeta esta en nombre del servidorf, el camino sería \\servidor.nombre\carpeta\powershell-7.msi
  • Hacer clic Abierto –> Asignado –> DE ACUERDO.

Adjunte el GPO a las OU requeridas

Una vez creado, adjunte el GPO a las unidades organizativas requeridas. Vuelva a consultar en un par de horas y la implementación debería estar prácticamente completa.

Verificar el progreso de la instalación de GPO

Si prefiere un enfoque más práctico para verificar la implementación de su Política de grupo, consulte este breve script a continuación que creará un informe con el objeto de Política de grupo aplicado a las computadoras en una unidad organizativa específica.

Asegúrese de cambiar el nombre distinguido de la unidad organizativa (OU=Controladores de dominio,DC=mylab,DC=local) a su unidad organizativa.

Tenga en cuenta que puede ejecutar esto en un controlador de dominio o en una computadora unida a un dominio con el módulo PowerShell ActiveDirectory instalado.

$computers = Get-ADComputer -Filter * -SearchBase 'OU=Domain Controllers, DC=mylab, DC=local'
ForEach ($computer in $computers) {
    Get-GPResultantSetOfPolicy -Computer $computer -ReportType HTML -Path c:\temp\$computer.html
}

Si desea comprobar servidores específicos, el siguiente comando le resultará útil. Se comunica con una computadora remota ($computer) y verifica la versión de PowerShell instalada en esa computadora con $PSVersionTable.PSVersion.

PS> Invoke-Command  -Computername $computer -Scriptblock {$PSVersionTable.psversion}

Por último, si encuentra alguna computadora a la que no se le haya aplicado la política de grupo, puede ejecutar el siguiente comando y forzará que la política de grupo se actualice en la computadora de destino:

Implementación de PowerShell 7 con PowerShell Remoting

La comunicación remota de PowerShell es una excelente manera de realizar rápidamente actualizaciones de PowerShell 7 en todo su entorno. Aunque esto puede parecer un poco meta, PowerShell es un lenguaje de scripting lo suficientemente robusto como para ayudar con la instalación de su reemplazo.

Antes de comenzar, asegúrese de que la comunicación remota de PowerShell esté habilitada y de que haya configurado los permisos adecuados para ejecutar comandos remotos en su entorno. Puedes encontrar un guía sobre cómo habilitar PSRemoting a través de GPO aquí.

Como conoce la frase que para instalar PowerShell se cubrió anteriormente, deberá “envolver” ese comando en un bloque de secuencia de comandos y decirle al Invoke-Command comando para ejecutarlo en una o más máquinas remotas.

A continuación se muestra un ejemplo de cómo recorrer una lista de computadoras almacenadas en el $computers matriz y luego ejecutando el instalar-powershell.ps1 guión en todos ellos.

$creds = $(Get-Credential)
ForEach ($computer in $computers) {
    Invoke-Command -ComputerName $computer -Credential $creds {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Preview -Quiet"}
}

Resumen

Hay muchas razones para mantener actualizada su versión de PowerShell, al menos en su propia máquina, si no en su entorno de producción. Podrá utilizar las funciones más recientes, aprovechar las mejoras de rendimiento e incluso asegurarse de que su código anterior no se rompa en las versiones más nuevas.

Como puede ver, existen muchas formas de descargar e instalar nuevas versiones de PowerShell. Elija el método de actualización de PowerShell 7 que mejor se adapte a su entorno y requisitos.

Otras lecturas

Written by

Leave a comment