Compartir a través de


Novedades de PowerShell 7.2

PowerShell 7.2 es la próxima versión de mantenimiento a largo plazo (LTS) basada en .NET 6.0.

PowerShell 7.2 incluye las siguientes características, actualizaciones y cambios importantes.

  • Nuevos paquetes de instalador universal para la mayoría de las distribuciones de Linux compatibles
  • Soporte técnico de Microsoft Update en Windows
  • 2 nuevas características experimentales
    • Compatibilidad mejorada con el paso de argumentos de comandos nativos
    • Compatibilidad con los colores de FileInfo ANSI
  • Finalizaciones de pestañas mejoradas
  • PSReadLine 2.1 con IntelliSense predictivo
  • 7 características experimentales promocionadas a estándar y 1 quitadas
  • Separación de DSC de PowerShell 7 para habilitar mejoras futuras
  • Varios cambios importantes para mejorar la usabilidad.

Para obtener una lista completa de los cambios, consulte el registro de cambios en el repositorio de GitHub.

Actualizaciones de instalación

Compruebe las instrucciones de instalación de su sistema operativo preferido:

Además, PowerShell 7.2 admite versiones ARM64 de Windows y macOS y ARM32 y ARM64 de Debian y Ubuntu.

Para más información actualizada sobre los sistemas operativos compatibles y el ciclo de vida de soporte técnico, consulte Ciclo de vida de soporte técnico de PowerShell.

Nuevos paquetes de instalación universal para distribuciones de Linux

Anteriormente, creamos paquetes de instalador independientes para cada versión compatible de CentOS, RHEL, Debian y Ubuntu. El paquete del instalador universal combina ocho paquetes diferentes en uno, lo que simplifica la instalación en Linux. El paquete universal instala las dependencias necesarias para la distribución de destino y crea los cambios específicos de la plataforma para realizar el trabajo de PowerShell.

Compatibilidad de Microsoft Update con Windows

PowerShell 7.2 agrega compatibilidad con Microsoft Update. Al habilitar esta característica, obtendrá las actualizaciones más recientes de PowerShell 7 en el flujo de administración tradicional de Windows Update (WU), independientemente de si se trata de Windows Update para empresas, WSUS, SCCM o el cuadro de diálogo interactivo de WU 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): opta por actualizar a través de Microsoft Update o WSUS
    • 0: no participar en la actualización a través de Microsoft Update o WSUS
  • ENABLE_MU
    • 1 (valor predeterminado): opta por usar Microsoft Update las actualizaciones automáticas o Windows Update
    • 0: no opte por usar Microsoft Update, las actualizaciones automáticas ni Windows Update

Características experimentales

Las siguientes características experimentales ahora son características estándar en esta versión:

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck: consulte Import-PowerShellDataFile
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering: consulte about_ANSI_Terminals
  • PSAnsiProgress: consulte sobre_terminales_ANSI
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

En esta versión se agregó la siguiente característica experimental:

  • PSNativeCommandArgumentPassing: cuando esta característica experimental está habilitada, PowerShell usa la propiedad argumentList del objeto StartProcessInfo en lugar de nuestro mecanismo actual de reconstruir una cadena al invocar un ejecutable nativo. Esta característica agrega una nueva variable automática $PSNativeCommandArgumentPassing que permite seleccionar el comportamiento en tiempo de ejecución.

  • PSAnsiRenderingFileInfo: permite la personalización de color ANSI de la información del archivo.

  • PSLoadAssemblyFromNativeCode: expone una API para permitir la carga de ensamblados desde código nativo.

Para obtener más información sobre las características experimentales, vea Using Experimental Features.

Finalizaciones de pestañas mejoradas

PowerShell 7.2 incluye varias mejoras en la finalización de pestañas. Estos cambios incluyen correcciones de errores y mejoran la facilidad de uso.

  • Se ha corregido la finalización con tabulación para temas acerca de* no localizados (n.º 15265) (¡Gracias @MartinGC94)!)
  • Se ha corregido la plataforma que se trata como parámetro posicional en las finalizaciones (n.º 14623) (¡Gracias @MartinGC94)!)
  • Se han agregado finalizaciones para palabras clave de ayuda basadas en comentarios (n.º 15337) (¡Gracias @MartinGC94)!)
  • Se ha agregado la finalización para instrucciones Requires (n.º 14596) (¡Gracias @MartinGC94)!)
  • Se ha agregado la finalización con tabulación para el parámetro View de los cmdlets Format-* (n.º 14513) (¡Gracias @iSazonov)!)

IntelliSense predictivo de PSReadLine 2.1

PSReadLine 2.1 introdujo CommandPrediction API que establecen un marco para proporcionar predicciones para la finalización de la línea de comandos. La API permite a los usuarios detectar, editar y ejecutar comandos completos en función de las predicciones coincidentes del historial del usuario.

El IntelliSense predictivo está deshabilitado por defecto. Para habilitar las predicciones, ejecute el siguiente comando:

Set-PSReadLineOption -PredictionSource History

Separación de DSC de PowerShell 7 para habilitar mejoras futuras

El módulo PSDesiredStateConfiguration se quitó del paquete de PowerShell 7.2 y ahora se publica en la Galería de PowerShell. Esto permite desarrollar el módulo PSDesiredStateConfiguration independientemente de PowerShell y los usuarios pueden mezclar y coincidir versiones de PowerShell y PSDesiredStateConfiguration para su entorno. Para instalar PSDesiredStateConfiguration 2.0.5 desde la Galería de PowerShell:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Importante

Asegúrese de incluir el parámetro MaximumVersion o podría instalar la versión 3 (o superior) de PSDesireStateConfiguration que contiene diferencias significativas.

Actualizaciones del motor

  • Se ha agregado la función LoadAssemblyFromNativeMemory para cargar ensamblados en memoria desde un host nativo de PowerShell mediante la configuración dinámica. Solicitud de incorporación de cambios #14652

Cambios importantes y mejoras

  • PsDesiredStateConfiguration se quitó del paquete de PowerShell 7.2
  • Hacer que los paquetes deb y RPM de PowerShell Linux sean universales (15109)
  • Característica experimental PSNativeCommandArgumentPassing: usar ArgumentList para la invocación ejecutable nativa (14692)
  • Asegúrese de que -PipelineVariable está establecido para todos los resultados de los cmdlets de script (#12766).
  • Emita una advertencia si el valor de ConvertTo-Json supera el valor de -Depth (#13692)
  • Eliminar alias D del interruptor -Directory CL-General #15171
  • Mejora de la detección de tipos de valor mutable (12495)
  • Se restringe New-Object en modo NoLanguage en bloqueo (#14140).
  • Se aplica la configuración de denegación de AppLocker antes de la configuración de omisión de la directiva de ejecución (#15035).
  • Cambie FileSystemInfo.Target de CodeProperty a un AliasProperty que apunte a FileSystemInfo.LinkTarget (16165)