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 modulokat importáljanak egy implicit Windows PowerShell munkamenetbe
  • 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 szolgáltatások é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 rendszeren, többek között:

  • 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+

A PowerShell 7.0 emellett 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 csomagokat is biztosított az Archhoz és a Kali Linuxhoz.

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-visszalépé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át ismertető cikkben talál további információt.

A PowerShell 7 futtatása

A PowerShell 7 a Windows PowerShell külön könyvtárba települ. 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á van adva a következőhöz: $env:PATH

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

  • PowerShell 6.x Windows rendszeren: a 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 indítására használható végrehajtható fájl neve powershell.exe. A 6-os és újabb verziókban 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 szükséges ú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 jelöli, így jelentősen nagyobb kompatibilitást tesz lehetővé a meglévő Windows PowerShell modulokkal. Ez számos olyan modult tartalmaz a Windowson, amelyekhez grafikus felhasználói felületi funkciók szükségesek( például Out-GridView és Show-Command), valamint számos, a Windows részét képező szerepkörkezelési modul.

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 egy helyi Windows PowerShell folyamatot használ a modulban található parancsmagok implicit futtatásához. További információ az Import-Module 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 mostantól 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 Parallel paraméter határozza meg az egyes bemeneti naplók neveihez párhuzamosan futó szkriptblokkot.

Az új ThrottleLimit paraméter korlátozza az egy 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 ábrázolásához. $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 lesz értékelve, és az eredmény logikai értékre lesz konvertálva annak meghatározásához, hogy melyik ág lesz kiértékelve a következő lépésben:

  • 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 az Elérési út létezik elem jelenik meg. Ha az elérési út nem létezik, akkor a nem található elérési út jelenik meg.

További információ : Ha.

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 a és a és hasonló bashzshrendszerhéjak AND és OR listáihoz, 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 végrehajtja a jobb oldali folyamatot, ha a bal oldali folyamat meghiúsult.

Megjegyzés

Ezek az operátorok a és $LASTEXITCODE változókkal $? határozzák meg, hogy egy folyamat sikertelen volt-e. Ez lehetővé teszi, hogy natív parancsokkal használja őket, nem csak parancsmagokkal vagy függvényekkel.

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 szénerőforrás-kezelőt ??, a Null feltételes hozzárendelést ??=és a Null feltételes taghozzáférési operátorokat ?. és ?[]a -t.

Null-coalescing operátor ??

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

$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 értékű 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ű.

$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 értékű feltételes operátor csak akkor engedélyezi a tagok hozzáférését az operandushoz , ?.vagy elemhozzáférést, ?[]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 az operátorok 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 status ( Állapot) tagtulajdonság értéke lesz visszaadva:

$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, az elem nem lesz elérhető, és 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 kiválaszthatóak a beállítási változóval $ErrorView.

A ConciseView esetében, ha egy hiba nem szkriptből vagy elemzési 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 hol található a hiba az adott sorban. Ha a terminál nem támogatja az ANSI színelválasztó 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

A rendszer hozzáad egy új ErrorAccentColor tulajdonságot 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 hibáró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 (Megjelenítés get-error) alapján

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 az aktuális munkamenetből hány hiba jelenjen meg.

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ések meglétére. Naponta egyszer a PowerShell 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ójától/ágátó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 általánosan elérhető 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ú, RC- és GA-kiadások frissítéseiről.

A frissítési értesítés viselkedése a $Env:POWERSHELL_UPDATECHECK 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ékkel $Env:POWERSHELL_UPDATECHECK
    • A GA-kiadások értesítést küldenek a GA-kiadások frissítéseiről
    • Előzetes/RC-kiadások – értesítés a ga és az előzetes verziók frissítéseiről
  • Kikapcsolva a frissítési értesítési 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 első alkalommal van beá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 Default következőre:

$Env:POWERSHELL_UPDATECHECK = 'Default'

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

Új DSC-erőforrástá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 hív meg 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ések 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önet@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!)
  • Az $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)
  • Egy másik runspace-be (#11273) kiszivárgott PowerShell-osztálydefiníció javítása
  • Kijavítottuk a 7.0.0-Preview1 fájlban hozzáadott FirstOrDefault primitív által okozott regressziót (#11258)
  • További, a PS7 telemetriában nyomon követhető Microsoft-modulok (#10751)
  • Jóváhagyott funkciók nem kísérleti jellegűvé tétele (#11303)
  • Frissítse a ConciseView-t a TargetObject használatára, ha van (#11075)
  • A NullReferenceException kivétel javítása a CompletionCompleters nyilvános metódusokban (#11274)
  • A lakásszá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ép környezeti változóinak ö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, hogy a pwsh örökölje $env:PSModulePath fájlt, és engedélyezze a powershell.exe megfelelő indítását (#11057)
  • Ugrás a .NET Core 3.1 1. előzetes verziójára (#10798)
  • Újrabontási címkék újraelemzése 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
  • Az ActionPreference.Break támogatásának hozzáadása hibakeresési, hibakeresési, hiba-, információ-, folyamat-, részletes- vagy figyelmeztető üzenetek létrehozásakor (#8205) @KirkMunro!)
  • Engedélyezze a Vezérlőpult bővítményeinek elindítását a PowerShellben .CPL bővítmény megadása nélkül. (#9828)
  • Negatív számok támogatása -split operátorban (#8960) (Köszönet @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-hibá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 számításának frissítése a CJK-karakterek helyes figyelembevételével (#11262)
  • Unblock-File hozzáadása macOS rendszerhez (#11137)
  • Regresszió javítása Get-PSCallStack (#11210) (Köszönet @iSazonov!)
  • Az Ütemezett feladat modul automatikus betöltésének eltávolítása feladatparancsmagok használata esetén (#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.
  • A kimeneti kódolás beállítása a következőre: [Konzol]::OutputEncoding natív parancsokhoz (#10824)
  • Többsoros kódblokkok támogatása példákban (#10776) (Köszönjük @Greg-Smulko!)
  • Kulturális paraméter hozzáadása Select-String parancsmaghoz (#10943) (Köszönet @iSazonov!)
  • Start-Job munkakönyvtár elérési útjának javítása záró fordított perjellel (#11041)
  • ConvertFrom-Json: Alapértelmezés szerint bontsa ki a gyűjteményeket (#10861) (Köszönjük @danstur!)
  • A -CaseSensitive és -AsHashtable kapcsolókkal (#11030) rendelkező Group-Object parancsmag kis- és nagybetűk megkülönböztetése esetén használható. @vexx32!)
  • Kivétel kezelése, ha a fájlok számbavétele meghiúsul a megfelelő burkolatú elérési út újraépítésekor (#11014)
  • A ConciseView javítása a tevékenység megjelenítéséhez a myCommand helyett (#11007)
  • A webes parancsmagok figyelmen kívül hagyják a HTTP-hibaállapotokat (#10466) (Köszönjük @vdamewood!)
  • Több CommandInfo csőhálózatának javítása Get-Command (#10929)
  • Get-Counter windowsos parancsmag hozzáadása (#10933)
  • ConvertTo-Json kezelje az [AutomationNull]::Value és [NullString]::Value as $null (#10957)
  • Szögletes zárójelek eltávolítása az IPV6-címről SSH-remoting esetén (#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, hogy a fájlrendszerobjektum eredeti elérési útja ne legyen plusz perjel (#10959)
  • ConvertTo-Json támogatási $null (#10947)
  • Out-Printer parancs hozzáadása Windows rendszeren (#10906)
  • A -WorkingDirectory Start-Job javítása szóközzel (#10951)
  • Alapértelmezett értéket ad vissza, ha null értéket kap egy beállításhoz a PSConfiguration.cs (#10963) (Köszönjük @iSazonov!)
  • Az I/O-kivétel kezelése nem megszakításként (#10950)
  • GraphicalHost-szerelvény hozzáadása az Out-GridView, a Show-Command és a Get-Help -ShowWindow (#10899) engedélyezéséhez
  • 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 annak érdekében, hogy a gyakori paraméterek elérhetőként jelenhessenek meg (#10850)
  • Javítsa ki a GetCorrectCasedPath() hibát 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 igényeljen -CursorColumn értéket, és $InputScript.Length (#10849)ként kezeljen
  • Olyan eset kezelése, ahol a gazdagép nem feltétlenül ad vissza képernyősorokat vagy oszlopokat (#10938)
  • A nem támogatott gazdagépek jelölőszíneinek használatának javítása (#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ási sorozat a kimenetben (#10814)
  • -NoEmphasize paraméter hozzáadása Select-String kimenet színezéséhez (#8963) (Köszönjük @derek-xia!)
  • Get-HotFix parancsmag hozzáadása (#10740)
  • Add-Type használhatóvá tétele a PowerShellt futtató alkalmazásokban (#10587)
  • Hatékonyabb értékelési sorrend használata a LanguagePrimitives.IsNullLike() (#10781) (Köszönjük @vexx32!)
  • A vegyes gyűjteménybemenetű csőbemenetek és a bemenő vezetékes adatfolyamok kezelésének javítása Format-Hex (#8674) (Köszönjük @vexx32!)
  • Típuskonverzió használata SSHConnection-kivonattáblákban, ha az érték nem egyezik a várt típussal (#10720) (Köszönjük @SeeminglyScience!)
  • Javítsa Get-Content -ReadCount 0 viselkedését a -TotalCount beállításakor (#10749) (Köszönjük @eugenesmlv!)
  • Hozzáférés megtagadva hibaüzenet újraszavazása Get-WinEvent (#10639) (Köszönjük @iSazonov!)
  • Tabulátorkiegészítés engedélyezése korlátozott vagy számozott változó-hozzárendeléshez (#10646)
  • Távolítsa el a nem használt SourceLength újraformázási tulajdonságot, amely formázási problémákat okoz (#10765)
  • -Határoló paraméter hozzáadása ConvertFrom-StringData (#10665) (Köszönjük @steviecoaster!)
  • Pozícióparaméter hozzáadása a ScriptBlockhoz Invoke-Command SSH-val való használatakor (#10721) (Köszönjük @machgo!)
  • Vonalkö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)
  • A TokenKind.QuestionMark hiányzó tokenszövegének hozzáadása az elemzőben (#10706)
  • Állítsa az egyes ForEach-Object -Parallel futó szkriptek aktuális munkakönyvtárát ugyanarra a helyre, mint a hívó szkript. (#10672)
  • Cserélje le 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 New-Service (#10483) (Köszönjük @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önjük @iSazonov!)
  • Közvetlen Clear-Host kimenet a terminálba (#10681) (Köszönet @iSazonov!)
  • Új vonal hozzáadása Format-Table és -Tulajdonsággal való csoportosításhoz (#10653)
  • Távolítsa el a [ValidateNotNullOrEmpty] elemet a -InputObject elemből Get-Random üres sztring engedélyezéséhez (#10644)
  • Javaslati rendszer sztring távolsági algoritmusának kis- és nagybetűk megkülönböztetése (#10549) (Köszönjük @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önjük @davinci26!)
  • Távolítsa el azt az eseménykezelőt, amely a töréspont-módosításokat hibásan replikálta a gazdafuttatási tér hibakeresőjébe (#10503) (Köszönet @KirkMunro!)
  • Cserélje le api-ms-win-core-job-12-1-0.dll Kernell32.dll a Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Köszönjük @iSazonov!)
  • Kijavítottuk New-Service helytelen kimenetét változó-hozzárendelésben és -OutVariable (#10444) (Köszönjük @kvprasoon!)
  • A kilépési kód, a parancssori paraméterek és az elérési út szóközökkel (#10461) kapcsolatos globális eszközproblémáinak megoldása
  • Rekurzió javítása a OneDrive-ban – a FindFirstFileEx() módosítása a SafeFindHandle típus (#10405) használatára
  • A PSReadLine automatikus betöltésének kihagyása Windows rendszeren, ha az NVDA képernyőolvasója aktív (#10385)
  • A Beépített PowerShell-modulverziók növelése a 7.0.0.0-ra (#10356)
  • Adjon hozzá hibát a Add-Type, ha már létezik azonos 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önjük @iSazonov!)
  • A PowerShell beépített típusadatainak feldolgozásának javítása a types.ps1xml, typesV3.ps1xml és GetEvent.types.ps1xml (#10898) szolgáltatásból
  • A PSConfiguration.ReadValueFromFile frissítése a gyorsabb és hatékonyabb memória é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önyvek (#10454) esetében, és ForEach-Object párhuzamos teljesítményproblémák megoldása számos futtatókörnyezettel (#10455)

Kódkarbantartás

  • Megjegyzés és elem szövegének módosítása a Microsoft szabványainak megfelelően (#11304)
  • A Compiler.cs stílusproblémái (#10368) (Köszönjük @iSazonov!)
  • Távolítsa el a VesszőDelimitedStringCollection (#11000) nem használt típuskonvertert (Köszönjük @iSazonov!)
  • Tisztítási stílus InitialSessionState.cs (#10865) (Köszönet @iSazonov!)
  • Kód törlése 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 aliast (#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 a ExecutionPolicy beállítás lekérdezésekor (#10985)
  • Frissítési értesítés ellenőrzésének letiltása a napi buildek esetében (#10903) (Köszönjük @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önjük @KirkMunro!)
  • COM-felületek törlése a gyorslista-kódban a PreserveSig attribútumok javításával (#9899) (Köszönjük @weltkante!)
  • Adjon hozzá egy megjegyzést, amely leírja, hogy az -ia miért nem az -InformationAction common paraméter aliasa (#10703) (Köszönjük @KirkMunro!)
  • Nevezze át InvokeCommandCmdlet.cs InvokeExpressionCommand.cs (#10659) névre (köszönet @kilasuit!)
  • Frissítési értesítésekhez kapcsolódó kisebb kódkarbantartások hozzáadása (#10698)
  • Elavult munkafolyamat-logika eltávolítása az átnevezési beállítási szkriptekből (#10320) (Köszönjük @KirkMunro!)
  • A súgó formátumának frissítése a megfelelő eset használatához (#10678) (Köszönjük @tnieto88!)
  • A CodeFactor-stílusokkal kapcsolatos problémák törlése a véglegesítésekben az elmúlt hónapban (#10591) (Köszönet @iSazonov!)
  • Kijavítottuk az elírást a PSTernaryOperator kísérleti funkció leírásában (#10586) (Köszönjük @bergmeister!)
  • ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#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ó módosítása nélkül (#10333) (Köszönjük@iSazonov!)
  • Kódstílus-javítások készítése a TestConnectionCommand (#10439) szolgáltatásban (Köszönjük @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 a ConvertTo-Csv és 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) épüljön fel.
  • Install-Powershell.ps1: Paraméter hozzáadása AZ MSI-telepítés használatához (#10921) (Köszönjük @MJECloud!)
  • Adjon hozzá alapvető példákat install-powershell.ps1 (#10914) (Köszönjük @kilasuit!)
  • Üres sztring Install-PowerShellRemoting.ps1 kezelése a PowerShellHome paraméterben (#10526) (Köszönet @Orca88!)
  • Váltson a /etc/lsb-release kiadásról a /etc/os 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 buildek ellenőrzéséhez (#10489)

Tesztek

  • Megbízhatatlan DSC-teszt függőben (#11131)
  • A sztringadat-teszt javítása a kivonattáblák kulcsainak helyes érvényesítéséhez (#10810)
  • Tesztmodulok eltávolítása (#11061) (Köszönet @iSazonov!)
  • A tesztelési URL-cím újrapróbálkozásai közötti idő növelése (#11015)
  • A tesztműveletek pontos leírásához frissítse a teszteket. (#10928) (Köszönet @romero126!)
  • Ideiglenesen hagyja ki a TestAppDomainProcessExitEvenHandlerNotLeaking (#10827) pelyhes tesztet
  • Az eseménykezelő szivá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ő kiszivárgási javításához (#10768)
  • Get-ChildItem teszt hozzáadása (#10507) (Köszönet @iSazonov!)
  • Cserélje le a nem egyértelmű nyelvet a tesztekhez a pontosság érdekében a kapcsolóról a paraméterre (#10666) (Köszönjük @romero126!)
  • Kísérleti ellenőrzés hozzáadása ForEach-Object párhuzamos tesztekhez (#10354) (Köszönjük @KirkMunro!)
  • Az Alpine-ellenőrzés frissítési tesztjei (#10428)

Build- és csomagfejlesztések

  • Nuget-csomagaláírás javítása koordinált csomag buildhez (#11316)
  • Függőségek frissítése a PowerShell-galéria és a NuGet szolgáltatásból (#11323)
  • A 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 a 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-ről 10.0.28-ra (#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)
  • Engedélyezze a win7x86 msix-csomag létrehozását. (Belső 10515)
  • Szemantikai verziók átadásának engedélyezése a NormalizeVersion függvénynek (#11087)
  • A .NET core keretrendszert a 3.1-preview.3-ra (#11079)
  • Bump PSReadLine 2.0.0-beta5 2.0.0-beta6 a /src/Modules (#11078)
  • Bump Newtonsoft.Json 12.0.2-ről 12.0.3-ra (#11037) (#11038)
  • Debian 10, 11 és CentOS 8 csomagok hozzáadása (#11028)
  • Build-Info Json-fájl feltöltése a ReleaseDate mezővel (#10986)
  • A .NET Core-keretrendszert a 3.1-preview.2-hez (#10993) kell hozzáadnia
  • 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 from 0.17.1 to 0.18.0 (#10887)
  • Bump ThreadJob 2.0.1 és 2.0.2 között (#10886)
  • Az AppX jegyzék- és csomagolási modul frissítése az MS Store követelményeinek megfelelően (#10878)
  • A PowerShell SDK csomagreferenciájának frissítése az előzetes verzióra.5 (belső 10295)
  • ThirdPartyNotices.txt frissítése (#10834)
  • A Microsoft.PowerShell.natív verzióval a 7.0.0-preview.3 verzióra (#10826)
  • A Microsoft.ApplicationInsights 2.10.0-ról 2.11.0-ra (#10608)
  • Bump NJsonSchema 10.0.24-ről 10.0.27-re (#10756)
  • MacPorts-támogatás hozzáadása a buildelési rendszerhez (#10736) (Köszönjük @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ótelemetria megkülönböztetéséhez az MSI-ben (#10612)
  • Bump PSDesiredStateConfiguration 2.0.3-ról 2.0.4-esre (#10603)
  • Bump Microsoft.CodeAnalysis.CSharp 3.2.1-ről 3.3.1-re (#10607)
  • Frissítés .Net Core 3.0 RTM-re (#10604) (köszönjük @bergmeister!)
  • Frissítse az MSIX-csomagolást úgy, hogy a verziót a Windows Áruház követelményeire (#10588) frissítse.
  • Bump PowerShellGet-verzió 2.2-ről 2.2.1-esre (#10382)
  • Bump PackageManagement 1.4.3-tól 1.4.4-es verzióig (#10383)
  • README.md és 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 létrehozásának javítása (belső 9996)
  • Bump PSReadLine verzió 2.0.0-béta4-ről 2.0.0-béta5 (#10536)
  • Kiadási buildelési 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ára (#10484) (Köszönjük @bergmeister!)
  • Győződjön meg arról, hogy a napi koordinált build napi build (#10464)
  • A kombinált csomag buildjének frissítése a napi buildek kiadásához (#10449)
  • Appveyor-referencia eltávolítása (#10445) (Köszönet @RDIL!)
  • Bump NJsonSchema verzió 10.0.22-ről 10.0.23-ra (#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

  • A 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ásainak javítása README.md (#11083)
  • Példák hozzáadása install-powershell.ps1 szkripthez (#11024) (Köszönjük @kilasuit!)
  • Javítás Select-String kiemeléshez és Import-DscResource CHANGELOG.md (#10890)
  • Az elavult hivatkozás eltávolítása 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 buildelési dokumentumokban (#10775) (Köszönjük @Greg-Smulko!)
  • Cserélje le az MSDN-ről a Microsoft Learnre mutató hivatkozásokat powershell-beginners-guide.md (#10778) (Köszönjük @iSazonov!)
  • Hibás DSC-áttekintési hivatkozás javítása (#10702)
  • Frissítse Support_Question.md fájlt, hogy a Stack Overflow-ra mutató hivatkozást egy másik közösségi erőforrásként (#10638) csatolja (Köszönjük @mklement0!)
  • Processzorarchitektúra hozzáadása terjesztési kérelemsablonhoz (#10661)
  • Új PowerShell MoL-könyv hozzáadása PowerShell-dokumentumok tanulásához (#10602)
  • A 6.1.6-os és a 6.2.3-os verzió (#10523) kiadásainak README.md és metaadatainak frissítése
  • Elírás javítása README.md (#10465) (Köszönjük @vedhasp!)
  • Hivatkozás hozzáadása a PSKoans modulhoz a Tananyagok dokumentációjában (#10369) (Köszönet @vexx32!)
  • README.md és metadata.json frissítése a 7.0.0-preview.3 verzióhoz (#10393)