A PowerShell 7.0 újdonságai

A PowerShell 7.0 a PowerShell nyílt forráskódú, platformfüggetlen (Windows, macOS és Linux) kiadása, amely heterogén környezetek és hibrid felhők kezelésére készült.

Ebben a kiadásban számos új funkciót vezetünk be, többek között a következőket:

  • Folyamat párhuzamosítása a ForEach-Object -Parallel
  • Új operátorok:
    • Ternáris operátor: a ? b : c
    • Folyamatlánc-operátorok: || és &&
    • Null feltételes operátorok: ?? és ??=
  • Egyszerűsített és dinamikus hibanézet és Get-Error parancsmag a hibák könnyebb kivizsgálása érdekében
  • Egy kompatibilitási réteg, amely lehetővé teszi, hogy a felhasználók implicit Windows PowerShell munkamenetben importáljanak modulokat
  • Automatikus új verzióértesítések
  • DSC-erőforrások meghívásának lehetősége közvetlenül a PowerShell 7-ből (kísérleti)

A funkciók és javítások teljes listájának megtekintéséhez tekintse meg a változásnaplókat.

Hol telepíthetim a PowerShellt?

A PowerShell 7 jelenleg a következő operációs rendszereket támogatja x64-en, beleértve a következőket:

  • Windows 8.1 és 10
  • Windows Server 2012, 2012 R2, 2016 és 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Fedora 30+
  • Debian 9
  • Ubuntu LTS 16.04+
  • Alpine Linux 3.8+

Emellett a PowerShell 7.0 támogatja a Debian, az Ubuntu és az ARM64 Alpine Linux ARM32- és ARM64-verzióit.

Tekintse meg az előnyben részesített Windows, macOS vagy Linux operációs rendszer telepítési utasításait.

Bár hivatalosan nem támogatott, a közösség az Archhoz és a Kali Linuxhoz is biztosított csomagokat.

Megjegyzés

A Debian 10 és a CentOS 8 jelenleg nem támogatja a WinRM-átnevezést. Az SSH-alapú újraegyenlítés beállításával kapcsolatos részletekért lásd: PowerShell-újramotálás SSH-n keresztül.

A támogatott operációs rendszerekről és a támogatási életciklusról a PowerShell támogatási életciklusában talál további információt.

A PowerShell 7 futtatása

A PowerShell 7 a Windows PowerShell-től elkülönítve települ egy könyvtárba. Ez lehetővé teszi a PowerShell 7 egymás melletti futtatását az Windows PowerShell 5.1-ben. A PowerShell 6.x esetében a PowerShell 7 egy helyben történő frissítés, amely eltávolítja a PowerShell 6.x-et.

  • A PowerShell 7 a %programfiles%\PowerShell\7
  • A %programfiles%\PowerShell\7 mappa hozzá lesz adva a $env:PATH

A PowerShell 7 telepítőcsomagja frissíti a PowerShell 6.x korábbi verzióit:

  • PowerShell 6.x Windows rendszeren: helyébe a következő lép: %programfiles%\PowerShell\6%programfiles%\PowerShell\7
  • Linux: helyébe a következő lép: /opt/microsoft/powershell/6/opt/microsoft/powershell/7
  • macOS: helyébe a következő lép: /usr/local/microsoft/powershell/6/usr/local/microsoft/powershell/7

Megjegyzés

A Windows PowerShell a PowerShell elindításához használható végrehajtható fájl neve powershell.exe. A 6-os és újabb verzióban a végrehajtható név úgy módosul, hogy támogassa az egymás melletti végrehajtást. A PowerShell 7 elindításához az új végrehajtható név a következő pwsh.exe: . Az előzetes buildek a 7 előzetes verziójú könyvtár helyett pwsh a helyben pwsh-preview maradnak.

Továbbfejlesztett visszamenőleges kompatibilitás a Windows PowerShell

A PowerShell 7.0 a .NET Core 3.1-be való áthelyezését jelzi, így jelentősen nagyobb kompatibilitást tesz lehetővé a meglévő Windows PowerShell modulokkal. Ez számos olyan Windows-modult tartalmaz, amelyekhez grafikus felhasználói felületi funkciókra van szükség, például Out-GridView és Show-Command, valamint számos olyan szerepkörkezelési modulra, amelyek a Windows részeként szállnak le.

Windows esetén a rendszer hozzáad egy új kapcsolóparamétert a UseWindowsPowerShellhezImport-Module. Ez a kapcsoló létrehoz egy proxymodult a PowerShell 7-ben, amely helyi Windows PowerShell folyamatot használ a modulban található parancsmagok implicit futtatásához. További információ az Importálás-modulról.

A Microsoft-modulok PowerShell 7.0-val való használatáról további információt a Modulkompatibilitási táblázat tartalmaz.

Párhuzamos végrehajtás hozzáadva a ForEach-Object

A ForEach-Object gyűjtemény elemeit iteráló parancsmag beépített párhuzamossággal rendelkezik az új Parallel paraméterrel.

A párhuzamos szkriptblokkok alapértelmezés szerint annak a hívónak az aktuális munkakönyvtárát használják, amely elindította a párhuzamos feladatokat.

Ez a példa 50 000 naplóbejegyzést kér le 5 rendszernaplóból egy helyi Windows-gépen:

$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

A Párhuzamos paraméter az egyes bemeneti naplók neveihez párhuzamosan futó szkriptblokkot adja meg.

Az új ThrottleLimit paraméter korlátozza az adott időpontban párhuzamosan futó szkriptblokkok számát. Az alapértelmezett érték 5.

Használja a változót $_ a szkriptblokk aktuális bemeneti objektumának megjelenítéséhez. $using: A hatókör használatával változóhivatkozásokat adhat át a futó szkriptblokknak.

További információ a ForEach-Objectról.

Ternáris operátor

A PowerShell 7.0 egy ternáris operátort vezet be, amely egyszerűsített if-else utasításként viselkedik. A PowerShell ternáris operátorának modellezése szorosan a C# ternáris operátor szintaxisából történik:

<condition> ? <if-true> : <if-false>

A feltétel-kifejezés mindig kiértékelésre kerül, és eredménye logikai értékké lesz konvertálva annak meghatározásához, hogy melyik ág lesz kiértékelve a következő:

  • A <if-true> kifejezés akkor lesz végrehajtva, ha a <condition> kifejezés igaz
  • A <if-false> kifejezés akkor lesz végrehajtva, ha a <condition> kifejezés hamis

Például:

$message = (Test-Path $path) ? "Path exists" : "Path not found"

Ebben a példában, ha az elérési út létezik, akkor megjelenik az Elérési út. Ha az elérési út nem létezik, akkor a nem található elérési út jelenik meg.

További információ a Ha lehetőségről.

Folyamatlánc-operátorok

A PowerShell 7 implementálja a és || az && operátorokat a folyamatok feltételes láncba kapcsolásához. Ezek az operátorok a PowerShellben "folyamatlánc-operátorok" néven ismertek, és hasonlóak az and és az OR listához bashzsh, valamint a Windows Command Shell feltételes feldolgozási szimbólumaihoz (cmd.exe).

Az && operátor végrehajtja a jobb oldali folyamatot, ha a bal oldali folyamat sikeres volt. Ezzel szemben az || operátor akkor hajtja végre a jobb oldali folyamatot, ha a bal oldali folyamat meghiúsult.

Megjegyzés

Ezek az operátorok és $LASTEXITCODE változók $? használatával állapítják meg, hogy egy folyamat meghiúsult-e. Ez lehetővé teszi, hogy natív parancsokkal és nem csak parancsmagokkal vagy függvényekkel használja őket.

Itt az első parancs sikeres, a második parancs pedig végrehajtva:

Write-Output 'First' && Write-Output 'Second'
First
Second

Itt az első parancs meghiúsul, a második nem lesz végrehajtva:

Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

Itt az első parancs sikeres, a második parancs nem lesz végrehajtva:

Write-Output 'First' || Write-Output 'Second'
First

Itt az első parancs meghiúsul, ezért a második parancs végrehajtása:

Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second

További információ a folyamatlánc-operátorokról.

Null-szenesítés, hozzárendelés és feltételes operátorok

A PowerShell 7 tartalmazza a Null szenesítési operátort ??, a Null feltételes hozzárendelést ??=és a Null feltételes taghozzáférési operátorokat ?. és ?[].

Null-coalescing operátor ??

A null-coalescing operátor ?? a bal oldali operandus értékét adja vissza, ha nem null értékű. Ellenkező esetben kiértékeli a jobb oldali operandust, és visszaadja az eredményét. Az ?? operátor nem értékeli ki a jobb oldali operandust, ha a bal oldali operandus nem null értékűre értékel.

$x = $null
$x ?? 100
100

A következő példában a jobb oldali operandus nem lesz kiértékelve:

[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020

Null feltételes hozzárendelési operátor? =

A null feltételes hozzárendelési operátor ??= csak akkor rendeli hozzá a jobb oldali operandus értékét a bal oldali operandushoz, ha a bal oldali operandus null értékű. Az ??= operátor nem értékeli ki a jobb oldali operandust, ha a bal oldali operandus nem null értékűre értékel.

$x = $null
$x ??= 100
$x
100

A következő példában a jobb oldali operandus nem lesz kiértékelve:

[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020

Null feltételes taghozzáférés-operátorok ?. És? [] (Kísérleti)

Megjegyzés

Ez egy PSNullConditionalOperators nevű kísérleti funkció. További információ: Kísérleti funkciók használata.

A null feltételes operátor csak akkor engedélyezi a tagoknak az operandushoz való hozzáférését ?., vagy elemhozzáférését, ?[]ha az operandus nem null értékű; ellenkező esetben null értéket ad vissza.

Megjegyzés

Mivel a PowerShell lehetővé teszi ? , hogy a változónév része legyen, a változó nevének formális specifikációja szükséges ezeknek az operátoroknak a használatához. Ezért a változónevek köré kell használni {} , például ${a} vagy amikor ? a változónév ${a?}része.

A következő példában a tagtulajdonság Állapota értékét adja vissza a függvény:

$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped

Az alábbi példa null értéket ad vissza, anélkül, hogy megpróbálná elérni az Állapot tagnevet:

$service = $Null
${Service}?.status

Hasonlóképpen, a használatával ?[]az elem értéke lesz visszaadva:

$a = 1..10
${a}?[0]
1

Ha pedig az operandus null értékű, az elem nem lesz elérhető, és a null lesz visszaadva:

$a = $null
${a}?[0]

További információért About_Operators.

Új nézet ConciseView és parancsmag Get-Error

A PowerShell 7.0 új alapértelmezett ConciseView nézettel javítja a hibaüzenetek megjelenítését az interaktív és szkripthibák olvashatóságának javítása érdekében. A nézetek felhasználó által választhatók a beállítási változón $ErrorViewkeresztül.

A ConciseView esetében, ha egy hiba nem szkriptből vagy elemző hibából származik, akkor ez egy egysoros hibaüzenet:

Get-Childitem -Path c:\NotReal
Get-ChildItem: can't find path 'C:\NotReal' because it doesn't exist

Ha a hiba a szkript végrehajtása során fordul elő, vagy elemzési hiba, a PowerShell egy többsoros hibaüzenetet ad vissza, amely tartalmazza a hibát, egy mutatót és egy hibaüzenetet, amely azt mutatja, hogy a hiba hol található az adott sorban. Ha a terminál nem támogatja az ANSI színkioldó sorozatokat (VT100), akkor a színek nem jelennek meg.

Hiba történt egy szkriptből

A PowerShell 7 alapértelmezett nézete a ConciseView. Az előző alapértelmezett nézet a NormalView volt, és ezt a beállítási változó $ErrorViewbeállításával választhatja ki.

$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView

Megjegyzés

Az ErrorAccentColor új tulajdonságot ad hozzá a hibaüzenet jelölőszínének módosításához $Host.PrivateData .

Az új parancsmagok Get-Error teljes részletes áttekintést nyújtanak a teljes hibaről, ha szükséges. Alapértelmezés szerint a parancsmag megjeleníti az utolsó hiba teljes részleteit, beleértve a belső kivételeket is.

Megjelenítés get-error -ból

A Get-Error parancsmag támogatja a folyamat bemenetét a beépített változó $Errorhasználatával. Get-Error megjeleníti az összes csőhibát.

$Error | Get-Error

A Get-Error parancsmag támogatja a Legújabb paramétert, így megadhatja, hogy hány hiba jelenik meg az aktuális munkamenetből.

Get-Error -Newest 3 # Displays the lst three errors that occurred in the session

További információ a Get-Error szolgáltatásról.

Új verzióértesítés

A PowerShell 7 frissítési értesítések használatával figyelmezteti a felhasználókat a PowerShell frissítéseinek meglétére. A PowerShell naponta egyszer lekérdez egy online szolgáltatást annak megállapításához, hogy elérhető-e újabb verzió.

Megjegyzés

A frissítés ellenőrzése az első munkamenet során történik egy adott 24 órás időszakban. Teljesítménybeli okokból a frissítés ellenőrzése a munkamenet kezdete után 3 másodperccel kezdődik. Az értesítés csak a következő munkamenetek elején jelenik meg.

Alapértelmezés szerint a PowerShell a verziótól/ágtól függően két különböző értesítési csatornára fizet elő. A PowerShell támogatott, általánosan elérhető (GA) verziói csak a frissített GA-kiadásokra vonatkozó értesítéseket ad vissza. Az előzetes verziójú és a kiadásra jelölt (RC) kiadások értesítést küldenek az előzetes verziójú, az RC- és a GA-kiadások frissítéseiről.

A frissítési értesítés viselkedése $Env:POWERSHELL_UPDATECHECK a környezeti változóval módosítható. A következő értékek támogatottak:

  • Az alapértelmezett érték megegyezik a nem definiált értékével $Env:POWERSHELL_UPDATECHECK
    • A GA-kiadások értesítést küldenek a GA-kiadások frissítéseiről
    • Az előzetes verzió/RC-kiadások értesítik a ga és az előzetes verziójú kiadások frissítéseit
  • A frissítési értesítés funkció kikapcsolása
  • Az LTS csak a hosszú távú karbantartási (LTS) GA-kiadások frissítéseiről értesíti

Megjegyzés

A környezeti változó $Env:POWERSHELL_UPDATECHECK csak akkor létezik, ha először be van állítva.

Ha csak a kiadások verzióértesítését LTS szeretné beállítani:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

A verzióértesítés beállítása a következő viselkedésre Default :

$Env:POWERSHELL_UPDATECHECK = 'Default'

További információ a frissítési értesítésekről.

Új DSC-erőforrás-támogatás Invoke-DSCResource (kísérleti)

Megjegyzés

Ez egy PSDesiredStateConfiguration.InvokeDscResource nevű kísérleti funkció. További információ: Kísérleti funkciók használata.

A Invoke-DscResource parancsmag egy megadott PowerShell-Desired State Configuration -erőforrás (DSC) metódusát futtatja.

Ez a parancsmag közvetlenül meghív egy DSC-erőforrást konfigurációs dokumentum létrehozása nélkül. Ezzel a parancsmaggal a konfigurációkezelési termékek DSC-erőforrások használatával kezelhetik a Windowst vagy a Linuxot. Ez a parancsmag az erőforrások hibakeresését is lehetővé teszi, ha a DSC-motor engedélyezve van a hibakereséssel.

Ez a parancs meghívja a WindowsProcess nevű erőforrás Set metódusát, és megadja a kötelező Elérési út és argumentumok tulajdonságokat a megadott Windows-folyamat elindításához.

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
  Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
  Arguments = ''
}

További információ az Invoke-DSCResource-ról.

Kompatibilitástörő változások és fejlesztések

Kompatibilitástörő változások

  • Frissítési értesítés támogatása LTS és alapértelmezett csatornák (#11132)
  • Frissítse a Test-Connection, hogy jobban hasonlítsa a Windows PowerShell (#10697) (Köszönjük@vexx32!)
  • Megtartja a $? parenExpression, SubExpression és ArrayExpression (#11040) esetén
  • Állítsa a munkakönyvtárat az aktuális könyvtárra Start-Job (#10920) (Köszönjük @iSazonov!)
  • A $PSCulture következetesen tükrözze a munkameneten belüli kulturális változásokat (#10138) (Köszönet @iSazonov!)

Motor Frissítések és javítások

  • A töréspont API-k fejlesztései távoli forgatókönyvekhez (#11312)
  • A PowerShell-osztálydefiníció egy másik runspace-be való kiszivárgásának javítása (#11273)
  • Kijavítottuk a 7.0.0-Preview1 fájlban hozzáadott FirstOrDefault primitív által okozott formázási regressziót (#11258)
  • További Microsoft-modulok a PS7 telemetriában való nyomon követéshez (#10751)
  • Jóváhagyott funkciók nem kísérleti jellegűvé tétele (#11303)
  • Frissítse a ConciseView-t a TargetObject használatához, ha van (#11075)
  • A NullReferenceException javítása a CompletionCompleters nyilvános metódusaiban (#11274)
  • A lakás szálállapot-ellenőrzésének javítása nem Windows-platformokon (#11301)
  • A PSModulePath frissítési beállítása a folyamat- és a gépi környezeti változók összefűzéséhez (#11276)
  • Bump .NET Core to 3.1.0 (#11260)
  • A $env:PATH (#11141) előtti $PSHOME észlelésének javítása
  • Engedélyezze a pwsh számára a $env:PSModulePath öröklődését, és engedélyezze a powershell.exe helyes indítását (#11057)
  • Ugrás a .NET Core 3.1 1. előzetes verziójára (#10798)
  • Újrabontási címkeellenőrzések a fájlrendszer-szolgáltatóban (#10431) (Köszönet @iSazonov!)
  • Cserélje le a CR és az új sort egy 0x23CE karakterre a szkriptnaplózásban (#10616)
  • Erőforrásszivárgás javítása az eseménykezelő AppDomain.CurrentDomain.ProcessExit (#10626) regisztrációjának törlésével
  • Támogatás hozzáadása az ActionPreference.Break függvényhez, hogy hibakeresőbe törjön, amikor hibakeresési, hiba-, információ-, folyamat-, részletes- vagy figyelmeztető üzenetek jönnek létre (#8205) (Köszönet @KirkMunro!)
  • Engedélyezze a vezérlőpult-bővítmények indítását a PowerShellben anélkül, hogy meg kell adnia .CPL bővítményt. (#9828)
  • Negatív számok támogatása felosztásos operátorban (#8960) (Köszönjük @ece-jacob-scott!)

Általános parancsmag Frissítések és javítások

  • Javítás a UnixStat kísérleti funkció fájlmódosítási dátumának beállításával kapcsolatos Raspbian-probléma megoldásához (#11313)
  • -AsPlainText hozzáadása ConvertFrom-SecureString (#11142)
  • WindowsPS-verzió-ellenőrzés hozzáadva a WinCompathoz (#11148)
  • Hibajelentés javítása egyes WinCompat-forgatókönyvekben (#11259)
  • Natív bináris feloldó hozzáadása (#11032) (Köszönet @iSazonov!)
  • A karakterszélesség kiszámításának frissítése a CJK-karakter helyes tiszteletben tartása érdekében (#11262)
  • Unblock-File hozzáadása macOS rendszerhez (#11137)
  • Regresszió javítása Get-PSCallStack (#11210) (Köszönjük @iSazonov!)
  • Az ScheduledJob modul automatikus betöltésének eltávolítása feladatparancsmagok használatakor (#11194)
  • Adja hozzá az OutputType értéket Get-Error parancsmaghoz, és őrizze meg az eredeti típusneveket (#10856)
  • Nullhivatkozás javítása a SupportsVirtualTerminal tulajdonságban (#11105)
  • Limit check in Get-WinEvent (#10648) (Köszönet @iSazonov!)
  • Kijavítottuk a parancs futtatókörnyezetét, hogy a StopUpstreamCommandsException ne legyen kitöltve az -ErrorVariable (#10840) fájlban.
  • Állítsa a kimeneti kódolást a következőre: [Konzol]::OutputEncoding natív parancsokhoz (#10824)
  • Többsoros kódblokkok támogatása példákban (#10776) (Köszönet @Greg-Smulko!)
  • Kulturális paraméter hozzáadása Select-String parancsmaghoz (#10943) (Köszönet @iSazonov!)
  • A munkakönyvtár elérési útjának javítása Start-Job záró fordított perjellel (#11041)
  • ConvertFrom-Json: Alapértelmezés szerint bontsa ki a gyűjteményeket (#10861) (Köszönet @danstur!)
  • Kis- és nagybetűket megkülönböztető kivonattábla használata Group-Object-CaseSensitive és -AsHashtable kapcsolókkal (#11030) (Köszönjük @vexx32!)
  • Kivétel kezelése, ha a fájlok számbavétele meghiúsul az elérési út megfelelő burkolatú újraépítésekor (#11014)
  • Kijavítottuk a ConciseView-t, hogy a tevékenység jelenjen meg a myCommand helyett (#11007)
  • A webes parancsmagok figyelmen kívül hagyják a HTTP-hibaállapotokat (#10466) (Köszönet @vdamewood!)
  • Egynél több CommandInfo csőhálózatának javítása Get-Command (#10929)
  • Get-Counter windowsos parancsmag hozzáadása (#10933)
  • Az ConvertTo-Json kezelje az [AutomationNull]::Value és a [NullString]::Value $null (#10957)
  • Szögletes zárójelek eltávolítása az ipv6-címről SSH-visszaalakításhoz (#10968)
  • Kijavíthatja az összeomlást, ha a pwsh-nak küldött parancs csak szóköz (#10977)
  • Platformfüggetlen Get-Clipboard és Set-Clipboard (#10340) hozzáadva
  • Kijavítottuk azt a beállítást, hogy a fájlrendszerobjektum eredeti elérési útja ne legyen plusz perjellel (#10959)
  • Támogatási $null ConvertTo-Json esetén (#10947)
  • Out-Printer parancs hozzáadása Windows rendszeren (#10906)
  • A -WorkingDirectory Start-Job javítása szóközzel (#10951)
  • A PSConfiguration.cs fájlban (#10963) lévő beállítás null értékének visszaadása (Köszönet @iSazonov!)
  • I/O-kivétel kezelése nem megszakítóként (#10950)
  • GraphicalHost-szerelvény hozzáadása az Out-GridView, a Show-Command és a Get-Help -ShowWindow engedélyezéséhez (#10899)
  • A ComputerName használata folyamaton keresztül Get-HotFix (#10852) (Köszönet @kvprasoon!)
  • A paraméterek lapkiegészítésének javítása, hogy az elérhetőként jelenítsen meg gyakori paramétereket (#10850)
  • A GetCorrectCasedPath() javítása annak ellenőrzéséhez, hogy a Rendszerfájl-bejegyzések vissza vannak-e adva a First() hívása előtt (#10930)
  • Állítsa a munkakönyvtárat az aktuális könyvtárra Start-Job (#10920) (Köszönjük @iSazonov!)
  • Módosítsa a TabExpansion2-t úgy, hogy ne követelje meg a -CursorColumn értéket, és kezelje $InputScript.Length (#10849)
  • Olyan eset kezelése, ahol a gazdagép nem feltétlenül ad vissza sorokat vagy képernyőoszlopokat (#10938)
  • A nem támogatott gazdagépek jelölőszíneinek használata kijavítva (#10937)
  • Update-List parancs hozzáadása (#10922)
  • A Clear-RecycleBin FWLink-azonosítójának frissítése (#10925)
  • A lap befejezésekor hagyja ki a fájlt, ha nem tudja olvasni a fájlattribútumokat (#10910)
  • Windows Clear-RecycleBin hozzáadása (#10909)
  • Hozzáadás $env:__SuppressAnsiEscapeSequences annak szabályozásához, hogy legyen-e VT feloldóütemezés a kimenetben (#10814)
  • -NoEmphasize paraméter hozzáadása Select-String kimenet színezéséhez (#8963) (Köszönet @derek-xia!)
  • Get-HotFix parancsmag hozzáadása (#10740)
  • Add-Type használhatóvá tétele a PowerShellt futtató alkalmazásokban (#10587)
  • Hatékonyabb kiértékelési sorrend használata a LanguagePrimitives.IsNullLike() (#10781) alkalmazásban (Köszönet @vexx32!)
  • A vegyes gyűjteményű csőbemenetek és a bemeneti adatfolyamok kezelésének javítása Format-Hex -ban (#8674) (Köszönet @vexx32!)
  • Használjon típuskonverziót az SSHConnection kivonattáblákban, ha az érték nem egyezik a várt típussal (#10720) (Köszönet @SeeminglyScience!)
  • Kijavítottuk Get-Content -ReadCount 0 viselkedését, ha a -TotalCount be van állítva (#10749) (Köszönjük @eugenesmlv!)
  • Az Get-WinEvent (#10639) újraszavas hozzáférés megtagadva hibaüzenete (Köszönet @iSazonov!)
  • Tabulátorkiegészítés engedélyezése korlátozott enumerált vagy típus típusú változók hozzárendeléséhez (#10646)
  • Távolítsa el a nem használt SourceLength újraformázási tulajdonságot, amely formázási problémákat okoz (#10765)
  • -Elválasztó paraméter hozzáadása ConvertFrom-StringData (#10665) (Köszönet @steviecoaster!)
  • A ScriptBlock pozícióparaméterének hozzáadása Invoke-Command SSH-val való használatakor (#10721) (Köszönet @machgo!)
  • Sorkörnyezeti információk megjelenítése, ha több sor van, de nincs szkriptnév a ConciseView-hoz (#10746)
  • A \wsl$\ elérési utak támogatásának hozzáadása a fájlrendszer-szolgáltatóhoz (#10674)
  • Adja hozzá a TokenKind.QuestionMark hiányzó tokenszövegét az elemzőben (#10706)
  • Állítsa be az egyes ForEach-Object -Parallel futó szkriptek aktuális munkakönyvtárát a hívó szkripttel megegyező helyre. (#10672)
  • Cserélje le a api-ms-win-core-file-l1-2-2.dll a FindFirstStreamW és a FindNextStreamW API-k (#10680) Kernell32.dll-ra (Köszönjük @iSazonov!)
  • A súgóformázási szkript finomhangolása a StrictMode toleránsabbra (#10563)
  • Adja hozzá a -SecurityDescriptorSDDL paramétert a New-Service (#10483) elemhez (köszönet @kvprasoon!)
  • Távolítsa el az információs kimenetet, konszolidálja a pinghasználatot Test-Connection (#10478) (Köszönjük @vexx32!)
  • Speciális újraelemzési pontok olvasása hozzáférés nélkül (#10662) (Köszönet @iSazonov!)
  • Közvetlen Clear-Host kimenet a terminálra (#10681) (Köszönet @iSazonov!)
  • Új sor hozzáadása Format-Table és -Property (#10653) csoportosításhoz
  • Távolítsa el a [ValidateNotNullOrEmpty] elemet az -InputObject elemből Get-Random üres sztring engedélyezéséhez (#10644)
  • Javaslati rendszer sztring távolság algoritmus kis- és nagybetűk megkülönböztetése (#10549) (Köszönet @iSazonov!)
  • Nullhivatkozási kivétel kijavítása ForEach-Object párhuzamos bemeneti feldolgozásban (#10577)
  • PowerShell-csoportházirend-definíciók hozzáadása (#10468)
  • Frissítse a konzol gazdagépét a kompatibilitási forgatókönyvekben használt XTPUSHSGR/XTPOPSGR VT vezérlési sorozatok támogatásához. (#10208)
  • WorkingDirectory paraméter hozzáadása Start-Job (#10324) (Köszönet @davinci26!)
  • Távolítsa el azt az eseménykezelőt, amely a töréspont-módosításokat hibásan replikálta a gazdagép runspace hibakeresőjére (#10503) (Köszönet @KirkMunro!)
  • Cserélje le api-ms-win-core-job-12-1-0.dll Kernell32.dll-re a Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Köszönet @iSazonov!)
  • Kijavítottuk New-Service helytelen kimenetét változó-hozzárendelésben és -OutVariable (#10444) (Köszönet @kvprasoon!)
  • A kilépési kód, a parancssori paraméterek és a szóközökkel rendelkező elérési út globális eszközproblémáinak elhárítása (#10461)
  • Rekurzió javítása a OneDrive-on – a FindFirstFileEx() módosítása a SafeFindHandle típus használatára (#10405)
  • A PSReadLine automatikus betöltésének kihagyása Windows rendszeren, ha az NVDA képernyőolvasója aktív (#10385)
  • A PowerShell-modul beépített verzióinak növelése a 7.0.0.0-s verzióra (#10356)
  • Adjon hozzá hibát a Add-Type, ha már létezik ilyen nevű típus (#9609) (Köszönjük @iSazonov!)

Teljesítmény

  • Kerülje a lezárás használatát a Parser.SaveError (#11006) alkalmazásban
  • A gyorsítótárazás javítása új Regex-példányok létrehozásakor (#10657) (Köszönet @iSazonov!)
  • A PowerShell beépített típusadatainak feldolgozásának javítása a types.ps1xml, typesV3.ps1xml és GetEvent.types.ps1xml fájlból (#10898)
  • Frissítse a PSConfiguration.ReadValueFromFile fájlt a gyorsabb és hatékonyabb memóriahasználat érdekében (#10839)
  • Kisebb teljesítménybeli fejlesztések hozzáadása a runspace inicializálásához (#10569) (Köszönet @iSazonov!)
  • A ForEach-Object gyorsabbá tétele a gyakran használt forgatókönyvekhez (#10454) és ForEach-Object párhuzamos teljesítményproblémák kijavítása számos runspace esetében (#10455)

Kódkarbantartó

  • Megjegyzés és elem szövegének módosítása a Microsoft szabványainak megfelelően (#11304)
  • Cleanup style issues in Compiler.cs (#10368) (Köszönet @iSazonov!)
  • Távolítsa el a VesszőDelimitedStringCollection (#11000) nem használt típuskonverterét (Köszönet @iSazonov!)
  • Cleanup style in InitialSessionState.cs (#10865) (Köszönet @iSazonov!)
  • Kód törlése a PSSession osztályhoz (#11001)
  • Távolítsa el a nem működő "futtatási Update-Help Get-Help, amikor Get-Help először fut" funkció (#10974)
  • Stílusproblémák elhárítása (#10998) (Köszönet @iSazonov!)
  • Törlés: használja a beépített típusaliast (#10882) (Köszönjük @iSazonov!)
  • Távolítsa el a ConsolePrompting nem használt beállításkulcsot, és kerülje a szükségtelen sztringek létrehozását az ExecutionPolicy beállítás lekérdezésekor (#10985)
  • A napi buildek frissítési értesítéseinek letiltása (#10903) (Köszönet @bergmeister!)
  • Elveszett hibakeresési API visszaállítása a #10338-ban (#10808)
  • A már nem használt WorkflowJobSourceAdapter-hivatkozás eltávolítása (#10326) (Köszönet @KirkMunro!)
  • COM-felületek törlése a gyorslista kódjában a PreserveSig attribútumok javításával (#9899) (Köszönet @weltkante!)
  • Adjon hozzá egy megjegyzést, amely leírja, hogy az -ia miért nem az -InformationAction gyakori paraméterének aliasa (#10703) (Köszönet @KirkMunro!)
  • Nevezze át az InvokeCommandCmdlet.cs nevet InvokeExpressionCommand.cs (#10659) névre (Köszönet @kilasuit!)
  • Frissítési értesítésekhez kapcsolódó kisebb kódkarbantartók hozzáadása (#10698)
  • Elavult munkafolyamat-logika eltávolítása a törlési beállítási szkriptekből (#10320) (Köszönet @KirkMunro!)
  • A súgó formátumának frissítése a megfelelő eset használatához (#10678) (Köszönet @tnieto88!)
  • Az elmúlt hónapban (#10591) megjelenő CodeFactor-stílusproblémák törlése (Köszönet @iSazonov!)
  • Kijavítottuk az elírást a PSTernaryOperator kísérleti funkció leírásában (#10586) (Köszönet @bergmeister!)
  • Az ActionPreference.Suspend enumerálási érték konvertálása nem támogatott, fenntartott állapotba, és az ActionPreference használatának korlátozásainak eltávolítása.Mellőzés a beállítási változókban (#10317) (Köszönet @KirkMunro!)
  • Cserélje le a ArrayList elemet a T> listára<, hogy olvashatóbb és megbízhatóbb kódot kapjon a funkciók módosítása nélkül (#10333) (Köszönet@iSazonov!)
  • Kódstílus-javítások készítése a TestConnectionCommand (#10439) parancshoz (Köszönet @vexx32!)
  • Automation eltávolításaA SetSessionStateDrive metódushívás (#10416) eltávolítása (Köszönet @iSazonov!)
  • Nevezze vissza az alapértelmezett ParameterSetName nevet az ConvertTo-Csv és a ConvertFrom-Csv elválasztó értékére (#10425)

Eszközök

  • Adja hozzá az SDKToUse tulajdonság alapértelmezett beállítását, hogy az a VS-ben (#11085) legyen létrehozva
  • Install-Powershell.ps1: Paraméter hozzáadása AZ MSI telepítéséhez (#10921) (Köszönet @MJECloud!)
  • Adjon hozzá alapvető példákat install-powershell.ps1 (#10914) (Köszönet @kilasuit!)
  • Az üres sztring Install-PowerShellRemoting.ps1 kezelése a PowerShellHome paraméterben (#10526) (Köszönet @Orca88!)
  • Váltás az /etc/lsb-release kiadásról az /etc/os-release kiadásra install-powershell.sh (#10773) (Köszönjük @Himura2la!)
  • Ellenőrizze pwsh.exe és pwsh-t a Windows napi verziójában (#10738) (Köszönjük @centreboard!)
  • Szükségtelen koppintás eltávolítása installpsh-osx.sh (#10752)
  • A install-powershell.ps1 frissítése a már telepített napi build (#10489) ellenőrzéséhez

Tesztek

  • Megbízhatatlan DSC-teszt függőben (#11131)
  • A sztringadatteszt javítása a kivonattáblák kulcsainak helyes ellenőrzéséhez (#10810)
  • Tesztmodulok eltávolítása (#11061) (Köszönet @iSazonov!)
  • Idő növelése a tesztelési URL-cím újrapróbálkozásai között (#11015)
  • Frissítse a teszteket a tesztműveletek pontos leírásához. (#10928) (Köszönet @romero126!)
  • Ideiglenesen hagyja ki a TestAppDomainProcessExitEvenHandlerNotLeaking (#10827) pelyhes tesztet
  • Az eseménykezelő kiszivárgási tesztjének stabilsá tétele (#10790)
  • Szinkronizálási nagybetűk a CI YAML-ben (#10767) (Köszönet @RDIL!)
  • Teszt hozzáadása az eseménykezelő szivárgási javításához (#10768)
  • Get-ChildItem teszt hozzáadása (#10507) (Köszönet @iSazonov!)
  • Cserélje le a tesztek nem egyértelmű nyelvét a pontosság paraméterére való váltásról paraméterre (#10666) (Köszönet @romero126!)
  • Kísérleti ellenőrzés hozzáadása ForEach-Object -Parallel tesztekhez (#10354) (Köszönet @KirkMunro!)
  • Frissítési tesztek az Alpine-ellenőrzéshez (#10428)

Build- és csomagfejlesztések

  • Nuget-csomagaláírás javítása koordinált csomag build esetén (#11316)
  • Függőségek frissítése PowerShell-galéria és NuGet használatával (#11323)
  • Bump Microsoft.ApplicationInsights 2.11.0-ról 2.12.0-ra (#11305)
  • Bump Microsoft.CodeAnalysis.CSharp 3.3.1-ről 3.4.0-ra (#11265)
  • Frissítések debian 10-hez és 11-hez készült csomagok (#11236)
  • Csak kísérleti funkciók engedélyezése az RC előtt (#11162)
  • A macOS minimális verziójának frissítése (#11163)
  • Bump NJsonSchema 10.0.27 és 10.0.28 (#11170)
  • A README.md és a metadata.json hivatkozásainak frissítése az Preview.5-höz (#10854)
  • Válassza ki a PowerShell tulajdonában lévő megfelelőségi tesztek fájljait (#10837)
  • A win7x86 msix-csomag buildelésének engedélyezése. (Belső 10515)
  • Szemantikai verziók átadásának engedélyezése a NormalizeVersion függvénynek (#11087)
  • A .NET Core-keretrendszer fejlesztése a 3.1-preview.3-ra (#11079)
  • Bump PSReadLine 2.0.0-beta5 2.0.0-beta6 in /src/Modules (#11078)
  • Bump Newtonsoft.Json 12.0.2 és 12.0.3 (#11037) (#11038)
  • Debian 10, 11 és CentOS 8 csomagok hozzáadása (#11028)
  • Töltse fel Build-Info Json-fájlt a ReleaseDate mezővel (#10986)
  • A .NET Core-keretrendszer fejlesztése a 3.1-preview.2 verzióra (#10993)
  • Az x86 MSIX-csomag buildjének engedélyezése (#10934)
  • A dotnet SDK telepítési szkript URL-címének frissítése a build.psm1 fájlban (#10927)
  • Bump Markdig.Signed 0.17.1 és 0.18.0 között (#10887)
  • Bump ThreadJob 2.0.1 és 2.0.2 között (#10886)
  • Az AppX Jegyzékfájl és csomagolás modul frissítése az MS Store követelményeinek megfelelően (#10878)
  • A PowerShell SDK csomagreferenciájának frissítése az preview.5 verzióra (belső 10295)
  • ThirdPartyNotices.txt frissítése (#10834)
  • A Microsoft.PowerShell.Native 7.0.0-preview.3 verzióra (#10826)
  • Bump Microsoft.ApplicationInsights 2.10.0-ról 2.11.0-ra (#10608)
  • Bump NJsonSchema 10.0.24 és 10.0.27 (#10756)
  • MacPorts-támogatás hozzáadása a buildrendszerhez (#10736) (Köszönet @Lucius-Q-User!)
  • Bump PackageManagement 1.4.4 és 1.4.5 között (#10728)
  • Bump NJsonSchema 10.0.23 és 10.0.24 (#10635)
  • Környezeti változó hozzáadása az ügyfél-/kiszolgáló telemetriai adatok megkülönböztetéséhez az MSI-ben (#10612)
  • Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
  • Bump Microsoft.CodeAnalysis.CSharp 3.2.1 és 3.3.1 között (#10607)
  • Frissítés a .Net Core 3.0 RTM-hez (#10604) (köszönjük @bergmeister!)
  • Frissítse az MSIX-csomagolást úgy, hogy a verzió megfeleljen a Windows Áruház követelményeinek (#10588)
  • Bump PowerShellGet-verzió 2.2-től 2.2.1-es verzióig (#10382)
  • Bump PackageManagement 1.4.3-tól 1.4.4-es verzióig (#10383)
  • A README.md és a metadata.json frissítése a 7.0.0-preview.4 verzióhoz (belső 10011)
  • Frissítse a .Net Core 3.0-s verzióját a 9. előzetes verzióról az RC1-re (#10552) (Köszönjük @bergmeister!)
  • A ExperimentalFeature lista generálásának javítása (belső 9996)
  • Bump PSReadLine verzió 2.0.0-beta4 2.0.0-beta5 (#10536)
  • Kiadási build szkript javítása a kiadási címke beállításához
  • A Microsoft.PowerShell.Native verzió frissítése a 7.0.0-preview.2 verzióra (#10519)
  • Frissítés a Netcoreapp3.0 előzetes verziójára9 (#10484) (Köszönjük @bergmeister!)
  • Győződjön meg arról, hogy a napi koordinált build napi build (#10464)
  • Frissítse a kombinált csomag buildet a napi buildek kiadásához (#10449)
  • Appveyor-referencia eltávolítása (#10445) (Köszönet @RDIL!)
  • Bump NJsonSchema verzió 10.0.22 és 10.0.23 (#10421)
  • Távolítsa el a linux-x64 buildmappa törlését, mert az Alpine egyes függőségeinek szüksége van rá (#10407)

Dokumentáció és súgótartalom

  • Naplók újrabontása kiadásonként egy naplóba (#11165)
  • FWLinkek javítása a PowerShell 7 online súgódokumentumaihoz (#11071)
  • CONTRIBUTING.md frissítése (#11096) (Köszönet @mklement0!)
  • A telepítési dokumentum hivatkozásait javítottuk a README.md -ban (#11083)
  • Példák hozzáadása install-powershell.ps1 szkripthez (#11024) (Köszönet @kilasuit!)
  • Javítás a CHANGELOG.md Select-String kiemeléséhez és Import-DscResource (#10890)
  • Távolítsa el az elavult hivatkozást a powershell-beginners-guide.md (#10926)
  • Stabil és karbantartási változásnaplók egyesítése (#10527)
  • A használt .NET-verzió frissítése a dokumentációkban (#10775) (Köszönet @Greg-Smulko!)
  • Cserélje le az MSDN-ből a Microsoft Learnre mutató hivatkozásokat powershell-beginners-guide.md (#10778) (Köszönjük @iSazonov!)
  • A DSC hibás áttekintési hivatkozásának javítása (#10702)
  • Frissítse Support_Question.md fájlt úgy, hogy a Stack Overflow-hoz egy másik közösségi erőforrásként (#10638) hivatkozik (köszönjük) @mklement0!)
  • Processzorarchitektúra hozzáadása a terjesztési kérelemsablonhoz (#10661)
  • Új PowerShell MoL-könyv hozzáadása a PowerShell-dokumentumok megismeréséhez (#10602)
  • A 6.1.6-os és a 6.2.3-es verzió (#10523) README.md és metaadatainak frissítése
  • Elírás javítása a README.md (#10465) alkalmazásban (Köszönet @vedhasp!)
  • A PSKoans modulra mutató hivatkozás hozzáadása a Learning Resources dokumentációhoz (#10369) (Köszönet @vexx32!)
  • A README.md és a metadata.json frissítése a 7.0.0-preview.3 verzióhoz (#10393)