Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
PowerShell 7.3 est la prochaine version stable qui repose sur .NET 7.0.
PowerShell 7.3 comprend les fonctionnalités, les mises à jour et les changements cassants suivants.
Dernières modifications et améliorations
- Dans cette version, les API Windows ont été mises à jour ou supprimées pour des raisons de conformité, ce qui signifie que PowerShell 7.3 ne s’exécute pas sur Windows 7. Bien que Windows 7 ne soit plus pris en charge, les builds précédentes pouvaient s’exécuter sur Windows 7.
- PowerShell Direct pour Hyper-V est pris en charge uniquement sur Windows 10 version 1809 et ultérieure.
Test-Connectionne fonctionne plus en raison d’un changement cassant intentionnel dans .NET 7. Ce problème est suivi sous le no 17018.- Ajout du bloc
cleanau bloc de script comme homologue àbegin,processetendpour faciliter le nettoyage des ressources (#15177) - Remplacer la valeur par défaut de
$PSStyle.OutputRenderingpar Hôte Out-StringetOut-Fileconservent l’entrée de chaîne inchangée (#17455)- Déplacement de la définition de données de type de System.Security.AccessControl.ObjectSecurity vers le module Microsoft.PowerShell.Security (#16355) (merci @iSazonov!)
- Avant cette modification, un utilisateur n’a pas besoin d’importer explicitement le module Microsoft.PowerShell.Security pour utiliser les propriétés de code définies pour une instance de System.Security.AccessControl.ObjectSecurity.
- Après cette modification, un utilisateur doit importer explicitement le module Microsoft.PowerShell.Security afin d’utiliser ces propriétés de code et méthodes de code.
Amélioration de la saisie semi-automatique par tabulation
- PowerShell 7.3 inclut PSReadline 2.2.6 qui active la fonctionnalité IntelliSense Prédictive par défaut. Pour plus d’informations, consultez about_PSReadLine.
- Corriger la saisie semi-automatique via la touche Tab dans le bloc de script spécifié pour
ValidateScriptAttribute. (#14550) (merci @MartinGC94!) - Ajout de la saisie semi-automatique par tabulation pour les étiquettes de boucle après
break/continue(#16438) (merci @MartinGC94!) - Amélioration de la saisie semi-automatique des tables de hachage dans plusieurs scénarios (#16498) (merci @MartinGC94!)
- Projection de paramètres
- Paramètre Arguments pour
Invoke-CimMethod - Paramètre FilterHashtable pour
Get-WinEvent - Paramètre Property pour les cmdlets CIM
- Suppression des doublons dans les scénarios de saisie semi-automatique des membres
- Prise en charge des barres obliques dans la saisie semi-automatique des partages réseau (chemin d’accès UNC) (#17111) (merci @sba923!)
- Amélioration de la saisie semi-automatique des membres (#16504) (merci @MartinGC94!)
- Priorisation de la saisie semi-automatique ValidateSet par rapport aux énumérations pour les paramètres (#15257) (merci @MartinGC94!)
- Ajout de la prise en charge de l’inférence de type pour les méthodes génériques avec des paramètres de type (#16951) (merci @MartinGC94!)
- Amélioration de l’inférence de type et de la saisie semi-automatique (#16963) (merci @MartinGC94!)
- Permet d’afficher les méthodes dans les résultats de complétion pour
ForEach-Object -MemberName - Empêche la complétion sur les expressions qui renvoient void comme
([void]("")) - Permet aux constructeurs de classe non par défaut de s’afficher lorsque la complétion de classe est basée sur l’AST
- Permet d’afficher les méthodes dans les résultats de complétion pour
- Amélioration de l’inférence de type pour
$_(#17716) (merci @MartinGC94!) - Correction de l’inférence de type pour ICollection (#17752) (merci @MartinGC94!)
- Suppression des accolades empêchée lors de la saisie semi-automatique des variables (#17751) (merci @MartinGC94!)
- Ajout de la saisie semi-automatique pour les expressions d’index pour les dictionnaires (#17619) (merci @MartinGC94!)
- Correction de la saisie semi-automatique du type pour les jetons d’attribut (#17484) (merci @MartinGC94!)
- Amélioration de la saisie semi-automatique dans l’onglet de paramètre dynamique (#17661) (merci @MartinGC94!)
- Liaison des paramètres positionnels évitée lors de la saisie semi-automatique du paramètre avant la valeur (#17693) (merci @MartinGC94!)
Amélioration de la gestion des erreurs
- Définition
$?correcte pour l’expression de commande avec des redirections (#16046) - Correction d’une erreur de conversion en utilisant
$PSNativeCommandUseErrorActionPreference(#15993) - La gestion des erreurs de la commande native respecte optionnellement
ErrorActionPreference(#15897) - Spécification du chemin de l’exécutable comme
TargetObjectpour un code de sortie non nul ErrorRecord (#16108) (merci @rkeithhill!)
Améliorations apportées à la session et à la communication à distance
- Ajout de
-Optionsaux commandes PSRP via SSH pour autoriser le passage direct des options OpenSSH (#12802) (merci @BrannenGH!) - Ajout d’un paramètre
-ConfigurationFileàpwshpour autoriser le démarrage d’un nouveau processus avec la configuration de session définie dans un fichier.pssc(#17447) - Ajout de la prise en charge de l’utilisation de
New-PSSessionConfigurationFilesur des plateformes non Windows (#17447)
Applets de commande mises à jour
- Ajout du paramètre
-HttpVersionaux cmdlets web (#15853) (merci @hayhay27!) - Ajout de la prise en charge des cmdlets web pour les étiquettes d’entrée ouvertes (#16193) (merci @farmerau!)
- Correction de
ConvertTo-Json -Depthpour autoriser une valeur maximale de 100 (#16197) (merci @KevRitchie!) - Amélioration de la gestion des variables lors de l’appel de
Invoke-Commandavec l’expression$using:(#16113) (merci @dwtaber!) - Ajout de
-StrictModeàInvoke-Commandpour autoriser la spécification du mode strict quand la commande est appelée en local (#16545) (merci @Thomas-Yu!) - Ajout du bloc
cleanau bloc de script comme homologue àbegin,processetendpour faciliter le nettoyage des ressources (#15177) - Ajout du commutateur
-Amendedà la cmdletGet-CimClass(#17477) (merci @iSazonov) - Modification de
ConvertFrom-Json -AsHashtablepour utiliser la table de hachage ordonnée (#17405) - Suppression des séquences d’échappement ANSI dans les chaînes avant l’envoi vers
Out-GridView(#17664) - Ajout du paramètre Millisecondes à
New-TimeSpan(#17621) (merci @NoMoreFood!) - Affichage des paramètres facultatifs lors de l’affichage des définitions de méthode et des surcharges (#13799) (merci @eugenesmlv!)
- Autorisation de l’exécution des commandes même si le répertoire de travail actuel n’existe plus (#17579)
- Ajout de la prise en charge du protocole HTTPS avec
Set-AuthenticodeSignature -TimeStampServer(#16134) (merci @Ryan-Hutchison-USAF!) - Affichage des nombres décimaux dans une table à l’aide de la culture actuelle (#17650)
- Ajout de l’accélérateur de type ordonné pour OrderedDictionary (#17804) (merci @fflaten!)
- Ajout de
find.exeau comportement de liaison d’argument hérité pour Windows (#17715) - Ajout d’un commutateur
-noprofileloadtimeà pwsh (#17535) (merci @rkeithhill!)
Pour obtenir la liste complète des changements, consultez le Journal des modifications dans le référentiel GitHub.
Fonctionnalités expérimentales
Dans PowerShell 7.3, les fonctionnalités expérimentales suivantes sont devenues standard :
PSAnsiRenderingFileInfo- Cette fonctionnalité ajoute le membre$PSStyle.FileInfoet active la coloration de types de fichiers spécifiques.PSCleanBlock- Ajoute le bloccleanau bloc de script comme pair àbegin,processetendpour faciliter le nettoyage des ressources.PSAMSIMethodInvocationLogging– Étend les données envoyées à AMSI pour inspection afin d’inclure tous les appels des membres de la méthode .NET.PSNativeCommandArgumentPassing - PowerShell utilise désormais la propriété ArgumentList de l’objet StartProcessInfo plutôt que l’ancien mécanisme de reconstruction d’une chaîne lors de l’appel d’un exécutable natif.
PowerShell 7.3.1 ajoute
sqlcmd.exeà la liste des commandes natives dans Windows qui utilisent le styleLegacypour la transmission d’arguments.PSExec- Ajoute la nouvelle applet de commandeSwitch-Process(aliasexec) afin de fournir la compatibilité avecexecpour les systèmes non-Windows.PowerShell 7.3.1 a remplacé l’alias
execpar une fonction qui wrappeSwitch-Process. La fonction vous permet de passer les paramètres à la commande native qui ont pu être liés à tort au paramètre WithCommand.
PowerShell 7.3 intègre les fonctionnalités expérimentales suivantes :
- PSNativeCommandErrorActionPreference - Ajoute la variable
$PSNativeCommandUseErrorActionPreferencepour permettre aux erreurs générées par les commandes natives d’être des erreurs PowerShell.
PowerShell 7.3 a supprimé les fonctionnalités expérimentales suivantes :
- La fonctionnalité expérimentale
PSNativePSPathResolutionn’est plus prise en charge. - La fonctionnalité expérimentale
PSStrictModeAssignmentn’est plus prise en charge.
Pour plus d’informations sur les fonctionnalités expérimentales, consultez Utilisation des fonctionnalités expérimentales.