Nieuw in PowerShell Core 6.2
De PowerShell Core 6.2-release is gericht op prestatieverbeteringen, oplossingen voor fouten en kleinere cmdlet- en taalverbeteringen die de kwaliteit verbeteren. Bekijk onze gedetailleerde wijzigingenlogboeken op GitHub voor een volledige lijst met verbeteringen.
Experimentele functies
Eerder hebben we ondersteuning ingeschakeld voor experimentele functies. In de versie 6.2 hebben we vier experimentele functies om uit te proberen. Geef feedback zodat we verbeteringen kunnen aanbrengen en kunnen bepalen of de functie de moeite waard is om te promoveren naar de basisstatus.
Gebruik Get-ExperimentalFeature
om een lijst met beschikbare experimentele functies op te halen. U kunt deze functies in- of uitschakelen met Enable-ExperimentalFeature
en Disable-ExperimentalFeature
.
Suggesties voor opdracht niet gevonden
Deze functie maakt gebruik van fuzzy overeenkomsten om suggesties te vinden voor opdrachten of cmdlets die u mogelijk verkeerd hebt getypt.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Voorbeeld
In dit voorbeeld is de naam van de verkeerd gespelde cmdlet fuzzy vergeleken met verschillende suggesties van zeer waarschijnlijk tot minst waarschijnlijk.
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.
Impliciete externe batchverwerking
Wanneer u impliciete externe communicatie in een pijplijn gebruikt, behandelt PowerShell elke opdracht in de pijplijn onafhankelijk. Objecten worden herhaaldelijk geserialiseerd en de-serialized
tussen de client en het externe systeem tijdens de uitvoering van de pijplijn.
Met deze functie analyseert PowerShell de pijplijn om te bepalen of de opdracht veilig kan worden uitgevoerd en op het doelsysteem aanwezig is. Als waar is, voert PowerShell de hele pijplijn op afstand uit en worden de resultaten alleen naar de client geserialiseerd.de-serializes
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Een echte test van Get-Process | Sort-Object
over localhost neemt af van 10-15 seconden tot 20-30 milliseconden. De functie hoeft alleen op de client te zijn ingeschakeld. Er zijn geen wijzigingen vereist op de server.
Tijdelijke schijf
Enable-ExperimentalFeature -Name PSTempDrive
Als u PowerShell Core op verschillende besturingssystemen gebruikt, zult u ontdekken dat de omgevingsvariabele voor het vinden van de tijdelijke map anders is in Windows, macOS en Linux. Met deze functie krijgt u een PSDrive met de naam Temp:
die automatisch wordt toegewezen aan de tijdelijke map voor het besturingssysteem dat u gebruikt.
Voorbeeld
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Houd er rekening mee dat systeemeigen bestandsopdrachten (zoals ls
op Linux) niet op de hoogte zijn van PSDrives en dit Temp:
station niet zien.
Uitbreiding van afkorting
PowerShell-cmdlets hebben naar verwachting beschrijvende zelfstandige naamwoorden. Dit resulteert in lange namen die moeilijker te typen zijn. Met deze functie kunt u alleen de hoofdletters van de cmdlet typen en tabvoltooiing gebruiken om een overeenkomst te vinden.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Voorbeeld
PS> i-arsavsf
Als u op Tab klikt en de Azure PowerShell Az-module hebt geïnstalleerd, wordt deze automatisch aangevuld met:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Notitie
Deze functie is bedoeld om interactief te worden gebruikt. Verkorte vormen van cmdlets kunnen niet worden uitgevoerd. Deze functie is geen vervanging voor aliassen.
Wijzigingen die fouten veroorzaken
- Herstel
-NoEnumerate
het gedrag inWrite-Output
om consistent te zijn met Windows PowerShell. (#9069) - Maak
Join-String -InputObject 1,2,3
resultaat gelijk aan1,2,3 | Join-String
resultaat (#8611) (Bedankt @sethvs!) - Toevoegen
-Stable
aanSort-Object
en gerelateerde tests (#7862) (Bedankt @KirkMunro!) - Cmdlet verbeteren
Start-Sleep
om fractionele seconden te accepteren (#8537) (bedankt @Prototyyppi!) - Wijzig hashtable om OrdinalIgnoreCase te
case-insensitive
gebruiken in alle culturen (#8566) - Fix LiteralPath in
Import-Csv
om te binden aanGet-ChildItem
uitvoer (#8277) (bedankt @iSazonov!) - Een kolom zonder naam wordt niet meer overgeslagen als er een dubbel scheidingsteken voor aanhalingstekens wordt gebruikt in
Import-Csv
(#7899) (bedankt @Topping!) Get-ExperimentalFeature
heeft-ListAvailable
geen switch meer (#8318)- De parameter Foutopsporing wordt nu ingesteld
$DebugPreference
op Doorgaan in plaats van Opvragen (#8195) (Bedankt @KirkMunro!) - Honor indien
-OutputFormat
opgegeven in niet-interactieve, omgeleide, gecodeerde opdracht die wordt gebruikt met pwsh (#8115) - Laad de assembly uit het basispad van de module voordat u probeert te laden vanuit de GAC (#8073)
- Tilde verwijderen uit Linux Preview-pakketten (#8244)
- Verwerking van verplaatsen van
-WorkingDirectory
vóór verwerking van profielen (#8079) - Voeg geen omgevingsvariabele toe
PATHEXT
op Unix (#7697) (bedankt @iSazonov!)
Bekende problemen
- Externe communicatie op Windows IOT ARM-platforms heeft een probleem met het laden van modules. Zie (#8053)
Algemene Updates en oplossingen
- Niet-hoofdlettergevoelige tabvoltooiing inschakelen voor bestanden en mappen op hoofdlettergevoelig bestandssysteem (#8128)
- Maak PSVersionInfo.PSVersion en PSVersionInfo.PSEdition openbaar (#8054) (bedankt @KirkMunro!)
- Type deductie toevoegen voor
$_
/$PSItem
incatch{ }
blokken (#8020) (bedankt @vexx32!) - Fix static method invocation type deductie (#8018) (Bedankt @SeeminglyScience!)
- Creatie afgeleide typen voor
Select-Object
,Group-Object
, PSObject en Hashtable (#7231) (bedankt@powercode!) - Ondersteuning voor aanroepmethode met
ByRef-like
typeparameters (#7721) - Het geval afhandelen waarbij het pad van de Windows PowerShell module zich al in het PSModulePath van de omgeving bevindt (#7727)
- Cmdlets inschakelen
SecureString
voor niet-Windows door de tekst zonder opmaak op te slaan (#9199) - Foutbericht in niet-Windows verbeteren bij het importeren van clixml met securestring (#7997)
- Parameter ReplyTo toevoegen aan
Send-MailMessage
(#8727) (bedankt @replicaJunction!) - Verouderd bericht toevoegen aan
Send-MailMessage
(#9178) - Oplossing
Restart-Computer
voor werken wanneerlocalhost
WinRM niet aanwezig is (#9160) - Fout
Start-Job
bij het genereren van een afsluitfout maken wanneer PowerShell wordt gehost (#9128) - Voeg C#-stijltypeversnellers en achtervoegsels toe voor ushort, uint, ulong en korte letterlijke waarden (#7813) (bedankt @vexx32!)
- Nieuwe achtervoegsels toegevoegd voor numerieke letterlijke waarden - zie about_Numeric_Literals (#7901) (bedankt) @vexx32!)
- Impactniveau correct rapporteren wanneer SupportsShouldProcess niet is ingesteld op 'true' (#8209) (bedankt @vexx32!)
- Problemen met aanvraagtekenset in web-cmdlets (#8742) oplossen (bedankt) @markekraus!)
- Probleem met web-cmdlets
100-continue
(#8679) oplossen (bedankt) @markekraus!) - Probleem met het blokkeren van bestanden met web-cmdlets (#7676) oplossen (bedankt) @Claustn!)
- Probleem met het parseren van codepagina's in
Invoke-RestMethod
(#8694) oplossen (bedankt) @markekraus!) - Herstructureren
ConvertTo-Json
om JsonObject.ConvertToJson beschikbaar te maken als een openbare API (#8682) - Configureerbare maximale diepte in
ConvertFrom-Json
met -Depth (#8199) (bedankt @louistio!) - Parameter EscapeHandling toevoegen in
ConvertTo-Json
cmdlet (#7775) (bedankt @iSazonov!) - Toevoegen
-CustomPipeName
aan pwsh enEnter-PSHostProcess
(#8889) - Het maken van relatieve symbolische koppelingen in Windows inschakelen met
New-Item
(#8783) - Windows-gebruikers in de ontwikkelaarsmodus toestaan om symlinks te maken zonder benodigde bevoegdheden (#8534)
- Accepteren inschakelen
Write-Information
$null
(#8774) - Oplossing
Get-Help
voor geavanceerde functies met MAML-help-inhoud (#8353) - PsTypeName-probleem
Get-Help
met -Parameter opgelost wanneer slechts één parameter is gedeclareerd (#8754) (bedankt @pougetat!) - Oplossing voor tokenberekening voor
Get-Help
uitgevoerd op ScriptBlock voor hulp bij opmerkingen. (#8238) (Bedankt @hubuk!) - Wijzig
Get-Help
de cmdlet -Parameter parameter zodat deze tekenreeksmatrices accepteert (#8454) (bedankt @sethvs!) - PAGER oplossen als het pad spaties bevat (#8571) (bedankt @pougetat!)
- Prompt toevoegen voor het gebruik van
less
in de functie 'help' om de gebruiker te instrueren hoe deze moet worden afgesloten (#7998) - Ondersteunings- enum- en tekentypen toevoegen in
Format-Hex
cmdlet (#8191) (bedankt @iSazonov!) - ShouldProcess verwijderen uit
Format-Hex
(#8178) - Nieuwe parameters Offset en Count toevoegen aan
Format-Hex
en de cmdlet herstructureren (#7877) (bedankt @iSazonov!) - Sta 'name' toe als aliassleutel voor 'label' in
ConvertTo-Html
, sta de vermelding 'width' toe als geheel getal (#8426) (bedankt @mklement0!) - Laat berekende eigenschappen op basis van scriptblock weer werken in
ConvertTo-Html
(#8427) (Bedankt @mklement0!) - Cmdlet
Join-String
toevoegen voor het maken van tekst op basis van pijplijninvoer (#7660) (bedankt @powercode!) - Fix
Join-String
cmdlet FormatString parameter logic (#8449) (bedankt @sethvs!) - Ga
Clear-Host
terug naar gebruiken$RAWUI
en wissen om te werken met externe communicatie (#8609) - Wijzig
Clear-Host
in gewoon aanroepen[console]::clear
en verwijder clear alias uit Unix (#8603) - Fix LiteralPath in
Import-Csv
om te binden aanGet-ChildItem
uitvoer (#8277) (bedankt @iSazonov!) - help-functie mag geen pager gebruiken voor AliasHelpInfo (#8552)
- Voeg toe
-UseMinimalHeader
aanStart-Transcript
om transcriptheader (#8402) te minimaliseren (bedankt) @lukexjeremy!) - Cmdlets en
Disable-ExperimentalFeature
toevoegenEnable-ExperimentalFeature
(#8318) - Alle cmdlets van PSDiagnostics weergeven als logman.exe beschikbaar is (#8366)
- Verwijder de parameter Persistent van
New-PSDrive
hetnon-Windows
platform (#8291) (bedankt @lukexjeremy!) - Ondersteuning toevoegen voor
cd +
(#7206) (Bedankt @bergmeister!) - Inschakelen
Set-Location -LiteralPath
om te werken met mappen met de naam - en + (#8089) Test-Path
retourneert$false
wanneer een lege waarde of$null
padwaarde (#8080) wordt gegeven (bedankt) @vexx32!)- Toestaan dat dynamische parameter wordt geretourneerd, zelfs als het pad niet overeenkomt met een provider (#7957)
- Ondersteuning
Get-PSHostProcessInfo
enEnter-PSHostProcess
op Unix-platforms (#8232) - Toewijzingen verminderen in
Get-Content
cmdlet (#8103) (bedankt @iSazonov!) - Leestoegang delen met andere hulpprogramma's tijdens het schrijven van inhoud inschakelen
Add-Content
(#8091) Get/Add-Content
genereert verbeterde fout bij het targeten van een container (#7823) (bedankt @kvprasoon!)- Parameters en
-NoUserOverrides
-ListAvailable
toevoegen-Name
aanGet-Culture
cmdlet (#7702) (Bedankt@iSazonov!) - Voeg een uniform kenmerk toe voor voltooiing van de parameter Encoding . (#7732) (Bedankt @ThreeFive-O!)
- Numerieke id's en de naam van geregistreerde codepagina's toestaan in coderingsparameters (#7636) (bedankt) @iSazonov!)
- Oplossing
Rename-Item -Path
met jokerteken (#7398) (Bedankt @kwkam!) - Wanneer het
Start-Transcript
bestand en het bestand bestaat, leeg bestand in plaats van te verwijderen (#8131) (Bedankt @paalbra!) - Maak
Add-Type
open source bestanden expliciet met FileAccess.Read en FileShare.Read (#7915) (Bedankt)@IISResetMe!) - Oplossing
Enter-PSSession -ContainerId
voor de nieuwste Versie van Windows (#7883) - Zorg ervoor dat de eigenschap NestedModules wordt ingevuld door
Test-ModuleManifest
(#7859) - Hoofdlettergebruik toevoegen
%F
aanGet-Date
-UFormat (#7630) (Bedankt @britishben!) - Oplossing
Set-Service -Status Stopped
voor het stoppen van services met afhankelijkheden (#5525) (bedankt @zhenggu!)