Nouveautés de PowerShell 7.3
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-Connection
ne fonctionne plus en raison d’un changement cassant intentionnel dans .NET 7. Ce problème est suivi sous le no 17018.- Ajout du bloc
clean
au bloc de script comme homologue àbegin
,process
etend
pour faciliter le nettoyage des ressources (#15177) - Remplacer la valeur par défaut de
$PSStyle.OutputRendering
par Hôte Out-String
etOut-File
conservent 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
TargetObject
pour un code de sortie non nul ErrorRecord (#16108) (merci @rkeithhill!)
Améliorations apportées à la session et à la communication à distance
- Ajout de
-Options
aux commandes PSRP via SSH pour autoriser le passage direct des options OpenSSH (#12802) (merci @BrannenGH!) - Ajout d’un paramètre
-ConfigurationFile
àpwsh
pour 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-PSSessionConfigurationFile
sur des plateformes non Windows (#17447)
Applets de commande mises à jour
- Ajout du paramètre
-HttpVersion
aux 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 -Depth
pour autoriser une valeur maximale de 100 (#16197) (merci @KevRitchie!)@rkeithhill!) - Amélioration de la gestion des variables lors de l’appel de
Invoke-Command
avec l’expression$using:
(#16113) (merci @dwtaber!) - Ajout de
-StrictMode
àInvoke-Command
pour autoriser la spécification du mode strict quand la commande est appelée en local (#16545) (merci @Thomas-Yu!) - Ajout du bloc
clean
au bloc de script comme homologue àbegin
,process
etend
pour faciliter le nettoyage des ressources (#15177) - Ajout du commutateur
-Amended
à la cmdletGet-CimClass
(#17477) (merci @iSazonov) - Modification de
ConvertFrom-Json -AsHashtable
pour 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.exe
au 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.FileInfo
et active la coloration de types de fichiers spécifiques.PSCleanBlock
- Ajoute le blocclean
au bloc de script comme pair àbegin
,process
etend
pour 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 styleLegacy
pour la transmission d’arguments.PSExec
- Ajoute la nouvelle applet de commandeSwitch-Process
(aliasexec
) afin de fournir la compatibilité avecexec
pour les systèmes non-Windows.PowerShell 7.3.1 a remplacé l’alias
exec
par 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
$PSNativeCommandUseErrorActionPreference
pour 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
PSNativePSPathResolution
n’est plus prise en charge. - La fonctionnalité expérimentale
PSStrictModeAssignment
n’est plus prise en charge.
Pour plus d’informations sur les fonctionnalités expérimentales, consultez Utilisation des fonctionnalités expérimentales.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour