Nouveautés de PowerShell 7.2

PowerShell 7.2 est la prochaine version de LTS (Long Term Servicing) basée sur .NET 6.0.

PowerShell 7.2 comprend les fonctionnalités, les mises à jour et les modifications importantes suivantes.

  • Nouveaux packages de programme d’installation universels pour la plupart des distributions Linux prises en charge
  • Prise en charge de Microsoft Update sur Windows
  • Deux nouvelles fonctionnalités expérimentales
    • Amélioration de la prise en charge du passage d’argument de commande native
    • Prise en charge des couleurs des informations de fichier ANSI FileInfo
  • Amélioration de la saisie semi-automatique via la touche Tab
  • PSReadLine 2.1 avec la fonctionnalité IntelliSense prédictive
  • Sept fonctionnalités expérimentales promues au niveau général et une fonctionnalité supprimée
  • Séparation de la fonctionnalité DSC de PowerShell 7 pour permettre des améliorations futures
  • Divers changements cassants pour améliorer l’utilisabilité

Pour obtenir la liste complète des changements, consultez le Journal des modifications dans le référentiel GitHub.

Mises à jour d’installation

Consultez les instructions d’installation pour votre système d’exploitation par défaut :

En outre, PowerShell 7.2 prend en charge les versions ARM64 de Windows et macOS, ainsi que les versions ARM32 et ARM64 de Debian et Ubuntu.

Pour obtenir des informations à jour sur les systèmes d’exploitation pris en charge et le cycle de vie de support, consultez Cycle de vie du support de PowerShell.

Nouveaux packages d’installation universelle pour les distributions Linux

Auparavant, des packages d’installation distincts étaient créés pour chaque version prise en charge de CentOS, RHEL, Debian et Ubuntu. Le package de programme d’installation universel combine huit packages différents en un seul, ce qui simplifie l’installation sur Linux. Le package universel installe les dépendances nécessaires pour la distribution cible et crée les modifications spécifiques à la plateforme pour faire fonctionner PowerShell.

Prise en charge de Microsoft Update pour Windows

PowerShell 7.2 ajoute la prise en charge de Microsoft Update. Quand vous activez cette fonctionnalité, vous obtenez les dernières mises à jour de PowerShell 7 dans votre flux de gestion Windows Update (WU) traditionnel, que ce soit avec Windows Update pour Entreprise, WSUS, SCCM ou la boîte de dialogue WU interactive dans Paramètres.

Le package MSI PowerShell 7.2 comprend les options de ligne de commande suivantes :

  • USE_MU – cette propriété a deux valeurs possibles :
    • 1 (par défaut) : opte pour la mise à jour par le biais de Microsoft Update ou WSUS
    • 0 - n’opte pas pour les mises à jour via Microsoft Update ou WSUS
  • ENABLE_MU
    • 1 (par défaut) : opte pour l’utilisation des mises à jour automatiques Microsoft Update ou Windows Update
    • 0 - n’opte pas pour l’utilisation des mises à jour automatiques via Microsoft Update ou Windows Update

Fonctionnalités expérimentales

Les fonctionnalités expérimentales suivantes sont maintenant devenues des fonctionnalités standard dans cette version :

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

Les fonctionnalités expérimentales suivantes ont été ajoutées dans cette version :

  • PSNativeCommandArgumentPassing : quand cette fonctionnalité expérimentale est activée, PowerShell utilise la propriété ArgumentList de l’objet StartProcessInfo plutôt que notre mécanisme actuel de reconstruction d’une chaîne lors de l’appel d’un exécutable natif. Cette fonctionnalité ajoute une nouvelle variable automatique $PSNativeCommandArgumentPassing qui vous permet de sélectionner le comportement au moment de l’exécution.

  • PSAnsiRenderingFileInfo : autorise la personnalisation des couleurs des informations de fichier ANSI.

  • PSLoadAssemblyFromNativeCode : expose une API pour permettre le chargement d’assembly à partir du code natif.

Pour plus d’informations sur les fonctionnalités expérimentales, consultez Utilisation des fonctionnalités expérimentales.

Amélioration de la saisie semi-automatique via la touche Tab

PowerShell 7.2 intègre plusieurs améliorations pour la saisie semi-automatique via la touche Tab. Ces modifications incluent des résolutions de bogues et améliorent la convivialité.

  • Correction de la complétion via la touche Tab pour les rubriques À propos* non localisées (#15265) (merci à @MartinGC94)
  • Correction de la projection traitée en tant que paramètre positionnel dans les complétions (#14623) (merci à @MartinGC94)
  • Ajout de complétions pour les mots clés de l’aide basés sur des commentaires (#15337) (merci à @MartinGC94)
  • Ajout de la complétion pour les instructions Requires (#14596) (merci à @MartinGC94)
  • Ajout de la complétion via la touche Tab pour le paramètre View des cmdlets Format-* (#14513) (merci à @iSazonov)

PSReadLine 2.1 avec IntelliSense prédictive

Introduction de PSReadLine 2.1 CommandPrediction API pour établir une infrastructure en vue de fournir des prédictions pour la saisie semi-automatique de ligne de commande. L’API permet aux utilisateurs de découvrir, de modifier et d’exécuter des commandes complètes en fonction de prédictions correspondantes à partir de l’historique de l’utilisateur.

La fonctionnalité IntelliSense prédictive est désactivée par défaut. Pour activer les prédictions, exécutez la commande suivante :

Set-PSReadLineOption -PredictionSource History

Séparation de la fonctionnalité DSC de PowerShell 7 pour permettre des améliorations futures

Le module PSDesiredStateConfiguration a été supprimé du package PowerShell 7.2. Il est maintenant publié dans PowerShell Gallery. Cela permet au module PSDesiredStateConfiguration d’être développé indépendamment de PowerShell. Les utilisateurs peuvent combiner et associer les versions de PowerShell et de PSDesiredStateConfiguration pour leur environnement. Pour installer PSDesiredStateConfiguration 2.0.5 à partir de PowerShell Gallery :

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

Important

Veillez à inclure le paramètre MaximumVersion. Vous pouvez également installer la version 3 (ou une version ultérieure) de PSDesireStateConfiguration qui contient des différences significatives.

Mises à jour du moteur

  • Ajout d’une fonction LoadAssemblyFromNativeMemory pour charger des assemblys en mémoire à partir d’un hôte PowerShell natif par awakecoding · Demande de tirage (pull request) #14652

Dernières modifications et améliorations

  • PSDesiredStateConfiguration a été supprimé du package PowerShell 7.2
  • Les packages PowerShell Linux deb et RPM sont désormais universels (#15109)
  • Fonctionnalité expérimentale PSNativeCommandArgumentPassing : utiliser ArgumentList pour l’appel de l’exécutable natif (#14692)
  • Vérifier que -PipelineVariable est défini pour toutes les cmdlets de script (#12766)
  • Émettre un avertissement si ConvertTo-Json dépasse la valeur de profondeur (#13692)
  • Supprimer l’alias D de -Directory switch CL-General #15171
  • Améliorer la détection des types valeurs mutables (#12495)
  • Restreindre New-Object en mode NoLanguage sous verrouillage (#14140)
  • Appliquer la configuration AppLocker Deny avant la configuration de contournement de la stratégie d’exécution (#15035)
  • Passer FileSystemInfo.Target d’un CodeProperty à un AliasProperty qui pointe vers FileSystemInfo.LinkTarget (#16165)