Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dne 11. listopadu 2020 jsme oznámili obecnou dostupnost PowerShellu 7.1. Na základě základů vytvořených v PowerShell 7.0 se naše úsilí zaměřilo na komunitní problémy a zahrnuje řadu vylepšení a oprav. Jsme odhodláni zajistit, aby PowerShell zůstal stabilní a výkonnou platformou.
PowerShell 7.1 obsahuje následující funkce, aktualizace a zásadní změny.
- PSReadLine 2.1.0, který zahrnuje Predictive IntelliSense
- PowerShell 7.1 byl publikován v Microsoft Store
- Instalační balíčky aktualizované pro nové verze OS s podporou ARM64
- 4 nové experimentální funkce a 2 experimentální funkce propagované do hlavního proudu
- Několik zásadních změn pro zlepšení použitelnosti
Úplný seznam změn najdete v CHANGELOG v úložišti GitHub.
PSReadLine 2.1.0
PowerShell 7.1 také zahrnuje PSReadLine 2.1.0. Tato verze zahrnuje Predictive IntelliSense. Pro více informací o knize Predictive IntelliSense viz oznámení na blogu PowerShell.
Instalační balíček Microsoft Store
PowerShell 7.1 byl publikován v Microsoft Store. PowerShell verzi najdete na webu Microsoft Store nebo v aplikaci Store ve Windows.
Výhody balíčku Microsoft Store:
- Automatické aktualizace integrované přímo do Windows
- Integruje se s dalšími mechanismy distribuce softwaru, jako jsou Intune a SCCM
Poznámka:
Žádná nastavení konfigurace na úrovni systému uložená v nelze $PSHOME upravit. To zahrnuje konfiguraci WSMAN. To brání vzdáleným relacím v připojení k instalacím PowerShellu založeným na Storu. Podporují se konfigurace na uživatelské úrovni a SSH pro vzdálenou správu.
Další instalatéři
Pro více informací o podporovaných operačních systémech a životním cyklu podpory najdete up-toLifecycle podpory PowerShell.
Zkontrolujte instrukce k instalaci vašeho preferovaného operačního systému:
Navíc PowerShell 7.1 podporuje varianty ARM32 a ARM64 pro Debian, Ubuntu a ARM64 Alpine Linux.
Ačkoliv nejsou oficiálně podporovány, komunita také poskytla balíčky pro Arch a Kali Linux.
Poznámka:
Debian 10+, CentOS 8+, Ubuntu 20.04, Alpine a Arm momentálně nepodporují vzdálené připojení WinRM. Podrobnosti o nastavení vzdáleného přístupu založeného na SSH najdete v článku PowerShell Remoting over SSH.
Experimentální funkce
Další informace o experimentálních funkcích naleznete v tématu Použití experimentálních funkcí.
Následující experimentální funkce jsou nyní běžnými součástí tohoto vydání:
V tomto vydání byly přidány následující experimentální funkce:
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
- PowerShell 7.1 rozšiřuje tuto experimentální funkci o přidání parametru Runspace ke všem
*-PSBreakpointcmdletům. Parametr Runspace specifikuje objekt Runspace , který má interagovat s breakpointy ve specifikovaném runspace.
- PowerShell 7.1 rozšiřuje tuto experimentální funkci o přidání parametru Runspace ke všem
PSNativePSPathResolution – Tato funkce umožňuje předávat cesty poskytovatelů PowerShellu nativním příkazům, které nepodporují syntaxi cest PowerShell.
PSCultureInvariantReplaceOperator - Když levý operand v operátorovém příkazu
-replacenení řetězec, tento operand je převeden na řetězec. S touto funkcí zapnutou konverze nepoužívá nastavení kultury pro převod řetězců.PSSubsystemPluginModel vytváří základy pro podporu budoucích prediktivních IntelliSense pluginů.
Změny a vylepšení
Chování porovnání řetězců změněno v .NET 5.0
PowerShell 7.1 je postaven na .NET 5.0, který přinesl následující zásadní změnu:
Od .NET 5.0 porovnání řetězců invariantní kulturou ignorují řídicí znaky, které nejsou tisknuté.
Například následující dva řetězce jsou považovány za totožné:
# Escape sequence "`a" is Ctrl-G or [char]7 'Food' -eq "Foo`ad"TrueOprava
$?, aby nebyla při$falsenativním zápisu příkazu (stderr#13395)Je běžné, že nativní příkazy zapisují bez
stderrúmyslu signalizovat selhání. Tato změna$?je nastavena$falsepouze tehdy, když nativní příkaz má také nenulový výstupní kód. Tato změna nesouvisí s experimentální vlastnostíPSNotApplyErrorActionToStderr.Neovlivňuj
$ErrorActionPreferencestderrvýstup nativních příkazů (#13361)Je běžné, že nativní příkazy zapisují bez
stderrúmyslu signalizovat selhání. S touto změnoustderrje výstup stále zachycen v objektech ErrorRecord , ale runtime již neplatí$ErrorActionPreference, pokud ErrorRecord pochází z nativního příkazu.Přejmenovat
-FromUnixTimena-UnixTimeSecondsonGet-Date, aby bylo možné zadat unixový čas (#13084) (Díky @aetos382!)Parametr
-FromUnixTimebyl přidán během 7.1-preview.2. Parametr byl přejmenován, aby lépe odpovídal datovému typu. Tento parametr má celočíselnou hodnotu, která se od 1. ledna 1970 v čase 0:00:00 vyjadřuje v sekundách.Tento příklad převádí unixový čas (reprezentovaný počtem sekund od 1970-01-01 0:00:00) na DateTime.
Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AMPovolte explicitně specifikovaný pojmenovaný parametr nahrazovat stejný parametr ze splatting hashtable (#13162)
Touto změnou jsou pojmenované parametry ze splattingu přesunuty na konec seznamu parametrů tak, že jsou omezeny až po omezení všech explicitně specifikovaných pojmenovaných parametrů. Přiřazení parametrů pro jednoduché funkce nevyvolává chybu, když nelze najít specifikovaný pojmenovaný parametr. Neznámé pojmenované parametry jsou vázány na
$argsparametr jednoduché funkce. Přesun splattingu na konec seznamu argumentů mění pořadí, v jakém se parametry objevují v$args.Například:
function SimpleTest { param( $Name, $Path ) "Name: $Name; Path: $Path; Args: $args" }V předchozím chování MyPath není vázaný na to
-Path, protože je to třetí argument v seznamu argumentů. ## Takže to nakonec skončí nacpané do '$args' spolu sBlah = "World"PS> $hash = @{ Name = "Hello"; Blah = "World" } PS> SimpleTest @hash "MyPath" Name: Hello; Path: ; Args: -Blah: World MyPathS touto změnou jsou argumenty z přesunuty
@hashna konec seznamu argumentů. MyPath se stává prvním argumentem v seznamu, takže je vázána na-Path.PS> SimpleTest @hash "MyPath" Name: Hello; Path: MyPath; Args: -Blah: WorldNastavte parametr
-Qualifierpřepínání nepolohovaný proSplit-Path(#12960) (Díky @yecril71pl!)Vyřešit pracovní adresář jako doslovnou cestu pro
Start-Processpřípady, kdy není specifikován (#11946) (Díky @NoMoreFood!)Nastavte
-OutFileparametr ve webových cmdletech, aby fungovaly například-LiteralPath(#11701) (Díky @iSazonov!)Opravit řetězec pro parametry
BigIntegerčíselných literálů (#11634) (Díky @vexx32!)Ve Windows vytváří
Start-Processprocesní prostředí se všemi proměnnými prostředí z aktuální relace, přičemž pomocí-UseNewEnvironmentvytvoří nové výchozí procesní prostředí (#10830) (Díky @iSazonov!)Neobalujte výsledek návratu při
PSObjectpřevodu aScriptBlockna delegáta (#10619)Když je a
ScriptBlockpřevedeno na typ delegáta pro použití v kontextu C#, zabalení výsledku do aPSObjectpřináší zbytečné potíže:- Když je hodnota převedena na typ vrácení delegáta, v podstatě se rozbalí
PSObject. Takže toPSObjectnení potřeba. - Když je typ návratu delegáta ,
objectje zabalený do aPSObjectcož ztěžuje práci v kódu C#.
Po této změně je vrácený objekt základním objektem.
- Když je hodnota převedena na typ vrácení delegáta, v podstatě se rozbalí