Megosztás a következőn keresztül:


Mi újság a PowerShell 7.0-ban

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

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

  • Csővezeték-párhuzamos ForEach-Object -Parallel
  • Új operátorok:
    • Ternáris operátor: a ? b : c
    • Vezetéklánc-üzemeltetők: || és &&
    • Null feltételes operátorok: ?? és ??=
  • Egyszerűsített és dinamikus hibanézet és Get-Error cmdlet a hibák könnyebb vizsgálatához
  • Egy kompatibilitási réteg, amely lehetővé teszi a felhasználók számára, hogy modulokat importáljanak egy implicit Windows PowerShell ülés során
  • Automatikus új verzió értesítések
  • A PowerShell 7-ből közvetlenül a DSC erőforrások meghívásának lehetősége (kísérleti)

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

Hol telepíthetem a PowerShell-t?

A PowerShell 7 jelenleg az alábbi operációs rendszereket támogatja x64-en, 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+

Ezen felül a PowerShell 7.0 támogatja az ARM32 és ARM64 változatokat a Debian, Ubuntu és ARM64 Alpine Linux verzióiban.

Nézd meg a telepítési útmutatót a kedvenc operációs rendszeredhez: Windows, macOS vagy Linux esetén.

Bár hivatalosan nem támogatott, a közösség csomagokat is biztosított Arch és Kali Linux számára.

Megjegyzés:

A Debian 10 és a CentOS 8 jelenleg nem támogatja a WinRM távirányítót. Az SSH-alapú távollés beállításáról a PowerShell Remoting over SSH oldalán részletekért lásd.

További up-toinformációért a támogatott operációs rendszerekről és a támogatási életciklusról a PowerShell Support Lifecycle-ben található.

PowerShell 7 futtatása

A PowerShell 7 egy Windows PowerShell-től külön könyvtárba telepíthető. Ez lehetővé teszi, hogy a PowerShell 7-et a Windows PowerShell 5.1-gyel együtt futtathassd. 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 telepítve van %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 Windowson: %programfiles%\PowerShell\6 helyettesíti %programfiles%\PowerShell\7
  • Linux: /opt/microsoft/powershell/6 helyettesíti /opt/microsoft/powershell/7
  • macOS: /usr/local/microsoft/powershell/6 helyettesíti /usr/local/microsoft/powershell/7

Megjegyzés:

Windows PowerShellben a PowerShell elindításához szükséges futtatható fájl neve powershell.exe. A 6. verzióban és annál magasabb verzióban a futtatható név megváltozott, hogy támogatja a side by side execution-t. A PowerShell 7 indításához szükséges új futtatható név .pwsh.exe Az előnézeti buildek a 7-preview könyvtár helyett a helyükön pwsh-previewpwsh maradnak.

Javított visszafelé kompatibilitás a Windows PowerShell-szel

A PowerShell 7.0 a .NET Core 3.1-re való áthelyezést jelenti, jelentősen lehetővé téve a visszafelé kompatibilitást a meglévő Windows PowerShell modulokkal. Ez sok olyan modult tartalmaz a Windowson, amelyek grafikus felhasználói felület funkciót igényelnek, mint Out-GridView például és Show-Command, valamint számos szerepkezelő modult, amelyek a Windows részeként érkeznek.

Windows esetén egy új kapcsolóparaméter, UseWindowsPowerShell kerül hozzá Import-Module. Ez a kapcsoló létrehoz egy proxy modult a PowerShell 7-ben, amely egy helyi Windows PowerShell folyamatot használ, hogy implicit módon futtatja az adott modulban található cmdleteket. További információért az import-modulról.

További információért arról, hogy mely Microsoft modulok működnek PowerShell 7.0-val, lásd a Modul Kompatibilitási Táblázatot.

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

A ForEach-Object cmdlet, amely elemeket iterál egy gyűjteményben, most beépített párhuzamossággal rendelkezik az új Parallel paraméterrel.

Alapértelmezés szerint a párhuzamos szkriptblokkok a hívó aktuális munkakönyvtárát használják, aki elindította a párhuzamos feladatokat.

Ez a példa 50 000 naplóbejegyzést kér 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 megadja azt a szkriptblokkot, amely párhuzamosan fut minden bemeneti napló számára.

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

Használd a $_ változót, hogy a szkriptblokkban a jelenlegi bemeneti objektumot ábrázolja. Használd a $using: scope-t, hogy változó hivatkozásokat továbbítsd a futó szkriptblokknak.

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

Ternáris operátor

A PowerShell 7.0 bevezet egy harmadáros operátort, amely egyszerűsített if-else állításként viselkedik. A PowerShell harmas operátora szorosan a C# harmas operátor szintaxisából modellezzük:

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

A feltétel-kifejezést mindig kiértékelik, és az eredményét Boolean-ra alakítják, hogy meghatározzuk, melyik ágat értékeljük legközelebb:

  • 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 út létezik, akkor az Path létezik (Path exists ) jelenik meg. Ha az út nem létezik, akkor megjelenik az Út nem talált meg.

További információért az if-ről.

Csővezeték-láncoperátorok

PowerShell 7 && a és || operátorokat implementálja, hogy feltételesen láncolják a pipeline-okat. Ezeket az operátorokat a PowerShellben "pipeline chain operátoroknak" nevezik, és hasonlóak az AND és OR listákhoz a shellekben, mint bash például és zsh, valamint a Windows Command Shellcmd.exe () feltételes feldolgozási szimbólumaihoz.

A && operátor végrehajtja a jobb oldali folyamatot, ha a bal oldali folyamat sikeres volt. Ezzel szemben a || 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 nem sikerült-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égrehajtható:

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

Itt az első parancs meghibásodik, a második nem hajt végre:

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

Itt az első parancs sikeres, a második parancs nem történik meg:

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

Itt az első parancs meghibás, így a második parancs következik be:

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

További információért a Csővezeték-láncoperátorokról.

Null-koalescing, assignáció és feltételes operátorok

A PowerShell 7 tartalmazza a null összefonó operátort ??, null feltételes hozzárendelést ??=, valamint null feltételes tag hozzáférési operátorokat ?. és ?[].

Null-koalescing operátor ??

A null-koaleszkáló operátor ?? visszaadja bal oldali operandjának értékét, ha nem null. Ellenkező esetben kiértékeli a jobb oldali operandust, és visszaadja annak eredményét. A ?? operátor nem értékeli a jobb oldali operandusát, ha a bal oldali operandus értéke nem null.

$x = $null
$x ?? 100
100

A következő példában a jobb oldali operandot nem értékeljük:

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

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

A null feltételes hozzárendelési operátor ??= csak akkor rendeli meg a jobb oldali operandjának értékét a bal oldali operandjához. A ??= operátor nem értékeli a jobb oldali operandusát, ha a bal oldali operandus értéke nem null.

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

A következő példában a jobb oldali operandot nem értékelik:

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

Null feltételes tag hozzáférési operátorok ?. és? [] (Kísérleti)

Megjegyzés:

Ez egy kísérleti funkció, amelynek neve PSNullConditionalOperators. További információért lásd: Kísérleti jellemzők használata.

Egy null feltételes operátor csak akkor engedélyezi a tag hozzáférését , ?.vagy elemi hozzáférést ?[]az operandjához, ha az operandus nem null értékű; egyébként nullat ad vissza.

Megjegyzés:

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

A következő példában a tagtulajdonság Státuszának értéke kerül vissza:

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

A következő példa nullat ad vissza, anélkül, hogy megpróbálnánk elérni a tag nevet Státusz:

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

Hasonlóképpen, az elem értékét használva ?[]a következőképpen adjuk vissza:

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

És amikor az operand null, az elem nem fér hozzá, és null visszatér:

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

További információért About_Operators.

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

A PowerShell 7.0 javítja a hibaüzenetek megjelenítését, hogy javítsa az interaktív és szkripthibák olvashatóságát egy új alapértelmezett nézetű ConciseView-val. A nézetek a felhasználó által választható a preferenciaváltozóval $ErrorView.

A ConciseView esetében, ha a hiba nem szkriptből vagy elemzőből származik, akkor az egyetlen soros hibaüzenet jelent:

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

Ha a hiba szkript futtatása közben jelentkezik vagy elemző hiba, a PowerShell többsoros hibaüzenetet ad vissza, amely tartalmazza a hibát, egy mutatót és hibaüzenetet, amely jelzi, hol található a hiba abban a sorban. Ha a terminál nem támogatja az ANSI színes escape sequence-eket (VT100), akkor a színek nem jelennek meg.

Hibamegjelenítés 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 preference változó $ErrorViewbeállításával választhatod ki.

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

Megjegyzés:

Egy új tulajdonság, a ErrorAccentColor hozzáadásra $Host.PrivateData került, hogy támogassa a hibaüzenet akcentus színének megváltoztatását.

Az új cmdlet Get-Error teljes részletes képet nyújt a teljesen minősített hibáról, ha kívánják. Alapértelmezés szerint a cmdlet megjeleníti az utolsó hibá teljes részleteit, beleértve a belső kivételeket is.

Megjelenítés a Get-Error alapján

A Get-Error cmdlet támogatja a csővezetékből érkező bemenetet a beépített változóval $Error. Get-Error Minden vezetékes hibát megjelenít.

$Error | Get-Error

A Get-Error cmdlet támogatja a Legújabb paramétert, így megadhatod, hogy hány hibát szeretnél megjeleníteni a jelenlegi munkafolyamatból.

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

További információért a Get-Error-ról.

Új verzió értesítése

A PowerShell 7 frissítési értesítéseket használ, hogy figyelmeztesse a felhasználókat a PowerShell frissítéseinek létezésére. A PowerShell naponta egyszer lekérdez egy online szolgáltatást, hogy megállapítsa, elérhető-e újabb verzió.

Megjegyzés:

Az újítás ellenőrzése az első alkalom alatt történik egy adott 24 órás időszakban. Teljesítmény miatt a frissítés ellenőrzése 3 másodperccel a játékmenet kezdete után kezdődik. Az értesítés csak a következő ülések kezdetén jelenik meg.

Alapértelmezés szerint a PowerShell két különböző értesítési csatorna egyikére iratkozik fel a verziójától/ágtól függően. A támogatott, általánosan elérhető (GA) PowerShell verziók csak a frissített GA kiadások értesítéseit adják vissza. Az előnézeti és kiadási jelölt (RC) kiadások értesítést adnak az előzetes megjelenések, RC és GA kiadások frissítéseiről.

A frissítésé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 ugyanaz, mint nem definiálni $Env:POWERSHELL_UPDATECHECK
    • A GA-kiadásokról szóló értesítések tájékoztatják a GA-kiadások frissítéséről
    • Az előzetes verziójú és RC-kiadások értesítést küldenek a GA és az előzetes kiadások frissítéseiről.
  • Kikapcsolja a frissítési értesítési funkciót
  • Az LTS csak a hosszú távú karbantartási (LTS) GA kiadások frissítéseiről értesít

Megjegyzés:

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

A verzióértesítés beállítása csak LTS kiadásokra vonatkozik:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

A verzióértesítés beállításához a viselkedéshez Default :

$Env:POWERSHELL_UPDATECHECK = 'Default'

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

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

Megjegyzés:

Ez egy kísérleti funkció, amelynek neve PSDesiredStateConfiguration.InvokeDscResource. További információért lásd: Kísérleti jellemzők használata.

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

Ez a cmdlet közvetlenül hív egy DSC erőforrást, konfigurációs dokumentum létrehozása nélkül. Ezzel a parancsnoksággal a konfigurációkezelő termékek DSC erőforrások segítségével kezelhetik a Windowst vagy a Linuxot. Ez a cmdlet lehetővé teszi az erőforrások hibakeresését is, amikor a DSC motor bekapcsolva fut.

Ez a parancs megidézi a WindowsProcess nevű erőforrás Set metódusát, és megadja a kötelező Path és Arguments 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óért az Invoke-DSCResource-ról.

Törő változások és fejlesztések

Kompatibilitástörő változások

  • Legyen frissítő értesítés támogatása, LTS és alapértelmezett csatornák (#11132)
  • Frissítsd Test-Connection, hogy jobban hasonlítson a Windows PowerShellhez (#10697) (Köszi) @vexx32!)
  • Megőrizni a dollárt? ParenExpression, SubExpression és ArrayExpression (#11040) esetén
  • Állítsd be a munkakönyvtárat az aktuális könyvtárra Start-Job-ban (#10920) (Köszönöm) (Köszönöm @iSazonov!)
  • Legyen $PSCulture következetesen tükrözni a foglalkozás közbeni kulturális változásokat (#10138) (Köszönöm) @iSazonov!)

Motorfrissítések és javítások

  • Fejlesztések a távoli szcenáriók megszakítási pont API-iban (#11312)
  • Javítom a PowerShell osztálydefiníció szivárgását egy másik Runspace-be (#11273)
  • Javítsuk ki a formázási regressziót, amelyet a 7.0.0-Preview1-ben hozzáadott FirstOrDefault primitív (#11258) adott
  • További Microsoft modulok a PS7 Telemetriában (#10751)
  • Legyen jóváhagyott funkciók nem kísérleti (#11303)
  • Frissítse a ConciseView-t, hogy használja a TargetObject-et, ha alkalmazható (#11075)
  • Javítsa meg a nullReferenceException-t a CompletionCompleters nyilvános metódusokban (#11274)
  • Javítsd meg a lakásszál állapotellenőrzését nem Windows platformokon (#11301)
  • PSModulePath beállítás frissítése a folyamat- és gépkörnyezeti változók összekötéséhez (#11276)
  • Emeld a .NET Core-t 3.1.0-ra (#11260)
  • Javítsa meg a $PSHOME felismerését a $env:PATH (#11141) előtt
  • Engedd meg a pwsh-nak, hogy örökölje a $env:PSModulePath-t, és engedélyezd a powershell.exe helyesen indulását (#11057)
  • Áthelyezés .NET Core 3.1 preview 1-re (#10798)
  • Refaktorálja, reparse tag ellenőrzések fájlrendszer-szolgáltatóban (#10431) (Köszönöm @iSazonov!)
  • Cseréld ki a CR-t és az új sort egy 0x23CE karakterre a script logingben (#10616)
  • Az erőforrás-szivárgás javítása az eseménykezelő regisztrációjának törlésével az AppDomain.CurrentDomain.ProcessExit (#10626) oldalról
  • Támogatás hozzáadása az ActionPreference.Break-hez, hogy hibakeresővé törjünk, amikor Debug, Error, Information, Progress, Verbose vagy Warning üzenetek generálódnak (#8205) (Köszönöm @KirkMunro!)
  • Engedélyezze a vezérlőpanel bővítmények indítását a PowerShell-en belül anélkül, hogy .CPL bővítményt megadnánk. (#9828)
  • Támogatni negatív számokat -split operátorban (#8960) (Köszönöm @ece-jacob-scott!)

Általános Cmdlet frissítések és javítások

  • Javítás a Raspbian fájlváltoztatások időpontjának beállításával kapcsolatban a UnixStat Experimental Feature (#11313)
  • Hozzáadj -AsPlainText ConvertFrom-SecureString-hoz (#11142)
  • Hozzáadva WindowsPS verzióellenőrzést a WinCompat (#11148) számára
  • Hibajelentés javítása néhány WinCompat helyzetben (#11259)
  • Hozzáadni natív bináris feloldót (#11032) (Köszönöm @iSazonov!)
  • Frissítse a karakterszélesség számítását, hogy megfelelően tisztelje a CJK karaktereket (#11262)
  • Add hozzá Unblock-File macOS-hez (#11137)
  • Javítsd a regressziót Get-PSCallStack-ben (#11210) (Köszi @iSazonov!)
  • A ScheduledJob modul automatikus betöltésének eltávolítása Job cmdlet-ek használatakor (#11194)
  • Add hozzá az OutputType-t Get-Error cmdlethez, és őrizze meg az eredeti típusneveket (#10856)
  • Null hivatkozás javítása a SupportsVirtualTerminal tulajdonságban (#11105)
  • Hozzáadni a limit ellenőrzést Get-WinEvent-ban (#10648) (Köszönöm @iSazonov!)
  • Javítsuk meg a parancs futásidőt, hogy a StopUpstreamCommandsException ne töltődjön fel -ErrorVariable-ban (#10840)
  • Állítsd be a kimeneti kódolást [Console]::OutputEncoding natív parancsokhoz (#10824)
  • Többsoros kódblokkok támogatása példákban (#10776) (Köszönöm @Greg-Smulko!)
  • Add Culture paramétert Select-String cmdlethez (#10943) (Köszönöm @iSazonov!)
  • Javítsd Start-Job működő könyvtár útját a hátsó visszavágással (#11041)
  • ConvertFrom-Json: A gyűjtemények alapértelmezett felbontása (#10861) (Köszönöm @danstur!)
  • Használj kis- és nagybetűérzékeny hashtable-t Group-Object cmdlethez -CaseSensitive és -AsHashtable kapcsolókkal (#11030) (Köszönöm @vexx32!)
  • Kezeld a kivételt, ha a fájlok felsorolása nem működik, amikor az út újraépítése helyes betűtípusra (#11014)
  • Javítsa meg a ConciseView-t, hogy az Activity (Activity) szerepeljen a myCommand helyett (#11007)
  • Engedélyezzük, hogy webes cmdlet-ek figyelmen kívül hagyják a HTTP hibastátuszokat (#10466) (Köszönöm @vdamewood!)
  • Több CommandInfo vezetékezésének javítása Get-Command-re (#10929)
  • Add vissza Get-Counter cmdlet Windowshoz (#10933)
  • Tedd ConvertTo-Json kezelni az [AutomationNull]::Value és [NullString]::Value $null (#10957)
  • Zárójelek eltávolítása az ipv6 címről SSH távirányítóhoz (#10968)
  • Javítsd ki a crash-t, ha a pwsh-nak küldött parancs csak boş helyet tartalmaz (#10977)
  • Keresztplatformos Get-Clipboard és Set-Clipboard hozzáadva (#10340)
  • Javítottam a fájlrendszer objektum eredeti útját beállítva, hogy ne legyen extra utólagos slash (#10959)
  • Támogatás $null ConvertTo-Json-hez (#10947)
  • Add vissza Out-Printer parancsot Windowson (#10906)
  • Javítsd Start-Job -WorkingDirectory helyes helyet (#10951)
  • Return vissza alapértelmezett értéket, amikor null értéket kapsz egy beállításhoz PSConfiguration.cs-ben (#10963) (Köszönöm @iSazonov!)
  • Az IO kivételt nem lezáróként kezelni (#10950)
  • Hozzáadjuk a GraphicalHost assembly funkciót az Out-GridView, Show-Command és Get-Help -ShowWindow (#10899) engedélyezéséhez
  • Vedd el a ComputerName-t pipeline-on keresztül Get-HotFix-ban (#10852) (Köszönöm @kvprasoon!)
  • Javítsd meg a panel kitöltését a paramétereknél, hogy a közös paraméterek elérhető módon mutassa (#10850)
  • Javítsd ki a GetCorrectCasedPath() funkciót, hogy először ellenőrizzem, vissza-e bármilyen rendszerfájlbejegyzés, mielőtt a First() (#10930) hívná
  • Állítsd be a munkakönyvtárat az aktuális könyvtárra Start-Job-ban (#10920) (Köszönöm) (Köszönöm @iSazonov!)
  • Változtasd meg a TabExpansion2-t, hogy ne legyen -CursorColumn, és kezeld $InputScript.Hossz (#10849)
  • Kezeld az esetet, amikor a gazda nem tér vissza a képernyőn sorokat vagy oszlopokat (#10938)
  • Javítsd ki az akcentusszínek használatát azoknál a hoszteknél, amelyek nem támogatják azokat (#10937)
  • Add vissza Update-List parancsot (#10922)
  • FWLink azonosító frissítése Clear-RecycleBin-re (#10925)
  • A tab befejezése közben ugord át a fájlt, ha nem tudod olvasni a fájl attribútumokat (#10910)
  • Add vissza Clear-RecycleBin Windowshoz (#10909)
  • Add $env:__SuppressAnsiEscapeSequences hozzá a vezérléshez, hogy legyen-e VT escape sorozat a kimenetben (#10814)
  • Add hozzá -NoEmphasize paramétert Select-String kimenet színezéséhez (#8963) (Köszönöm) (Köszönöm @derek-xia!)
  • Add vissza Get-HotFix cmdletet (#10740)
  • Tedd Add-Type használhatóvá olyan alkalmazásokban, amelyek PowerShell-t üzemeltetnek (#10587)
  • Használj hatékonyabb értékelési sorrendet a LanguagePrimitives.IsNullLike() (#10781) (Köszönöm) @vexx32!)
  • Javítsa a vegyes gyűjtögető bemenet és a vezetékes bemenetek kezelését Format-Hex-ban (#8674) (Köszönöm) (Köszönet @vexx32!)
  • Használj típusváltást az SSHConnection hashtable-okban, ha az érték nem egyezik a várt típussal (#10720) (Köszönöm) @SeeminglyScience!)
  • Javítsd ki Get-Content -ReadCount 0 viselkedést, amikor -TotalCount be van állítva (#10749) (Köszönöm @eugenesmlv!)
  • Reword hozzáférés elutasított hibaüzenet Get-WinEvent-ban (#10639) (Köszönöm @iSazonov!)
  • Engedélyezd a tab teljesítését olyan változó kiosztáshoz, amely enum vagy típuskorlátozott (#10646)
  • Távolítsd el a nem használt SourceLength távirányító tulajdonságot, ami formázási problémákat okoz (#10765)
  • Hozzáadj -Delimiter paramétert ConvertFrom-StringData-be (#10665) (Köszönöm @steviecoaster!)
  • Pozíciós paraméter hozzáadása ScriptBlockhoz, amikor SSH-val Invoke-Command használod (#10721) (Köszönöm @machgo!)
  • A sorkontextus információinak megjelenítése, ha több sor, de nincs script név a ConciseView (#10746) esetében
  • Támogatás hozzáadása \wsl$\ útvonalakhoz fájlrendszer-szolgáltatóhoz (#10674)
  • Hozzáadjuk a hiányzó token szöveget a TokenKind.QuestionMark elemzőjéhez (#10706)
  • Állítsuk be minden ForEach-Object -Parallel futó szkript aktuális munkakönyvtárát ugyanarra a helyre, mint a hívó szkript. (#10672)
  • Cseréld api-ms-win-core-file-l1-2-2.dll Kernell32.dll-re a FindFirstStreamW és FindNextStreamW API-khoz (#10680) (Köszönöm) (Köszönöm) @iSazonov!)
  • Tweak help formating script módon, hogy tolerantabb legyen StrictMode (#10563)
  • Hozzáadj -SecurityDescriptorSDDL paramétert New-Service-be (#10483) (Köszönöm) @kvprasoon!)
  • Eltávolítani az információs kimenetet, konszolidálni a ping használatát Test-Connection-ben (#10478) (Köszönöm) @vexx32!)
  • Olvass speciális újraértelmezési pontokat anélkül, hogy hozzáférnél (#10662) (Köszönöm @iSazonov!)
  • Közvetlen Clear-Host kimenet a terminálra (#10681) (Köszönöm @iSazonov!)
  • Hozzáadj vissza newline-t Format-Table és -Property csoportosításához (#10653)
  • Távolítsd el a [ValidateNotNullOrEmpty] fájlt a -InputObject-ról Get-Random-en, hogy engedélyezze az üres stringet (#10644)
  • Legyen javaslatrendszer stringtávolsági algoritmus nagybetű-érzékeny (#10549) (Köszönöm) @iSazonov!)
  • Null referencia kivétel javítása ForEach-Object -Parallel bemeneti feldolgozásban (#10577)
  • PowerShell csoport-szabályzat definíciók hozzáadása (#10468)
  • Frissítse a konzol hostját, hogy támogassa az XTPUSHSGR/XTPOPSGR VT vezérlőszekvenciákat, amelyeket kompozitációs helyzetekben használnak. (#10208)
  • A WorkingDirectory paraméter hozzáadása Start-Job-be (#10324) (Köszönöm @davinci26!)
  • Távolítsd el azt az eseménykezelőt, amely a megszakítási pontok változtatásait tévesen replikálta a host runspace debuggerbe (#10503) (Köszönöm @KirkMunro!)
  • Cseréld api-ms-win-core-job-12-1-0.dll Kernell32.dll-re a Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Köszönöm @iSazonov!)
  • Javítsd ki a hibás kimenetet New-Service változó és -OutVariable (#10444) (Köszönöm) @kvprasoon!)
  • Javítsd meg a globális eszközproblémákat a kilépési kód, parancssori paraméterek és az útvonal (#10461) körül
  • A OneDrive-ba történő rekurzió javítása – a FindFirstFileEx() módosítása a SafeFindHandle típusra (#10405)
  • Hagyd ki a PSReadLine automatikus betöltését Windowson, ha az NVDA képernyőolvasó aktív (#10385)
  • A PowerShell-rel beépített modul verziók bővítése 7.0.0.0-ra (#10356)
  • Hozzáadjuk a hibát Add-Type-be, ha már létezik azonos nevű típus (#9609) (Köszönöm @iSazonov!)

Performance

  • Kerüld a zárás használatát a Parser.SaveError (#11006) fájlban
  • Javítsd a gyorsítótározást új Regex példányok létrehozásakor (#10657) (Köszönöm @iSazonov!)
  • Javítsa a PowerShell beépített típusú adatainak feldolgozását a types.ps1xml, typesV3.ps1xml és GetEvent.types.ps1xml (#10898) adatbázisaiból
  • Frissítse a PSConfiguration.ReadValueFromFile-t, hogy gyorsabb és memóriahatékonyabb legyen (#10839)
  • Kisebb teljesítményjavítások hozzáadása a runspace inicializációhoz (#10569) (Köszönöm @iSazonov!)
  • Gyorsítsd ForEach-Object a leggyakrabban használt forgatókönyveihez (#10454), és javítsuk meg ForEach-Object -Parallel teljesítményproblémát sok runspace-nél (#10455)

Kódkarbantartás

  • A hozzászólás és elem szöveg módosítása a Microsoft szabványainak megfelelőnek (#11304)
  • Takarítási stílusproblémák Compiler.cs-ban (#10368) (Köszönöm @iSazonov!)
  • Távolítsd el a használaton kívüli típusváltót a CommaDelimitedStringCollection (#11000) esetében (Köszönöm @iSazonov!)
  • Takarítási stílus InitialSessionState.cs-ban (#10865) (Köszönöm @iSazonov!)
  • Kód tisztítás a PSSession osztályhoz (#11001)
  • Távolítsd el a nem működő 'futtasd Update-Help Get-Help-ről, amikor Get-Help először fut' funkciót (#10974)
  • Stílusproblémák javítása (#10998) (Köszi @iSazonov!)
  • Takarítás: használd a beépített típusú álnévet (#10882) (Köszönöm) @iSazonov!)
  • Távolítsa el a használatlan ConsolePrompting beállításkulcsot, és kerülje a felesleges string létrehozását a ExecutionPolicy beállítás lekérdezésekor (#10985)
  • Kapcsold ki a napi verziók frissítési értesítési ellenőrzését (#10903) (Köszönöm @bergmeister!)
  • Restore debugging API lost in #10338 (#10808)
  • Távolítsa el a már nem használt WorkflowJobSourceAdapter hivatkozást (#10326) (Köszönöm @KirkMunro!)
  • Tisztítsd meg a COM interfészeket ugrólista kódban a PreserveSig attribútumok javításával (#9899) (Köszönöm @weltkante!)
  • Írj hozzá egy hozzászólást, ami elmagyarázza, miért nem -ia -InformationAction közös paraméter (#10703) álnév (Köszönöm) @KirkMunro!)
  • Átnevezd InvokeCommandCmdlet.cs-t InvokeExpressionCommand.cs-re (#10659) (Köszönöm @kilasuit!)
  • Kisebb kód tisztítások hozzáadása a frissítési értesítésekhez kapcsolódóan (#10698)
  • Távolítsd el a lejáratott munkafolyamat-logikát a távoli beállítási szkriptekből (#10320) (Köszönöm) @KirkMunro!)
  • Frissítsd a súgó formátumot, hogy megfelelő esetet használjunk (#10678) (Köszönöm) @tnieto88!)
  • A CodeFactor stílusú problémák tisztítása, amelyek az elmúlt hónapban érkeztek commitekben (#10591) (Köszi @iSazonov!)
  • Javított elírás a PSTernaryOperator kísérleti funkciójának leírásában (#10586) (Köszönöm @bergmeister!)
  • Konvertáld az ActionPreference.Suspend enumeration értéket egy nem támogatott, fenntartott állapotba, és szüntesd el az ActionPreference használatának korlátozását. Figyelmen kívül hagyd a preference változókat (#10317) (Köszönöm) (Köszönöm) @KirkMunro!)
  • Cseréld le a ArrayListet List T-re<>, hogy olvashatóbb és megbízhatóbb kódot kapj anélkül, hogy változtatnád a funkciókat (#10333) (Köszönöm)@iSazonov!)
  • Kód stílusú javításokat a TestConnectionCommand (#10439) (Köszönöm) @vexx32!)
  • Tisztítsd meg az AutomationEngine-t, és távolítsd el a plusz SetSessionStateDrive meduációs hívást (#10416) (Köszönöm @iSazonov!)
  • Nevezd át az alapértelmezett ParameterSetName visszanevezését Delimiterre ConvertTo-Csv és ConvertFrom-Csv (#10425)

Tools

  • Alapértelmezett beállítás hozzáadása az SDKToUse tulajdonsághoz, hogy az VS-ben (#11085) épüljön be
  • Install-Powershell.ps1: Paraméter hozzáadása az MSI telepítéshez (#10921) (Köszönöm @MJECloud!)
  • Alapvető példákat adj install-powershell.ps1-hez (#10914) (Köszönöm @kilasuit!)
  • Tegyük Install-PowerShellRemoting.ps1 kezelni az üres stringet a PowerShellHome paraméterben (#10526) (Köszönöm) (Köszönöm @Orca88!)
  • Váltás /etc/lsb-release (etc/os-release) verzióról install-powershell.sh/etc/os-release (#10773) (Köszönöm @Himura2la!)
  • Nézd meg pwsh.exe és pwsh-t napi verzióban Windowson (#10738) (Köszönöm) @centreboard!)
  • Távolítsa el a felesleges csapot installpsh-osx.sh (#10752)
  • Frissítsem install-powershell.ps1, hogy ellenőrizzem, van-e már telepített napi verzió (#10489)

Tesztek

  • Megbízhatatlan DSC teszt várakozásban (#11131)
  • Fix stringdata teszt a hashtables kulcsainak helyes validálásához (#10810)
  • Tesztmodulok kitöltése (#11061) (Köszönöm @iSazonov!)
  • Növelje az időt a tesztelési URL (#11015) újrapróbálkozása között
  • Frissítse a teszteket, hogy pontosan leírja a tesztműveleteket. (#10928) (Köszönöm @romero126!)
  • Ideiglenes skip a lapos teszt TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • Tedd stabil az eseménykezelő szivárgás tesztet (#10790)
  • Szinkron nagybetű a CI YAML-ben (#10767) (Köszönöm @RDIL!)
  • Teszt hozzáadása az eseménykezelő szivárgás javításához (#10768)
  • Add hozzá Get-ChildItem tesztet (#10507) (Köszönöm @iSazonov!)
  • Cseréld ki a kétértelmű nyelvezetet a tesztekhez a váltástól paraméterre a pontosság érdekében (#10666) (Köszönöm) @romero126!)
  • Kísérleti próba hozzáadása ForEach-Object -Parallel tesztekhez (#10354) (Köszönöm @KirkMunro!)
  • Tesztek frissítése az Alpine validációhoz (#10428)

Építési és csomagfejlesztések

  • Javítsa meg a Nuget csomagaláírást Koordinált Csomag Buildhez (#11316)
  • Függőségek frissítése a PowerShell Galériából és a NuGet (#11323)
  • Bump Microsoft.ApplicationInsights verziót 2.11.0-ról 2.12.0-ra (#11305)
  • Bump Microsoft.CodeAnalysis.CSharp verziót 3.3.1-től 3.4.0-ra (#11265)
  • Frissítések csomagjai Debian 10 és 11 verziókhoz (#11236)
  • Csak az RC (#11162) előtt engedélyezett kísérleti funkciók engedélyezett
  • Frissítsd a macOS minimum verzióját (#11163)
  • Bump NJsonSchema 10.0.27-től 10.0.28-ig (#11170)
  • Linkek frissítése README.md és metadata.json verzióban a Preview.5 (#10854)
  • Válaszd ki azokat a megfelelőségi tesztekhez tartozó fájlokat, amelyek a PowerShell tulajdonában vannak (#10837)
  • Engedd meg, hogy a win7x86 msix csomag összeálljon. (Belső 10515)
  • Engedélyezzük a szemantikai verziók átadását a NormalizeVersion függvénynek (#11087)
  • Bump .NET core framework 3.1-preview.3 (#11079) verzióra
  • Emeld a PSReadLine-t a 2.0.0-beta5-ről 2.0.0-beta6-ra a /src/Modules (#11078)
  • Bump Newtonsoft.Json 12.0.2-től 12.0.3-ra (#11037) (#11038)
  • Hozzáadjuk a Debian 10, 11 és CentOS 8 csomagokat (#11028)
  • Töltsd fel Build-Info Json fájlt a ReleaseDate mezővel (#10986)
  • A .NET core framework 3.1-preview.2 (#10993) verzióba
  • Engedélyezze az x86 MSIX csomag (#10934) build buildjét
  • Frissítse a dotnet SDK telepítő szkript URL-jét a build.psm1-ben (#10927)
  • Bump Markdig. Aláírva 0.17.1-től 0.18.0-ig (#10887)
  • Bump ThreadJob verzió 2.0.1-től 2.0.2-ig (#10886)
  • Az AppX Manifest és Packaging modul frissítése, hogy megfeleljen az MS Store követelményeinek (#10878)
  • Frissítse a PowerShell SDK csomaghivatkozását preview.5-re (Internal 10295)
  • Frissítés ThirdPartyNotices.txt (#10834)
  • Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Bump Microsoft.ApplicationInsights-t 2.10.0-ról 2.11.0-ra (#10608)
  • Bump NJsonSchema 10.0.24-től 10.0.27-ig (#10756)
  • MacPorts támogatás hozzáadása az építési rendszerhez (#10736) (Köszönöm @Lucius-Q-User!)
  • Bump PackageManagement verzió 1.4.4-ről 1.4.5-re (#10728)
  • Emeld az NJsonSchema 10.0.23-tól 10.0.24-ig (#10635)
  • Környezeti változó hozzáadása az ügyfél/szerver telemetria megkülönböztetéséhez az MSI-ben (#10612)
  • PSDesiredStateConfiguration 2.0.3-ból 2.0.4-re (#10603) történő megbüntetés
  • Bump Microsoft.CodeAnalysis.CSharp verzióból 3.2.1-re 3.3.1-re (#10607)
  • Frissítés a .Net Core 3.0 RTM-hez (#10604) (Köszönöm @bergmeister!)
  • Frissítsd az MSIX csomagolást, hogy a verzió megfeleljen a Windows Store követelményeknek (#10588)
  • PowerShell meghajtásaVerziót szerezzen 2.2-től 2.2.1-ig (#10382)
  • Bump PackageManagement verzió 1.4.3-tól 1.4.4-ig (#10383)
  • Frissítés README.md és metadata.json 7.0.0-preview.4 verzióhoz (belső 10011)
  • Frissítsd a .Net Core 3.0 verziót Preview 9-ről RC1-re (#10552) (Köszönöm @bergmeister!)
  • Fixáld az ExperimentalFeature lista generálást (Internal 9996)
  • Bump PSReadLine verzió 2.0.0-beta4-ből 2.0.0-beta5-re (#10536)
  • Fix release build script beállítása a release tag beállításához
  • Frissítse a Microsoft.PowerShell.Native verziót 7.0.0-preview.2-re (#10519)
  • Frissítés Netcoreapp3.0 preview9-re (#10484) (Köszönöm @bergmeister!)
  • Győződj meg róla, hogy a napi összehangolt build tudja, hogy napi build (#10464)
  • Frissítsd a kombinált csomagverziót, hogy kiadd a napi verziókat (#10449)
  • Eltávolítani az appveyor hivatkozást (#10445) (Köszönöm @RDIL!)
  • Bump NJsonSchema verzió 10.0.22-től 10.0.23-ig (#10421)
  • Távolítsd el a linux-x64 build mappa törlését, mert néhány Alpine függőségnek szüksége van rá (#10407)

Dokumentáció és segítség tartalom

  • A változásnaplók egy naplóba refaktorálhatók kiadásonként (#11165)
  • Fix FWLinks for PowerShell 7 online help documents (#11071)
  • Frissítés CONTRIBUTING.md (#11096) (Köszönöm @mklement0!)
  • Javítsd meg a telepítési dokumentum linkeket README.md-ban (#11083)
  • Példákat ad install-powershell.ps1 szkripthez (#11024) (Köszi) @kilasuit!)
  • Javítás a Select-String hangsúlyhoz és Import-DscResource CHANGELOG.md-ben (#10890)
  • Távolítsd el az elavult linket powershell-beginners-guide.md-ről (#10926)
  • Egyesítsd a stabil és szervizelési változásnaplókat (#10527)
  • Frissítés .NET verziót használt a build dokumentációban (#10775) (Köszönöm) @Greg-Smulko!)
  • Cseréld le az MSDN-ről a Microsoft Learn linkeket powershell-beginners-guide.md-ben (#10778) (Köszönöm @iSazonov!)
  • Javítsa a törött DSC áttekintési link (#10702)
  • Frissítsd Support_Question.md-et, hogy linkelj a Stack Overflow-ra, mint egy másik közösségi forrásra (#10638) (Köszönöm @mklement0!)
  • Processzorarchitektúra hozzáadása a disztribúciós kérelmek sablonhoz (#10661)
  • Új PowerShell MoL könyv hozzáadása a PowerShell dokumentáció tanulásához (#10602)
  • Frissítés README.md és metaadatok a v6.1.6 és v6.2.3 kiadásokhoz (#10523)
  • Javítottam ki egy elírási hibát README.md-ban (#10465) (Köszönöm @vedhasp!)
  • Csatolj egy hivatkozást a PSKoans modulra a Learning Resources dokumentációhoz (#10369) (Köszönöm @vexx32!)
  • Frissítés README.md és metadata.json 7.0.0-preview.3 (#10393) verzióhoz