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.
PowerShell 7.0 je open-source, multiplatformní (Windows, macOS a Linux) edice PowerShellu, navržená pro správu heterogenních prostředí a hybridního cloudu.
V tomto vydání představujeme řadu nových funkcí, včetně:
- Paralelizace potrubí s
ForEach-Object -Parallel - Noví provozovatelé:
- Ternární operátor:
a ? b : c - Operátory řetězce potrubí:
||a&& - Nulové podmíněné operátory:
??a??=
- Ternární operátor:
- Zjednodušený a dynamický pohled na chyby a cmdlet pro
Get-Errorsnadnější zkoumání chyb - Kompatibilní vrstva, která umožňuje uživatelům importovat moduly v implicitní relaci Windows PowerShell
- Automatická oznámení o nové verzi
- Možnost volat DSC zdroje přímo z PowerShell 7 (experimentální)
Pro zobrazení úplného seznamu funkcí a oprav navštivte changelogy.
Kde mohu nainstalovat PowerShell?
PowerShell 7 v současnosti podporuje následující operační systémy na x64, včetně:
- Windows 8.1 a 10
- Windows Server 2012, 2012 R2, 2016 a 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
- Alpine Linux 3.8+
Navíc PowerShell 7.0 podporuje varianty ARM32 a ARM64 pro Debian, Ubuntu a ARM64 Alpine Linux.
Zkontrolujte instalační instrukce pro váš preferovaný operační systém Windows, macOS nebo Linux.
Ačkoliv nejsou oficiálně podporovány, komunita také poskytla balíčky pro Arch a Kali Linux.
Poznámka:
Debian 10 a CentOS 8 momentálně nepodporují vzdálené vysílání WinRM. Podrobnosti o nastavení vzdáleného přístupu založeného na SSH najdete v článku PowerShell Remoting over SSH.
Pro více informací o podporovaných operačních systémech a životním cyklu podpory najdete up-toLifecycle podpory PowerShell.
Spuštění PowerShell 7
PowerShell 7 se instaluje do adresáře samostatně od Windows PowerShell. To vám umožní spouštět PowerShell 7 vedle Windows PowerShell 5.1. Pro PowerShell 6.x je PowerShell 7 přímo instalovaný upgrade, který odstraní PowerShell 6.x.
- PowerShell 7 je nainstalován do
%programfiles%\PowerShell\7 - Složka
%programfiles%\PowerShell\7se přidá do$env:PATH
Instalační balíček PowerShell 7 aktualizuje předchozí verze PowerShell 6.x:
- PowerShell 6.x na Windows:
%programfiles%\PowerShell\6je nahrazen%programfiles%\PowerShell\7 - Linux:
/opt/microsoft/powershell/6je nahrazen/opt/microsoft/powershell/7 - macOS:
/usr/local/microsoft/powershell/6je nahrazeno/usr/local/microsoft/powershell/7
Poznámka:
Ve Windows PowerShell se spustitelný soubor pro spuštění PowerShellu jmenuje powershell.exe. Ve verzi 6 a výše je název spustitelného souboru změněn tak, aby podporoval paralelní spouštění. Nový spustitelný název pro spuštění PowerShell 7 je .pwsh.exe Preview verze zůstávají na místě místo pwsh-previewpwsh v 7-preview adresáři.
Zlepšená zpětná kompatibilita s Windows PowerShell
PowerShell 7.0 znamená přechod na .NET Core 3.1, což umožňuje výrazně větší zpětnou kompatibilitu s existujícími moduly Windows PowerShell. To zahrnuje mnoho modulů na Windows, které vyžadují GUI funkce jako Out-GridView a , Show-Commandstejně jako mnoho modulů pro správu rolí, které jsou součástí Windows.
Pro Windows je přidán nový parametr switche UseWindowsPowerShell do Import-Module. Tento switch vytváří proxy modul v PowerShell 7, který používá lokální proces Windows PowerShell k implicitnímu spuštění jakýchkoli cmdletů obsažených v tomto modulu. Pro více informací o Import-Module.
Pro více informací o tom, které moduly Microsoftu pracují s PowerShell 7.0, viz tabulka kompatibility modulů.
Paralelní provádění přidáno k ForEach-Object
Cmdlet ForEach-Object , který iteruje položky v kolekci, má nyní zabudovaný paralelizismus s novým parametrem Parallel .
Ve výchozím nastavení paralelní skriptové bloky používají aktuální pracovní adresář volajícího, který paralelní úkoly zahájil.
Tento příklad získává 50 000 záznamů z 5 systémových logů na lokálním počítači Windows:
$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'
$logEntries = $logNames | ForEach-Object -Parallel {
Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5
$logEntries.Count
50000
Parametr Parallel specifikuje blok skriptu, který běží paralelně pro každý název vstupního logu.
Nový parametr ThrottleLimit omezuje počet bloků skriptů běžících paralelně v daném okamžiku. Výchozí hodnota je 5.
Použijte proměnnou $_ k reprezentaci aktuálního vstupního objektu ve skriptním bloku. Použijte $using: scope k předání odkazů na proměnné do běžícího skriptového bloku.
Pro více informací o ForEach-Object.
Ternární operátor
PowerShell 7.0 zavádí ternární operátor, který se chová jako zjednodušený if-else příkaz.
Ternární operátor PowerShellu je úzce modelován ze syntaxe ternárních operátorů v C#:
<condition> ? <if-true> : <if-false>
Podmínkový výraz je vždy vyhodnocen a jeho výsledek převeden na Booleovskou hodnotu, aby se určilo, která větev se vyhodnocuje jako další:
- Výraz
<if-true>se spustí, pokud je výraz<condition>pravdivý. - Výraz
<if-false>se spustí, pokud je výraz<condition>false.
Například:
$message = (Test-Path $path) ? "Path exists" : "Path not found"
V tomto příkladu, pokud cesta existuje, pak je zobrazena cesta existuje . Pokud cesta neexistuje, zobrazí se Cesta nenalezena .
Pro více informací o If.
Operátori řetězců potrubí
PowerShell 7 implementuje operátory && and || pro podmíněné řetězení pipeline. Tyto operátory jsou v PowerShellu známé jako "operátory řetězce pipeline" a jsou podobné seznamům AND a OR v shellech jako bash and zsh, stejně jako podmíněným zpracovatelským symbolům v Windows Command Shell (cmd.exe).
Operátor && spustí kanál zprava, pokud byl kanál vlevo úspěšný. Naopak operátor || spustí kanál zprava, pokud kanál vlevo selhal.
Poznámka:
Tyto operátory používají proměnné $? a $LASTEXITCODE k určení, jestli kanál selhal. To vám umožní používat je s nativními příkazy, nejen s rutinami nebo funkcemi.
Zde první příkaz uspěje a druhý příkaz je vykonán:
Write-Output 'First' && Write-Output 'Second'
First
Second
Zde první příkaz selže, druhý se nevykoná:
Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad
Zde první příkaz uspěje, druhý příkaz není vykonán:
Write-Output 'First' || Write-Output 'Second'
First
Zde první příkaz selže, takže se vykoná druhý příkaz:
Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second
Pro více informací o operátorech řetězců potrubí.
Nulové koalescence, přiřazení a podmíněné operátory
PowerShell 7 zahrnuje operátory ??Null koalescing , Null podmíněné přiřazení ??=, a Null podmíněné operátory ?. přístupu k členům a ?[].
Null-koalescující operátor ??
Null-koalescující operátor ?? vrací hodnotu svého levého operandu, pokud není null.
V opačném případě vyhodnocuje pravý operand a vrátí výsledek. Operátor ?? nevyhodnocuje svůj pravý operand, pokud se levý operand vyhodnotí jako nenulový.
$x = $null
$x ?? 100
100
V následujícím příkladu nebude pravotočivý operand vyhodnocován:
[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020
Nulový podmíněný přiřazený operátor ?? =
Operátor ??= null podmíněného přiřazení přiřazuje hodnotu svého pravotočivého operandu levému operandu pouze tehdy, pokud levý operand vyhodnocuje jako null. Operátor ??= nevyhodnocuje svůj pravý operand, pokud se levý operand vyhodnotí jako nenulový.
$x = $null
$x ??= 100
$x
100
V následujícím příkladu není pravotočivý operand vyhodnocován:
[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020
Operátory přístupu k podmíněnému členovi s nulovým podmíněným členem ?. a? [] (Experimentální)
Poznámka:
Jedná se o experimentální funkci nazvanou PSNullConditionalOperators. Pro více informací viz Používání experimentálních prvků.
Nulový podmíněný operátor umožňuje členům přístup ?., nebo prvku ?[]k jeho operandu pouze tehdy, pokud tento operand vyhodnotí jako nenull; jinak vrací null.
Poznámka:
Vzhledem k tomu, že PowerShell umožňuje ? být součástí názvu proměnné, je pro použití těchto operátorů vyžadována formální specifikace názvu proměnné. Takže je nutné používat {} kolem názvů proměnných, například ${a} když ? je součástí názvu ${a?}proměnné.
V následujícím příkladu se vrací hodnota vlastnosti člena Status :
$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped
Následující příklad vrací null, aniž by se snažil získat status člena jako jméno:
$service = $Null
${Service}?.status
Podobně, pomocí ?[], se hodnota prvku vrátí:
$a = 1..10
${a}?[0]
1
A když je operand null, prvek není přístupný a null se vrátí:
$a = $null
${a}?[0]
Pro více informací About_Operators.
Nový pohled ConciseView a cmdlet Get-Error
PowerShell 7.0 zlepšuje zobrazení chybových hlášení, aby zlepšil čitelnost interaktivních a skriptových chyb s novým výchozím zobrazením ConciseView. Pohledy jsou uživatelsky vybírovatelné pomocí preferencní proměnné $ErrorView.
S ConciseView, pokud chyba není způsobena chybou skriptu nebo parseru, je to jednořádková chybová zpráva:
Get-Childitem -Path c:\NotReal
Get-ChildItem: can't find path 'C:\NotReal' because it doesn't exist
Pokud se chyba objeví během vykonávání skriptu nebo jde o chybu při parsování, PowerShell vrátí víceřádkovou chybovou zprávu, která chybu obsahuje, ukazatel a chybovou zprávu ukazující, kde se chyba v daném řádku nachází. Pokud terminál nepodporuje ANSI barevné únikové sekvence (VT100), barvy se nezobrazují.
Výchozí zobrazení v PowerShell 7 je ConciseView. Předchozí výchozí zobrazení bylo NormalView a můžete ho zvolit nastavením preference proměnné $ErrorView.
$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView
Poznámka:
Je přidána $Host.PrivateData nová vlastnost ErrorAccentColor, která podporuje změnu barvy akcentu chybové zprávy.
Nový cmdlet Get-Error poskytuje kompletní podrobný přehled o plně kvalifikované chybě, když je to žádoucí. Ve výchozím nastavení cmdlet zobrazuje všechny detaily, včetně vnitřních výjimek, poslední chyby, která nastala.
Cmdlet Get-Error podporuje vstup z pipeline pomocí vestavěné proměnné $Error.
Get-Error zobrazuje všechny chyby v potrubí.
$Error | Get-Error
Cmdlet Get-Error podporuje parametr Nejnovější , což vám umožňuje určit, kolik chyb z aktuální relace chcete, aby se zobrazovalo.
Get-Error -Newest 3 # Displays the lst three errors that occurred in the session
Pro více informací o Get-Error.
Oznámení o nové verzi
PowerShell 7 používá oznámení o aktualizacích, aby uživatele upozornil na existenci aktualizací PowerShellu. PowerShell jednou denně dotazuje online službu a určí, jestli je k dispozici novější verze.
Poznámka:
Kontrola aktualizace probíhá během první seance v daném 24hodinovém období. Z hlediska výkonu začíná aktualizace kontrola 3 sekundy po začátku sezení. Oznámení se zobrazí pouze na začátku následujících sezení.
PowerShell ve výchozím nastavení přihlašuje jeden ze dvou různých kanálů upozornění v závislosti na své verzi/větvi. Podporované, obecně dostupné (GA) verze PowerShellu vracejí oznámení pouze o aktualizovaných verzích GA. Verze Preview a Release Candidate (RC) informují o aktualizacích předběžných, RC a GA verzích.
Chování oznámení o aktualizaci lze změnit pomocí proměnné prostředí $Env:POWERSHELL_UPDATECHECK. Podporovány jsou následující hodnoty:
-
Výchozí stav je totéž jako nedefinovat
$Env:POWERSHELL_UPDATECHECK- Verze GA oznamují aktualizace verzí GA
- Verze Preview/RC upozorňují na aktualizace verzí General Availability (GA) a Preview.
- Vypnuté vypíná funkci upozornění na aktualizace
- LTS pouze informuje o aktualizacích vydání GA pro dlouhodobé servisní služby (LTS)
Poznámka:
Proměnná $Env:POWERSHELL_UPDATECHECK prostředí neexistuje, dokud není nastavena poprvé.
Pro nastavení oznámení o verzi pouze pro LTS vydání:
$Env:POWERSHELL_UPDATECHECK = 'LTS'
Pro nastavení oznámení o verzi na Default toto chování:
$Env:POWERSHELL_UPDATECHECK = 'Default'
Pro více informací o aktualizacích.
Nová podpora zdrojů DSC s Invoke-DSCResource (experimentální)
Poznámka:
Jedná se o experimentální funkci nazvanou PSDesiredStateConfiguration.InvokeDscResource. Pro více informací viz Používání experimentálních prvků.
Cmdlet Invoke-DscResource spouští metodu určeného PowerShell Desired State Configuration (DSC) zdroje.
Tento cmdlet volá DSC zdroj přímo, aniž by vytvářel konfigurační dokument. Pomocí tohoto cmdletu mohou produkty pro správu konfigurace spravovat Windows nebo Linux pomocí zdrojů DSC. Tento cmdlet také umožňuje ladění zdrojů, když je DSC engine spuštěný s povoleným laděním.
Tento příkaz vyvolá metodu Set zdroje s názvem WindowsProcess a poskytuje povinné vlastnosti Path a Arguments pro spuštění určeného procesu Windows.
Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
Arguments = ''
}
Pro více informací o Invoke-DSCResource.
Změny a vylepšení
Zásadní změny
- Podpora aktualizací, LTS a výchozí kanály (#11132)
- Aktualizace Test-Connection fungovat více jako ta ve Windows PowerShell (#10697) (Díky @vexx32!)
- Ušetřit $? pro ParenExpression, SubExpression a ArrayExpression (#11040)
- Nastavte pracovní adresář na aktuální adresář v Start-Job (#10920) (Díky @iSazonov!)
- Nechte $PSCulture konzistentně odrážet změny kultury během sezení (#10138) (Díky @iSazonov!)
Aktualizace a opravy enginu
- Zlepšení v rozhraní breakpoint API pro vzdálené scénáře (#11312)
- Oprava úniku PowerShell class definition do jiného Runspace (#11273)
- Oprava regrese ve formátování způsobenou primitivem FirstOrDefault přidaným ve verzi 7.0.0-Preview1 (#11258)
- Další moduly Microsoftu pro sledování v telemetrii PS7 (#10751)
- Udělejte schválené funkce neexperimentálními (#11303)
- Pokud je to relevantní, aktualizujte ConciseView na použití TargetObject (#11075)
- Fix NullReferenceException in CompletionCompleters public methods (#11274)
- Oprava kontroly stavu bytového vlákna na platformách mimo Windows (#11301)
- Aktualizace nastavení PSModulePath pro spojení proměnných procesu a prostředí stroje (#11276)
- Bump .NET Core na 3.1.0 (#11260)
- Oprava detekce $PSHOME před $env:PATH (#11141)
- Povolte pwsh dědit $env:PSModulePath a povolit powershell.exe správně startovat (#11057)
- Přesun na .NET Core 3.1 preview 1 (#10798)
- Refaktorovací reparse tag checks u poskytovatele souborového systému (#10431) (Díky @iSazonov!)
- Nahraďte CR a novou řádku znakem 0x23CE ve skriptovém logování (#10616)
- Opravte únik zdrojů odregistrováním obslužníku událostí z AppDomain.CurrentDomain.ProcessExit (#10626)
- Přidejte podporu do ActionPreference.Break, aby se do debuggeru proniklo při generování zpráv Debug, Error, Information, Progress, Verbose nebo Warning (#8205) (Díky @KirkMunro!)
- Povolte spouštěcí doplňky v ovládacím panelu v PowerShellu bez specifikace .CPL rozšíření. (#9828)
- Podporujte záporná čísla v -split operátoru (#8960) (Díky @ece-jacob-scott!)
Obecné aktualizace a opravy Cmdlet
- Oprava problému v Raspbianu pro nastavení data změn souboru v UnixStat Experimental Feature (#11313)
- Přidejte -AsPlainText k ConvertFrom-SecureString (#11142)
- Přidáno ověření verze WindowsPS pro WinCompat (#11148)
- Oprava hlášení chyb v některých WinCompat scénářích (#11259)
- Přidat nativní binární resolver (#11032) (Díky @iSazonov!)
- Aktualizace výpočtu šířky znaku pro správné respektování CJK znaků (#11262)
- Add Unblock-File pro macOS (#11137)
- Oprava regrese v Get-PSCallStack (#11210) (Díky @iSazonov!)
- Odstraňte automatické načítání modulu ScheduledJob při použití cmdletů Job (#11194)
- Přidejte OutputType do Get-Error cmdletu a zachovejte původní typové názvy (#10856)
- Oprava nullové reference ve vlastnosti SupportsVirtualTerminal (#11105)
- Přidat kontrolu limitu v Get-WinEvent (#10648) (Díky @iSazonov!)
- Opravte runtime příkazů, aby se StopUpstreamCommandsException nenaplnil v -ErrorVariable (#10840)
- Nastavte výstupní kódování na [Console]::OutputEncoding pro nativní příkazy (#10824)
- Podpora víceřádkových kódových bloků v příkladech (#10776) (Díky @Greg-Smulko!)
- Přidat parametr Culture do Select-String cmdlet (#10943) (Díky @iSazonov!)
- Opravit Start-Job cestu do pracovního adresáře s backslash (#11041)
- ConvertFrom-JSON: Rozbalování kolekcí ve výchozím nastavení (#10861) (Díky @danstur!)
- Použijte case-sensitive Hashtable pro Group-Object cmdlet s -CaseSensitive a -AsHashtable switchi (#11030) (Díky @vexx32!)
- Zvládnout výjimku, pokud enumerace souborů selže při přestavbě cesty na správné pouzdro (#11014)
- Opravte ConciseView tak, aby zobrazoval Aktivitu místo myCommand (#11007)
- Povolit webové cmdlety ignorovat stavy chyb HTTP (#10466) (Díky @vdamewood!)
- Oprava potrubí více než jednoho CommandInfo na Get-Command (#10929)
- Přidat zpět Get-Counter cmdlet pro Windows (#10933)
- Nechte ConvertTo-Json považovat [AutomationNull]::Value a [NullString]::Value za $null (#10957)
- Odstraňte závorky z IPv6 adresy pro SSH vzdálené vysílání (#10968)
- Opravte pád, pokud je příkaz odeslaný do PWSH jen mezera (#10977)
- Přidán Get-Clipboard a Set-Clipboard přes platformu (#10340)
- Oprava nastavení původní cesty k objektu souborového systému tak, aby neměla navíc závěrečné lomítko (#10959)
- Podpůrný $null pro ConvertTo-Json (#10947)
- Přidat zpět Out-Printer příkaz na Windows (#10906)
- Oprava Start-Job -WorkingDirectory s mezerami (#10951)
- Vraťte výchozí hodnotu při získání nullové hodnoty pro nastavení v PSConfiguration.cs (#10963) (Díky @iSazonov!)
- Vyřízení výjimky IO jako neukončující (#10950)
- Přidat GraphicalHost assembler pro povolení Out-GridView, Show-Command a Get-Help -ShowWindow (#10899)
- Vezměte ComputerName přes pipeline v Get-HotFix (#10852) (Díky @kvprasoon!)
- Opravit doplňování tabulátorů pro parametry tak, aby zobrazovaly běžné parametry podle dostupných (#10850)
- Opravte GetCorrectCasedPath(), abyste nejprve zkontrolovali, zda jsou vráceny nějaké záznamy systémového souboru, než zavoláte First() (#10930)
- Nastavte pracovní adresář na aktuální adresář v Start-Job (#10920) (Díky @iSazonov!)
- Změňte TabExpansion2 tak, aby nevyžadoval -CursorColumn a považoval se za $InputScript.Délku (#10849)
- Případ, kdy hostitel nemůže vrátit řádky nebo sloupce obrazovky (#10938)
- Oprava použití akcentních barev u hostitelů, kteří je nepodporují (#10937)
- Přidat zpět Update-List příkaz (#10922)
- Aktualizace FWLink ID pro Clear-RecycleBin (#10925)
- Během dokončování tabulátorů přeskočte soubor, pokud nelze přečíst atributy souboru (#10910)
- Přidat zpět Clear-RecycleBin pro Windows (#10909)
- Přidat
$env:__SuppressAnsiEscapeSequencespro ovládání, zda má být výstup VT escape sekvence (#10814) - Přidejte -NoEmphasize parametr pro barevné zbarvení výstupu Select-String(#8963) (Díky @derek-xia!)
- Přidej zpět Get-HotFix cmdlet (#10740)
- Umožnit Add-Type použití v aplikacích, které hostují PowerShell (#10587)
- Používejte efektivnější pořadí hodnocení v LanguagePrimitives.IsNullLike() (#10781) (Díky @vexx32!)
- Zlepšit zpracování smíšených sběrných vstupů a potrubních proudů vstupů v Format-Hex (#8674) (Díky @vexx32!)
- Použijte konverzi typů v hashtabulkách SSHConnection, pokud hodnota neodpovídá očekávanému typu (#10720) (Díky @SeeminglyScience!)
- Opravte Get-Content -ReadCount chování 0, když je nastaveno -TotalCount (#10749) (Díky @eugenesmlv!)
- Chybová zpráva Reword Access byl zamítnut v Get-WinEvent (#10639) (Díky @iSazonov!)
- Povolte doplňování tabulatur pro přiřazení proměnných, které jsou omezeny enumem nebo typem (#10646)
- Odstraňte nepoužitou vzdálenou vlastnost SourceLength, která způsobuje problémy s formátováním (#10765)
- Přidejte -Delimiter parametr do ConvertFrom-StringData (#10665) (Díky @steviecoaster!)
- Přidejte parametr pozice pro ScriptBlock při použití Invoke-Command se SSH (#10721) (Díky @machgo!)
- Zobrazit kontextové informace o řádku, pokud je více řádků, ale žádný název skriptu pro ConciseView (#10746)
- Přidat podporu pro \wsl$\ cesty k poskytovateli souborového systému (#10674)
- Přidejte chybějící text tokenu pro TokenKind.QuestionMark v parseru (#10706)
- Nastavte aktuální pracovní adresář každého ForEach-Object -Parallel běžícího skriptu na stejné místo jako volající skript. (#10672)
- Nahraďte api-ms-win-core-file-l1-2-2.dll Kernell32.dll pro API FindFirstStreamW a FindNextStreamW (#10680) (Díky @iSazonov!)
- Upravte skript s pomocí formátování, aby byl tolerantnější vůči StrictMode (#10563)
- Přidejte -SecurityDescriptorSDDL parametr do New-Service (#10483) (Díky @kvprasoon!)
- Odstraňte informační výstup, konsolidujte využití pingu v Test-Connection (#10478) (Díky @vexx32!)
- Přečtěte si speciální body pro opravu bez přístupu k nim (#10662) (Díky @iSazonov!)
- Přímý výstup Clear-Host na terminál (#10681) (Díky @iSazonov!)
- Přidej zpět novou linku pro seskupení s Format-Table a -Property (#10653)
- Odstraňte [ValidateNotNullOrEmpty] z -InputObject on Get-Random pro povolení prázdného řetězce (#10644)
- Udělejte algoritmus pro vzdálenost řetězců podle systému návrhů necitlivý na velká písmena (#10549) (Díky @iSazonov!)
- Oprava výjimky pro nulové reference ve ForEach-Object -Parallel zpracování vstupů (#10577)
- Add PowerShell group policy definitions (#10468)
- Aktualizujte konzolový hostitel tak, aby podporoval ovládací sekvence XTPUSHSGR/XTPOPSGR VT, které se používají ve scénářích kompozability. (#10208)
- Přidat parametr WorkingDirectory do Start-Job (#10324) (Díky @davinci26!)
- Odstraňte event handler, který způsoboval chybné replikování změn breakpointu do hostského runspace debuggeru (#10503) (Díky @KirkMunro!)
- Nahraďte api-ms-win-core-job-12-1-0.dll Kernell32.dll v Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Díky @iSazonov!)
- Opravte chybný výstup pro New-Service v přiřazení proměnných a -OutVariable (#10444) (Díky @kvprasoon!)
- Oprava globálních problémů s nástroji kolem výstupního kódu, parametrů příkazové řádky a cesty pomocí mezer (#10461)
- Oprava rekurze do OneDrive – změnit FindFirstFileEx() na typ SafeFindHandle (#10405)
- Přeskočte automatické načítání PSReadLine ve Windows, pokud je aktivní NVDA čtečka obrazovky (#10385)
- Zvýšit verze modulů built with-PowerShell na 7.0.0.0 (#10356)
- Přidejte chybu do Add-Type, pokud už existuje typ se stejným názvem (#9609) (Díky @iSazonov!)
Performance
- Vyhněte se použití closure v Parser.SaveError (#11006)
- Zlepšujte cache při vytváření nových Regex instancí (#10657) (Díky @iSazonov!)
- Zlepšit zpracování vestavěných typů PowerShell z types.ps1xml, typesV3.ps1xml a GetEvent.types.ps1xml (#10898)
- Aktualizovat PSConfiguration.ReadValueFromFile pro rychlejší a efektivnější paměť (#10839)
- Přidejte drobná vylepšení výkonu pro inicializaci runspace (#10569) (Díky @iSazonov!)
- Zrychlete ForEach-Object pro běžně používané scénáře (#10454) a opravte ForEach-Object -Parallel problém s výkonem u mnoha runspaces (#10455)
Vyčištění kódu
- Změnit komentář a text prvku tak, aby vyhovoval standardům Microsoftu (#11304)
- Problémy se stylem úklidu v roce Compiler.cs (#10368) (Díky @iSazonov!)
- Odstraňte nepoužitý převodník písma pro CommaDelimitedStringCollection (#11000) (Díky @iSazonov!)
- Styl úklidu v roce InitialSessionState.cs (#10865) (Díky @iSazonov!)
- Čištění kódu pro třídu PSSession (#11001)
- Odstraňte funkci 'nefunkční Update-Help z Get-Help, když Get-Help poprvé běží' (#10974)
- Oprava stylových problémů (#10998) (Díky @iSazonov!)
- Čištění: použijte vestavěný typ aliasu (#10882) (Díky @iSazonov!)
- Odstraňte nepoužitý klíč ConsolePrompting a vyhněte se zbytečnému vytváření řetězců při dotazování nastavení ExecutionPolicy (#10985)
- Vypnout kontrolu aktualizací pro denní buildy (#10903) (Díky @bergmeister!)
- Reinstate bugugging API ztraceno v #10338 (#10808)
- Odstraňte odkaz na WorkflowJobSourceAdapter, který se již nepoužívá (#10326) (Díky @KirkMunro!)
- Vyčištění rozhraní COM v kódu jump listu opravou atributů PreserveSig (#9899) (Díky @weltkante!)
- Přidejte komentář, proč -ia není alias pro -InformationAction běžný parametr (#10703) (Díky @KirkMunro!)
- Přejmenovat InvokeCommandCmdlet.cs na InvokeExpressionCommand.cs (#10659) (Díky @kilasuit!)
- Přidat drobné úpravy kódu související s oznámeními o aktualizacích (#10698)
- Odstraňte zastaralou logiku workflow z vzdálených skriptů pro nastavení (#10320) (Díky @KirkMunro!)
- Aktualizujte formát nápovědy, aby se používal správný případ (#10678) (Díky @tnieto88!)
- Čištění problémů se stylem CodeFactor, které přicházejí v commitech za poslední měsíc (#10591) (Díky @iSazonov!)
- Oprava překlepu v popisu experimentální vlastnosti PSTernaryOperator (#10586) (Díky @bergmeister!)
- Převést ActionPreference. Pozastavit enumerační hodnotu do nepodporovaného, rezervovaného stavu a odstranit omezení používání ActionPreference. Ignorovat v preference proměnných (#10317) (Díky @KirkMunro!)
- Nahraďte ArrayList List T<>, abyste získali čitelnější a spolehlivější kód bez změny funkčnosti (#10333) (Díky@iSazonov!)
- Opravte kód ve stylu TestConnectionCommand (#10439) (Díky @vexx32!)
- Vyčistit AutomationEngine a odstranit další volání metody SetSessionStateDrive (#10416) (Díky @iSazonov!)
- Přejmenujte výchozí ParameterSetName zpět na Oddělovač pro ConvertTo-Csv a ConvertFrom-Csv (#10425)
Tools
- Přidejte výchozí nastavení pro vlastnost SDKToUse, aby se to nahromadilo ve VS (#11085)
- Install-Powershell.ps1: Přidat parametr pro použití instalace MSI (#10921) (Díky @MJECloud!)
- Přidejte základní příklady pro install-powershell.ps1 (#10914) (Díky @kilasuit!)
- Nechte Install-PowerShellRemoting.ps1 zpracovat prázdný řetězec v parametru PowerShellHome (#10526) (Díky @Orca88!)
- Přepněte z /etc/lsb-release na /etc/os-release v roce install-powershell.sh (#10773) (Díky @Himura2la!)
- Podívejte se na pwsh.exe a pwsh v denní verzi na Windows (#10738) (Díky @centreboard!)
- Odstraňte zbytečný kohoutek v installpsh-osx.sh (#10752)
- Aktualizace install-powershell.ps1 pro kontrolu již nainstalované denní verze (#10489)
Testy
- Test nespolehlivého DSC je v očekávání (#11131)
- Oprava stringdata testu pro správné ověření klíčů hashtabulek (#10810)
- Unload testovací moduly (#11061) (Díky @iSazonov!)
- Prodloužení doby mezi opakovanými pokusy testovací URL (#11015)
- Aktualizujte testy tak, aby přesně popisovaly testovací akci. (#10928) (Díky @romero126!)
- Temporary skip the flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
- Nastavte test úniku obslužného modulu události stabilní (#10790)
- Synchronizace velkých písmen v CI YAML (#10767) (Díky @RDIL!)
- Přidat test na opravu úniku v obslužbě události (#10768)
- Add Get-ChildItem test (#10507) (Díky @iSazonov!)
- Nahraďte nejednoznačný jazyk pro testy z přepínače na parametr pro přesnost (#10666) (Díky @romero126!)
- Přidat experimentální kontrolu k ForEach-Object -Parallel testům (#10354) (Díky @KirkMunro!)
- Aktualizace testů pro validaci Alpine (#10428)
Vylepšení sestavy a balíčků
- Oprava podepsávání balíčků v Nuget pro koordinovanou sestavu balíčků (#11316)
- Aktualizace závislostí z PowerShell Gallery a NuGet (#11323)
- Bump Microsoft.ApplicationInsights z 2.11.0 na 2.12.0 (#11305)
- Bump Microsoft.CodeAnalysis.CSharp z 3.3.1 na 3.4.0 (#11265)
- Balíčky aktualizací pro Debian 10 a 11 (#11236)
- Povolit pouze experimentální funkce před RC (#11162)
- Aktualizace minimální verze macOS (#11163)
- Bump NJsonSchema z 10.0.27 na 10.0.28 (#11170)
- Aktualizace odkazů v README.md a metadata.json pro Preview.5 (#10854)
- Vyberte soubory pro testy shody, které vlastní PowerShell (#10837)
- Povolit sestavení balíčku msix pro win7x86. (Interní 10515)
- Povolit předání sémantických verzí funkci NormalizeVersion (#11087)
- Bump .NET core framework to 3.1-preview.3 (#11079)
- Přesun PSReadLine z 2.0.0-beta5 na 2.0.0-beta6 v /src/Modules (#11078)
- Bump Newtonsoft.Json z 12.0.2 na 12.0.3 (#11037) (#11038)
- Přidejte balíčky Debian 10, 11 a CentOS 8 (#11028)
- Nahrajte Build-Info Json soubor s polem ReleaseDate (#10986)
- Bump .NET core framework to 3.1-preview.2 (#10993)
- Povolit sestavení balíčku x86 MSIX (#10934)
- Aktualizujte URL instalačního skriptu dotnet SDK v build.psm1 (#10927)
- Bump Markdig. Podepsáno od 0.17.1 do 0.18.0 (#10887)
- Bump ThreadJob z 2.0.1 na 2.0.2 (#10886)
- Aktualizovat AppX Manifest and Packaging modul tak, aby vyhovoval požadavkům MS Store (#10878)
- Update package reference for PowerShell SDK to preview.5 (Internal 10295)
- Aktualizace ThirdPartyNotices.txt (#10834)
- Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
- Bump Microsoft.ApplicationInsights z 2.10.0 na 2.11.0 (#10608)
- Bump NJsonSchema od 10.0.24 do 10.0.27 (#10756)
- Přidejte podporu MacPorts do build systému (#10736) (Díky @Lucius-Q-User!)
- Bump PackageManagement od 1.4.4 do 1.4.5 (#10728)
- Přesun NJsonSchema z 10.0.23 na 10.0.24 (#10635)
- Přidat proměnnou prostředí pro rozlišení telemetrie klient/server v MSI (#10612)
- Bump PSDesiredStateConfiguration z 2.0.3 na 2.0.4 (#10603)
- Bump Microsoft.CodeAnalysis.CSharp z 3.2.1 na 3.3.1 (#10607)
- Aktualizace na .Net Core 3.0 RTM (#10604) (Díky @bergmeister!)
- Aktualizovat balení MSIX tak, aby verze odpovídala požadavkům Windows Store (#10588)
- Bump PowerShellGet version from 2.2 to 2.2.1 (#10382)
- Bump PackageManagement verze od 1.4.3 do 1.4.4 (#10383)
- Aktualizace README.md a metadata.json pro verzi 7.0.0-preview.4 (Interní 10011)
- Upgradujte verzi .Net Core 3.0 z Preview 9 na RC1 (#10552) (Díky @bergmeister!)
- Oprava experimentálního generování seznamu vlastností (interní 9996)
- Bump verzi PSReadLine z 2.0.0-beta4 na 2.0.0-beta5 (#10536)
- Opravit release build skript pro nastavení release tagu
- Update verzi Microsoft.PowerShell.Native na 7.0.0-preview.2 (#10519)
- Upgradujte na Netcoreapp3.0 preview9 (#10484) (Díky @bergmeister!)
- Ujistěte se, že denní koordinovaná stavba ví, že je to denní sestava (#10464)
- Aktualizuj kombinovanou sestavu balíčku, aby se vydaly denní verze (#10449)
- Odstraňte odkaz na aplikátora (#10445) (Díky @RDIL!)
- Bump NJsonSchema verze od 10.0.22 do 10.0.23 (#10421)
- Odstraňte smazání linux-x64 build složky, protože některé závislosti pro Alpine to vyžadují (#10407)
Dokumentace a nápověda
- Refaktorování logů změn na jeden log na každé vydání (#11165)
- Oprava FWLinks pro PowerShell 7 online nápovědní dokumenty (#11071)
- Aktualizace CONTRIBUTING.md (#11096) (Díky @mklement0!)
- Odkazy na opravu instalační dokumentace v README.md (#11083)
- Přidává příklady do install-powershell.ps1 scénáře (#11024) (Díky @kilasuit!)
- Oprava Select-String důrazu a Import-DscResource v CHANGELOG.md (#10890)
- Odstraňte zastaralý odkaz z powershell-beginners-guide.md (#10926)
- Logy změn při slučování a servisu (#10527)
- Aktualizace použitá .NET verze v build dokumentaci (#10775) (Díky @Greg-Smulko!)
- Nahraďte odkazy z MSDN na Microsoft Learn v powershell-beginners-guide.md (#10778) (Díky @iSazonov!)
- Oprava nefunkčního odkazu na přehled DSC (#10702)
- Aktualizace Support_Question.md o odkaz na Stack Overflow jako další komunitní zdroj (#10638) (Díky @mklement0!)
- Přidat architekturu procesoru do šablony distribučního požadavku (#10661)
- Přidejte novou knihu PowerShell MoL do učící se PowerShell dokumentace (#10602)
- Aktualizace README.md a metadata pro verze v6.1.6 a v6.2.3 (#10523)
- Opravte překlep v README.md (#10465) (Díky @vedhasp!)
- Přidat odkaz na modul PSKoans do dokumentace Learning Resources (#10369) (Díky @vexx32!)
- Aktualizace README.md a metadata.json pro 7.0.0-preview.3 (#10393)