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.
La version PowerShell Core 6.2 s’est concentrée sur les améliorations de performances, la correction de bugs, ainsi que sur des améliorations plus petites de cmdlets et de langage qui améliorent la qualité. Pour voir la liste complète des améliorations, consultez nos journaux de modifications détaillés sur GitHub.
Fonctionnalités expérimentales
Auparavant, nous activions le support des fonctionnalités expérimentales. Dans la version 6.2, nous avons quatre fonctionnalités expérimentales à essayer. Merci de nous donner votre avis afin que nous puissions apporter des améliorations et décider si la fonctionnalité mérite d’être promoue au statut grand public.
Utilisez Get-ExperimentalFeature pour obtenir une liste des fonctionnalités expérimentales disponibles. Vous pouvez activer ou désactiver ces fonctionnalités avec Enable-ExperimentalFeature et Disable-ExperimentalFeature.
Suggestions de commandement non trouvé
Cette fonctionnalité utilise le jumelage flou pour trouver des suggestions de commandes ou de commandes que vous auriez pu mal taper.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Example
Dans cet exemple, le nom du cmdlet mal orthographié est flou correspondant à plusieurs suggestions allant du plus probable au moins probable.
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
Traitement implicite à distance
Lorsqu’on utilise la distance implicite dans un pipeline, PowerShell traite chaque commande du pipeline de manière indépendante. Les objets sont systérialisés à plusieurs reprises et de-serialized entre le client et le système distant lors de l’exécution du pipeline.
Grâce à cette fonctionnalité, PowerShell analyse le pipeline pour déterminer si la commande est sûre à exécuter et si elle existe sur le système cible. Lorsque c’est vrai, PowerShell exécute l’ensemble du pipeline à distance et ne sérialise que les de-serializes résultats vers le client.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Un test réel de Get-Process | Sort-Object surlocalhost passe de 10-15 secondes à 20-30 millisecondes. La fonctionnalité n’a besoin d’être activée que sur le client. Aucun changement n’est nécessaire sur le serveur.
Entraînement temporaire
Enable-ExperimentalFeature -Name PSTempDrive
Si vous utilisez PowerShell Core sur différents systèmes d’exploitation, vous découvrirez que la variable d’environnement pour trouver le répertoire temporaire est différente sous Windows, macOS et Linux ! Avec cette fonctionnalité, vous obtenez un appel Temp:PSDrive qui est automatiquement mappé au dossier temporaire du système d’exploitation que vous utilisez.
Example
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Sachez que les commandes de fichiers natives (comme ls sous Linux) ne connaissent pas PSDrives et ne verront pas ce Temp: disque.
Expansion des abréviations
Les cmdlets PowerShell sont censés comporter des noms descriptifs. Cela donne des noms longs et plus difficiles à taper. Cette fonction vous permet simplement de taper les caractères majuscules du cmdlet et d’utiliser la complétion d’onglet pour trouver une correspondance.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Example
PS> i-arsavsf
Si vous appuyez sur tab et que le module Azure PowerShell Az est installé, il s’autocomplétera vers :
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Note
Cette fonctionnalité est conçue pour être utilisée de manière interactive. Les formes abrégées de cmdlets ne peuvent pas être exécutées. Cette fonctionnalité ne remplace pas les alias.
Changements significatifs
- Corrigez
-NoEnumeratele comportementWrite-Outputpour qu’il soit cohérent avec Windows PowerShell. (#9069) - Rendez
Join-String -InputObject 1,2,3le résultat égal au1,2,3 | Join-Stringrésultat (#8611) (Merci @sethvs!) - Ajouter
-StabledesSort-Objecttests et des tests associés (#7862) (Merci @KirkMunro!) - Améliorer
Start-Sleeple cmdlet pour accepter les fractions de seconde (#8537) (Merci @Prototyyppi!) - Changer le hachage pour utiliser OrdinalIgnoreCase dans
case-insensitivetoutes les cultures (#8566) - Corrigez LiteralPath pour
Import-Csvlier àGet-ChildItemla sortie (#8277) (Merci @iSazonov!) - On ne saute plus une colonne sans nom si un délimiteur de guillemets doubles est utilisé dans
Import-Csv(#7899) (Merci @Topping!) -
Get-ExperimentalFeatureOn n’a-ListAvailableplus de switch (#8318) - Le paramètre de débogage est désormais placé
$DebugPreferencesur Continue au lieu d’Inquire (#8195) (Merci @KirkMunro!) - Honor
-OutputFormatsi spécifié dans une commande non interactive, redirigée, encodée utilisée avec pwsh (#8115) - Chargez l’assemblage depuis le chemin de la base du module avant d’essayer de charger depuis le GAC (#8073)
- Supprimer tilde des paquets de prévisualisation Linux (#8244)
- Déplacer le traitement avant
-WorkingDirectoryle traitement des profils (#8079) - Ne pas ajouter
PATHEXTde variable d’environnement sur Unix (#7697) (Merci @iSazonov!)
Problèmes connus
- Le remot à distance sur les plateformes Windows IOT ARM présente un problème pour charger les modules. Voir (#8053)
Mises à jour générales et corrections
- Activez la complétion d’onglet insensible à la majuscule pour les fichiers et dossiers sur le système de fichiers sensible à la majuscule (#8128)
- Rendez PSVersionInfo.PSVersion et PSVersionInfo.PSEdition publics (#8054) (Merci @KirkMunro!)
- Inférence de type d’ajout pour
$_/$PSItemincatch{ }blocks (#8020) (Merci @vexx32!) - Corriger l’inférence statique d’invocation de méthode (#8018) (Merci @SeeminglyScience!)
- Créer des types inférés pour
Select-Object,Group-Object, PSObject et Hashtable (#7231) (Merci @powercode!) - Méthode d’appel de support avec
ByRef-likeparamètres de type (#7721) - Gérer le cas où le chemin du module Windows PowerShell est déjà dans le PSModulePath de l’environnement (#7727)
- Activez
SecureStringles commandes pour les non-Windows en stockant le texte clair (#9199) - Message d’erreur d’amélioration sur non-Windows lors de l’importation de clixml avec securestring (#7997)
- Ajout du paramètre ReplyTo à
Send-MailMessage(#8727) (Merci @replicaJunction!) - Ajouter le message Obsolète à
Send-MailMessage(#9178) - Correctif
Restart-Computerà réparerlocalhostlorsque WinRM n’est pas présent (#9160) - Erreur de terminaison de projection lorsque
Start-JobPowerShell est hébergé (#9128) - Ajoutez des accélérateurs de type C# et des suffixes pour les lettres ushort, uint, ulong et short (#7813) (Merci @vexx32!)
- Ajout de nouveaux suffixes pour les littéraux numériques - voir about_Numeric_Literals (#7901) (Merci @vexx32!)
- Signaler correctement le niveau d’impact lorsque SupportsShouldProcess n’est pas réglé sur « vrai » (#8209) (Merci @vexx32!)
- Problèmes de jeu de caractères pour la demande de correction dans les commandets web (#8742) (Merci @markekraus!)
- Correction Expect
100-continueproblème avec les commandes Web (#8679) (Merci @markekraus!) - Correction du problème de blocage de fichiers avec les commandets web (#7676) (Merci @Claustn!)
- Correction du problème d’analyse des pages de code dans
Invoke-RestMethod(#8694) (Merci @markekraus!) - Refactorisation
ConvertTo-Jsonpour exposer JsonObject.ConvertToJson en tant qu’API publique (#8682) - Ajoutez une profondeur
ConvertFrom-Jsonmaximale configurable avec -Depth (#8199) (Merci @louistio!) - Ajouter le paramètre EscapeHandling dans
ConvertTo-Jsonle cmdlet (#7775) (Merci @iSazonov!) - Ajouter
-CustomPipeNameà pwsh etEnter-PSHostProcess(#8889) - Activer la création de liens symboliques relatifs sur Windows avec
New-Item(#8783) - Permettre aux utilisateurs Windows en mode développeur de créer des liens symbétiques sans élévation (#8534)
- Autoriser
Write-Informationl’acceptation$null(#8774) - Correction
Get-Helppour fonctions avancées avec contenu d’aide MAML (#8353) - Corriger
Get-Helple problème de PSTypeName avec -Parameter lorsqu’un seul paramètre est déclaré (#8754) (Merci @pougetat!) - Correction du calcul de jeton exécutée
Get-Helpsur ScriptBlock pour obtenir de l’aide aux commentaires. (#8238) (Merci @hubuk!) - Changer
Get-Helple paramètre cmdlet -Parameter pour qu’il accepte les tableaux de chaînes (#8454) (Merci @sethvs!) - Résoudre le PAGER si son chemin contient des espaces (#8571) (Merci @pougetat!)
- Ajouter une invite à l’utilisation de
lessdans la fonction « aide » pour indiquer à l’utilisateur comment quitter (#7998) - Ajoutez les types d’enum et de personnages de support dans
Format-Hexle cmdlet (#8191) (Merci @iSazonov!) - Supprimer ShouldProcess de
Format-Hex(#8178) - Ajouter de nouveaux paramètres de décalage et de comptage et
Format-Hexrefactorer le cmdlet (#7877) (Merci @iSazonov!) - Autoriser « name » comme clé alias pour « label » dans
ConvertTo-Html, autoriser l’entrée « width » à être un entier (#8426) (Merci @mklement0!) - Faites fonctionner à nouveau les propriétés calculées basées sur des blocs de script dans
ConvertTo-Html(#8427) (Merci @mklement0!) - Ajouter un cmdlet
Join-Stringpour créer du texte à partir de l’entrée pipeline (#7660) (Merci @powercode!) - Fix
Join-Stringcmdlet FormatString parameter logic (#8449) (Merci @sethvs!) - Revenir
Clear-Hostà utiliser$RAWUIet dégager au travail sur le télécommandement (#8609) - Changer
Clear-Hosten simplement appelé[console]::clearet supprimer l’alias clair d’Unix (#8603) - Corrigez LiteralPath pour
Import-Csvlier àGet-ChildItemla sortie (#8277) (Merci @iSazonov!) - la fonction d’aide ne devrait pas utiliser le pager pour AliasHelpInfo (#8552)
- Ajouter
-UseMinimalHeadertoStart-Transcriptpour minimiser l’en-tête de transcription (#8402) (Merci @lukexjeremy!) - Ajouter
Enable-ExperimentalFeatureetDisable-ExperimentalFeaturecommander (#8318) - Exposez tous les cmdlets de PSDiagnostics si logman.exe est disponible (#8366)
- Supprimer le paramètre Persister de
New-PSDrivelanon-Windowsplateforme (#8291) (Merci @lukexjeremy!) - Ajouter un support pour
cd +(#7206) (Merci @bergmeister!) - Activer
Set-Location -LiteralPathla collaboration avec des dossiers nommés - et + (#8089) -
Test-Pathrevient$falselorsqu’on a une valeur vide ou$nullde chemin (#8080) (Merci @vexx32!) - Permettre que le paramètre dynamique soit retourné même si le chemin ne correspond à aucun fournisseur (#7957)
- Support
Get-PSHostProcessInfoetEnter-PSHostProcesssur plateformes Unix (#8232) - Réduire les allocations dans
Get-Contentle cmdlet (#8103) (Merci @iSazonov!) - Permettre
Add-Contentde partager l’accès à la lecture avec d’autres outils lors de la rédaction de contenu (#8091) -
Get/Add-Contentaffiche une erreur améliorée lors du ciblage d’un conteneur (#7823) (Merci @kvprasoon!) - Ajouter
-Nameles paramètres ,-NoUserOverrideset-ListAvailableàGet-Culturecmdlet (#7702) (Merci @iSazonov!) - Ajouter un attribut unifié pour compléter le paramètre d’encodage . (#7732) (Merci @ThreeFive-O!)
- Autoriser les identifiants numériques et le nom des pages de codes enregistrées dans les paramètres d’encodage (#7636) (Merci @iSazonov!)
- Correction
Rename-Item -Pathavec personnage joker (#7398) (Merci @kwkam!) - Lorsque l’utilisation
Start-Transcriptd’un fichier existe, le fichier est vide plutôt que supprimé (#8131) (Merci @paalbra!) - Créez
Add-Typedes fichiers open source avec FileAccess.Read et FileShare.Read explicitement (#7915) (Merci @IISResetMe!) - Correctif
Enter-PSSession -ContainerIdpour la dernière version de Windows (#7883) - Assurez-vous que la propriété NestedModules soit peuplée par
Test-ModuleManifest(#7859) - Ajouter
%Fun boîtier àGet-Date-UFormat (#7630) (Merci @britishben!) - Correction
Set-Service -Status Stoppedpour arrêter les services avec dépendances (#5525) (Merci @zhenggu!)