Partager via


Nouveautés de PowerShell 7.2

PowerShell 7.2 est la prochaine version de maintenance à long terme (LTS) basée sur .NET 6.0.

PowerShell 7.2 comprend les fonctionnalités, les mises à jour et les changements cassants suivants.

  • Nouveaux packages d’installation universels pour la plupart des distributions Linux prises en charge
  • Prise en charge de Microsoft Update sur Windows
  • 2 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
  • 7 fonctionnalités expérimentales promues en standard et 1 supprimées
  • Séparation de DSC de PowerShell 7 pour permettre des améliorations futures
  • Plusieurs changements majeurs pour améliorer l’utilisation

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

Mises à jour d’installation

Consultez les instructions d’installation de votre système d’exploitation préféré :

De plus, PowerShell 7.2 prend en charge les versions ARM64 de Windows et macOS et 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, nous avons créé des packages d’installation distincts pour chaque version prise en charge de CentOS, RHEL, Debian et Ubuntu. Le package d’installation universel combine huit packages différents en un, 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 que PowerShell fonctionne.

Support Microsoft Update pour Windows

PowerShell 7.2 ajoute la prise en charge de Microsoft Update. Lorsque 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 Entreprises, WSUS, SCCM ou la boîte de dialogue WU interactive dans Paramètres.

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

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

Fonctionnalités expérimentales

Les fonctionnalités expérimentales suivantes sont désormais des fonctionnalités standard dans cette version :

La fonctionnalité expérimentale suivante a été ajoutée dans cette version :

  • PSNativeCommandArgumentPassing : lorsque 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 - Autoriser la personnalisation des couleurs ANSI des informations de fichier.

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

Pour plus d’informations sur les fonctionnalités expérimentales, consultez Using Experimental Features.

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 les correctifs de bogues et améliorent la facilité d’utilisation.

  • 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)
  • Ajoutez des complétions pour les mots-clés d'aide basés sur les 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 des prédictions correspondantes à partir de l’historique de l’utilisateur.

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

Set-PSReadLineOption -PredictionSource History

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

Le module PSDesiredStateConfiguration a été supprimé du package PowerShell 7.2 et est maintenant publié dans PowerShell Gallery. Cela permet au module PSDesiredStateConfiguration d’être développé indépendamment de PowerShell et les utilisateurs peuvent combiner et faire correspondre les versions de PowerShell et 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 ou vous pouvez installer la version 3 (ou ultérieure) de PSDesireStateConfiguration qui contient des différences significatives.

Mises à jour du moteur

  • Ajouter la fonction LoadAssemblyFromNativeMemory pour charger des assemblies en mémoire à partir d’un hôte PowerShell natif par awakecoding · Pull request #14652

Dernières modifications et améliorations

  • PsDesiredStateConfiguration a été supprimé du package PowerShell 7.2
  • Rendre les packages PowerShell Linux deb et RPM universels (#15109)
  • Fonctionnalité expérimentale PSNativeCommandArgumentPassing: Utiliser ArgumentList pour l’appel 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 -Depth (#13692)
  • Supprimer l’alias D du commutateur -Directory CL-General #15171
  • Améliorer la détection des types de valeurs mutables (#12495)
  • Restreindre New-Object en mode NoLanguage sous verrouillage (#14140)
  • Appliquer la configuration de refus AppLocker avant la configuration de contournement de la stratégie d’exécution (#15035)
  • Remplacez FileSystemInfo.Target d’un CodeProperty par un AliasProperty qui pointe vers FileSystemInfo.LinkTarget (#16165)