A PowerShell 7.4 újdonságai

A PowerShell 7.4 a következő funkciókat, frissítéseket és kompatibilitástörő változásokat tartalmazza. A PowerShell 7.4 a .NET 8.0.0-ra épül.

A módosítások teljes listáját a GitHub-adattár VÁLTOZÁSNAPLÓjában találja.

Kompatibilitástörő változások

  • A Nano Server Docker-lemezképek nem érhetők el ehhez a kiadáshoz
  • Hozzáadta a ProgressAction paramétert a common parametershez
  • Frissítsen néhány PowerShell API-t az ArgumentNullException helyett az ArgumentException elvetésére, ha az argumentum egy üres sztring (#19215) (Köszönet@xtqqczze!)
  • A(z) (#19320) kód eltávolítása #requires -pssnapin
  • Test-Json Mostantól a Newtonsoft.Json.Schema helyett JsonSchema.Net használ. Ezzel a módosítással Test-Json már nem támogatja a régebbi 4. vázlatsémákat. (#18141) (Köszönjük @gregsdennis!) , hogy további információt talál a JSON-sémákról, lásd a JSON-séma dokumentációját .
  • A kimenet mostantól Test-Connection részletesebb információkat tartalmaz a TCP-kapcsolati tesztekről
  • A .NET olyan módosításokat vezetett be, amelyek érintettek Test-Connection. A parancsmag most hibát ad vissza azzal kapcsolatban, hogy szükség van a Linux-platformokon való használatra sudo egyéni pufferméret használatakor (#20369)
  • Kísérleti funkció PSNativeCommandPreserveBytePipe már általános. A PowerShell mostantól megőrzi a byte-streamadatokat, amikor egy natív parancs stdout streamét átirányítja egy fájlba, vagy amikor bájtstream-adatokat ad egy natív parancs stdin streamjére.
  • A relatív elérési utak Resolve-Path kezelésének módosítása a RelativeBasePath paraméter (#19755) használatakor (Köszönet @MartinGC94!)
  • A nem használt PSv2-kód eltávolítása – eltávolítja a TabExpansion függvényt (#18337)

Telepítőfrissítések

A Windows MSI-csomag mostantól lehetővé teszi a PowerShell-telemetria letiltását a telepítés során. További információ: Az msi-csomag telepítése a parancssorból.

A PSResourceGet és a PSReadLine frissített verziói

A PowerShell 7.4 tartalmazza a Microsoft.PowerShell.PSResourceGet 1.0.1-et. Ez a modul párhuzamosan van telepítve a PowerShellGet 2.2.5-ös és a PackageManagement 1.4.8.1-ös verzióval. További információt a Microsoft.PowerShell.PSResourceGet dokumentációjában talál.

A PowerShell 7.4 mostantól tartalmazza a PSReadLine 2.3.4-et. További információkért tekintse meg a PSReadLine dokumentációját.

Tabulátorkiegészítési fejlesztések

Sok köszönet @MartinGC94 és mások minden munkájukért, hogy javítsák a lap befejezését.

  • Kijavítottuk a hibát egy üres tömbkifejezéssel rendelkező szkript első parancsának végrehajtásakor (#18355)
  • Pozícióargumentum kiegészítésének javítása (#17796)
  • Rangsorolja az alapértelmezett paraméterkészletet a pozícióargumentumok végrehajtásakor (#18755)
  • A dinamikus paraméterek pszeudokötésének javítása (#18030)
  • A kivonatolókulcsok típuskövetkezésének javítása (#17907)
  • Az üres visszatérési utasítások típuskövetkezési hibájának javítása (#18351)
  • Típuskövetkeztetés javítása get-random (#18972)
  • Az összes hatókörváltozó típuskövetkeztetésének javítása (#18758)
  • A folyamatból levont típusok számbavételének javítása (#17799)
  • Kiegészítés hozzáadása értékek összehasonlításához enumeráláskor (#17654)
  • Tulajdonság-hozzárendelési befejezés hozzáadása enumerálásokhoz (#19178)
  • A PSCustomObject változó tulajdonságainak (#18682) befejezésének javítása
  • Tagkiegészítés javítása attribútumargumentumban (#17902)
  • Redundáns paraméter-aliasok kizárása a befejezési eredményekből (#19382)
  • Az osztálytagok kiegészítésének javítása alaptípusú osztályok esetében (#19179)
  • Kiegészítés hozzáadása kulcsszavak használatához (#16514)
  • TabExpansion2 változószivárgás javítása változók végrehajtásakor (#18763)
  • Változók befejezésének engedélyezése a ScriptBlock-hatókörökben (#19819)
  • A foreach utasítás változójának (#19814) befejezésének javítása
  • Változótípus-következtetési sorrend javítása (#18691)
  • A PowerShell Enum osztály tagkiegészítésének javítása (#19740)
  • Tömbkonstansok elemzésének javítása metódushívásokban lévő indexkifejezésekben (#19224)
  • Az elérési út befejezésének javítása (#19489)
  • Az üres szkriptbemenet (#19501) esetében a CompleteInput függvényben a kötött hiba miatt történő indexelés javítása
  • Változók teljesítményének javítása (#19595)
  • A korlátozott típusú változó-hozzárendelések, beágyazott kivonatolók és egyebek (#17660) kivonatolókulcs-kiegészítésének javítása
  • Külső alkalmazás kimenetének következtetése sztringként (#19193)
  • A paraméterek kiegészítésének frissítése az attribútumok által ValidateRange nem engedélyezett értékek kizárásához (#17750) (Köszönet @fflaten!).
  • Dinamikus paraméterkiteljesítés javítása (#19510)
  • Kiegészítés hozzáadása az adatkimutatás által hozzárendelt változókhoz (#19831)

Webes parancsmag fejlesztései

Sok köszönet @CarloToso és másoknak a webes parancsmagok javításán végzett munkáért.

  • A brotli (#17955) belefoglalásához javítsa ki a webes parancsmagok dekompresszióját (köszönjük)@iSazonov!)
  • Webcmdlets add 308 to redirect codes and small cleanup (#18536)
  • Fejezze be a folyamatjelző sáv renderelését az Invoke-WebRequestben, amikor a letöltés befejeződött vagy megszakadt (#18130)
  • A webes parancsmagok újrapróbálkozási időközt kapnak a válaszfejlécekből, ha az állapotkód 429 (#18717)
  • A webes parancsmagok az alapértelmezett karakterkészlet-kódolást UTF8-ra állítják be (#18219)
  • WebSession.MaximumRedirection megőrzése a módosításokból (#19190)
  • A WebCmdlets elemzi az XML-deklarációt a kódolási érték lekéréséhez, ha van ilyen. (#18748)
  • Javítás xml -Body használatával a webcmdletekben kódolás nélkül (#19281)
  • A PUT metódus viselkedésének beállítása POST one értékre a WebCmdlets alapértelmezett tartalomtípusához (#19152)
  • Vegye figyelembe a ContentType-t a WebCmdlets fejléceiből (#19227)
  • Az eredeti HTTP-metódus megőrzésének engedélyezése a -PreserveHttpMethodOnRedirect webes parancsmagokhoz való hozzáadásával (#18894)
  • A webcmdletek hibát jelenítenek meg a https-ről http-átirányításra (#18595)
  • AllowInsecureRedirect kapcsoló hozzáadása webes parancsmagokhoz (#18546)
  • Részletes üzenet javítása webes parancsmagokban, ha a tartalom hossza ismeretlen (#19252)
  • Hozza létre a relatív URI-t a válaszból származó hivatkozásokhoz a következőben Invoke-WebRequest : (#19092)
  • A WebCmdlets átirányításának -CustomMethod POST javítása (#19111)
  • Korábbi válasz törlése a Webcmdletsben (#19117)
  • Xml- és JSON-hibák formátumának javítása Invoke-WebRequest (#18837)
  • ValidateNotNullOrEmpty hozzáadása a WebCmdlets OutFile és InFile paramétereihez (#19044)
  • HttpKnownHeaderNames frissítési fejlécek listája (#18947)
  • Invoke-RestMethod -FollowRelLink vesszőt tartalmazó hivatkozások javítása (#18829)
  • Az átirányítás és a KeepAuthorization webparancsmagokban való kezelésével kapcsolatos hiba kijavítása (#18902)
  • StatusCode hozzáadása a HttpResponseExceptionhez (#18842)
  • Http-állandó kapcsolatok támogatása webes parancsmagokban (#19249) (Köszönjük @stevenebutler!)
  • Kis tisztítás Invoke-RestMethod (#19490)
  • A WebCmdlets részletes üzenetének továbbfejlesztése a megfelelő HTTP-verzió megjelenítéséhez (#19616)
  • FileNameStar hozzáadása a MultipartFileContenthez a WebCmdletsben (#19467)
  • A WebCmdlets http-állapotának javítása 409-ről 429-re, hogy újrapróbálkozási időközt kapjon az Újrapróbálkozási fejlécből. (#19622) (Köszönöm @mkht!)
  • Webes parancsmagok módosítása -TimeoutSec-ConnectionTimeoutSeconds és hozzáadása -OperationTimeoutSeconds (#19558) (Köszönet @stevenebutler!) más parancsmagok
  • A Ctrl+c billentyűkombináció támogatása, ha a kapcsolat lefagy, miközben adatokat olvas a WebCmdletsben (#19330) (Köszönet @stevenebutler!)
  • Unix domain socket támogatása a WebCmdletsben (#19343)

Egyéb parancsmagok fejlesztései

  • Test-Connection Most hibát ad vissza azzal kapcsolatban, hogy linuxos platformokon kell használni sudo egyéni pufferméret használatakor (#20369)
  • Kimeneti típusok hozzáadása a Formátum parancsokhoz (#18746) (Köszönjük @MartinGC94!)
  • Kimeneti típusú attribútumok hozzáadása a következőhöz Get-WinEvent : (#17948) (Köszönjük @MartinGC94!)
  • Path és LiteralPath paraméterek hozzáadása a parancsmaghoz Test-Json (#19042) (Köszönet @ArmaanMcleod!)
  • NoHeader paraméter hozzáadása parancsmagokhoz és Export-Csv parancsmagokhoz (#19108) (Köszönet ConvertTo-Csv@ArmaanMcleod!)
  • Adja hozzá a Megerősítés és a WhatIf paramétereket a(z) (#18731) paraméterhez Stop-Transcript(Köszönjük@JohnLBevan!)
  • FuzzyMinimumDistance paraméter hozzáadása (Get-Command#18261)
  • Kódolási paraméter használata ANSI a PowerShellben (#19298) (Köszönet@CarloToso!)
  • Folyamat hozzáadása a(z) (#18735) fájlhoz Copy-Item
  • Update-Help most hibaüzenetet jelent, ha implicit kultúrát használ nem USA-beli rendszereken. (#17780) (Köszönöm @dkaszews!)
  • Nincs szükség tevékenységre befejezett állapotrekord létrehozásakor (#18474) (Köszönjük @MartinGC94!)
  • Tiltsa le a parancsmag paramétereinek Get-Content negatív értékeit -Head és -Tail (#19715) (Köszönjük @CarloToso!)
  • Adjon meg Update-Help megfelelő hibát, ha a jelenlegi kultúra nincs nyelvhez társítva (#19765) (Köszönöm @josea!)
  • A parancsmag egyesítésének -SkipSelect-Object és -SkipLast paramétereinek engedélyezése. (#18849) (Köszönöm @ArmaanMcleod!)
  • Parancsmag hozzáadása Get-SecureRandom (#19587)
  • Set-Clipboard -AsOSC52 távoli használatra (#18222) (Köszönjük @dkaszews!)
  • A relatív elérési út felbontásának felgyorsítására Resolve-Path (#19171) (Köszönöm @MartinGC94!)
  • Hozzáadta a kapcsolóparamétert -CaseInsensitiveSelect-Object és Get-Unique a parancsmagokat (#19683) (Köszönjük @ArmaanMcleod!)
  • Restart-Computera Stop-Computer unix-on futó sudo használatával (#19824) hibával kell meghiúsulnia

Motorfejlesztések

Frissítések$PSStyle

  • Dim és DimOff tulajdonságok hozzáadása (#18653)
  • Statikus metódusokat adott hozzá a PSStyle osztályhoz, amelyek előtér- és háttér ConsoleColor-értékeket képeznek az ANSI-feloldósorozatokhoz (#17938)
  • A számított mezők táblafejlécei alapértelmezés szerint dőlt betűvel vannak formázva
  • A távoli gazdagép tiszteletben tartásának $PSStyle.OutputRendering támogatása (#19601)
  • Frissített telemetriai adatok a modulok használatához CrescendoBuilt (#20371)

Egyéb motorfrissítések

  • Az attribútum deklarálásakor NoRunspaceAffinity (#18138) a PowerShell-osztály ne legyen társ a Runspace-hez
  • Adja hozzá az ValidateNotNullOrWhiteSpace attribútumot (#17191) (Köszönöm @wmentha!)
  • Hozzáadás sqlcmd az örökölt argumentum átadott listájához (#18559)
  • Adja hozzá a függvényt cd~ (#18308) (Köszönjük @GigaScratch!)
  • Tömbtípus-elemzés javítása általános típusokban (#19205) (Köszönjük @MartinGC94!)
  • Helyettesítő karakterek globbingjának javítása az eszközútvonalak gyökerében (#19442) (Köszönjük @MartinGC94!)
  • Nyilvános API hozzáadása a PSModulePath-elemek helyének lekéréséhez (#19422)
  • Helytelen sztring kijavítása a típuskonvertáláshoz (#19560) (Köszönjük @MartinGC94!)
  • Kijavíthatja a lassú végrehajtást, ha sok töréspontot használ (#14953) (Köszönöm @nohwnd!)
  • A(z) (#19320) kód eltávolítása #requires -pssnapin

Kísérleti funkciók

A PowerShell 7.4 a következő kísérleti funkciókat mutatja be:

  • PSFeedbackProvider – Lecseréli a kemény kóddal ellátott javaslati keretrendszert egy bővíthető visszajelzési szolgáltatóra.
    • Ez a funkció hozzáadja a FeedbackName, a FeedbackText és a FeedbackAction tulajdonságokat $PSStyle.Formatting is, amelyek lehetővé teszik a visszajelzési üzenetek formázásának módosítását.
  • PSModuleAutoLoadSkipOfflineFiles – A modulfelderítés mostantól kihagyja a felhőszolgáltatók által nem teljes lemezként megjelölt fájlokat.
  • PSCommandWithArgs – Az argumentumok parancsoknak egyetlen sztringként való átadásának támogatása

A következő kísérleti funkciók váltak általánossá:

A PowerShell 7.4 a következő kísérleti funkciókat módosította:

A kísérleti funkciókról további információt a Kísérleti funkciók használata című témakörben talál.