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


A PowerShell 7.4 újdonságai

A PowerShell 7.4.13 a következő funkciókat, frissítéseket és kompatibilitástörő módosításokat tartalmazza. A PowerShell 7.4.13 a .NET 8.0.415-ös verzióra épül.

A módosítások teljes listáját lásd a GitHub adattárban található CHANGELOG-ban.

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, hogy üres sztring esetén ArgumentException-t dobjon ArgumentNullException helyett (#19215) (Köszönet @xtqqczze!)
  • #Requires -PSSnapin kapcsolódó kód eltávolítása (#19320)
  • Test-Json most JsonSchema.NET használ a Newtonsoft.Json.Schema helyett.
    • Ezzel a módosítással Test-Json már nem támogatja a régebbi Piszkozat 4 sémákat. (#18141) (Köszönöm @gregsdennis!). A JSON-sémákkal kapcsolatos további információkért lásd JSON-séma dokumentációját. Ez megszakítja a Test-Json-t a megjegyzéseket tartalmazó JSON- és JSONC-fájlok esetében.
    • ConvertFrom-Json támogatás továbbra is a Newtonsoft.Json.Schema fájlt használja, hogy megjegyzésekkel konvertálhassa a JSON-fájlokat.
  • A Test-Connection kimenete mostantól részletesebb információkat tartalmaz a TCP-kapcsolati tesztekről
  • A .NET olyan módosításokat vezetett be, amelyek hatással vannak a Test-Connection-ra. A parancsmag most hibát ad vissza azzal kapcsolatban, hogy szükség van a sudo használatára Linux platformokon egyéni pufferméret alkalmazásakor (#20369)
  • A PSNativeCommandPreserveBytePipe kísérleti funkció mára általánosan elterjedt. A PowerShell mostantól megőrzi a bájtstream-adatokat, amikor egy natív parancs stdout- adatfolyamát egy fájlba irányítja, vagy amikor bájtfolyam-adatokat szór egy natív parancs stdin streamjére.
  • Módosítsa az Resolve-Path relatív elérési útjainak kezelését a RelativeBasePath paraméter (#19755) használatakor (köszönet @MartinGC94!)).
  • A nem használt PSv2-kód eltávolítása – a TabExpansion függvény eltávolítása (#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 v1.1.1-et. Ez a modul párhuzamosan van telepítve PowerShellGet 2.2.5-ös és PackageManagement 1.4.8.1-s verzióval. További információ: Microsoft.PowerShell.PSResourceGetdokumentációja.

A PowerShell 7.4 mostantól tartalmazza a PSReadLine 2.3.6-os verziót. További információ: PSReadLinedokumentációja.

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

Sok köszönet @MartinGC94 és másoknak a tabulátor-kiegészítés javítása érdekében végzett munkájukért.

  • 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)
  • Dinamikus paraméterek pszeudokötésének javítása (#18030)
  • A kivonatolókulcsok típuskövetkezésének javítása (#17907)
  • Üres visszatérési utasítások típuskövető hibájának javítása (#18351)
  • Get-Random típuskövetkeztetésének javítása (#18972)
  • Az összes hatókörváltozó típuskövetkeztetésének javítása (#18758)
  • A folyamatból kikövetktetett típusok számbavételének javítása (#17799)
  • Értékek kiegészítésének hozzáadása, amikor Enums-t hasonlítunk össze (#17654)
  • Enumok tulajdonság-hozzárendelésének befejezése (#19178)
  • A PSCustomObject változó tulajdonságainak kiegészítés javítása (#18682)
  • Tagok kiegészítésének javítása attribútumargumentumban (#17902)
  • Redundáns paraméter-aliasok kizárása a befejezési eredményekből (#19382)
  • Az alaptípusú osztályok osztálytag-kiegészítésének javítása (#19179)
  • Kiegészítés hozzáadása a using kulcsszó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ásváltozó kiegészítésének javítása (#19814)
  • Változótípus-következtetési elsőbbség javítása (#18691)
  • A PowerShell Enum osztály tagkiegészítésének javítása (#19740)
  • Javítsa a tömb literálok feldolgozását az index kifejezésekben a metódus hívások során (#19224)
  • Az elérési út teljesítményének javítása (#19489)
  • Üres szkriptbemenet (#19501) esetén a CompleteInput indexelési határérték-túllépési hibájának javítása.
  • Változóbeállítások teljesítményének javítása (#19595)
  • A típusmegszorítású változóhozzárendelések, beágyazott hashtáblák és egyebek hashtábla kulcskiegészítésének javítása (#17660)
  • Külső alkalmazás kimenetének értelmezése sztringekként (#19193)
  • A paraméterkiegészítés frissítése az enumoknál a ValidateRange attribútumok által nem engedélyezett értékek kizárására (#17750) (Köszönet @fflaten!)).
  • Dinamikus paraméterkitöltés javítása (#19510)
  • Kiegészítés hozzáadása a data utasítás által hozzárendelt változókhoz (#19831)
  • A windowsos rendszereken a bővítő tilde (~) javítása a natív parancsokkal történő kompatibilitástörő használati esetek elkerülése érdekében $HOME (#21529)

Webes parancsmag fejlesztései

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

  • Kijavítottuk a webes parancsmagok dekompresszióját, hogy a Brotli-t is tartalmazza (#17955) (Köszönjük @iSazonov!) számára a segítséget).
  • Webparancsok új 308-as átirányítási kódokat adnak hozzá és kisebb tisztítást végeznek (#18536)
  • A folyamatjelző sáv renderelésének befejezése az Invoke-WebRequest használatakor, amikor a letöltés befejeződik vagy megszakítják (#18130)
  • A webes parancsmagok újrapróbálkozási időközt olvasnak ki 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óvása a módosításoktól (#19190)
  • A WebCmdlets elemzi az XML-deklarációt a kódolási érték lekéréséhez, ha van ilyen. (#18748)
  • xml -Body használatának javítása kódolás nélküli webcmdletekben (#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 fejlécekben található ContentType-t a WebCmdlets esetében (#19227)
  • Az eredeti HTTP-metódus megőrzésének engedélyezése -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 Invoke-WebRequest válasz hivatkozásaihoz (#19092)
  • A -CustomMethod POST átirányításának javítása a WebCmdlets esetében (#19111)
  • Korábbi válasz törlése a Webcmdletsben (#19117)
  • Invoke-WebRequest xml- és json-hibaformátum javítása (#18837)
  • A ValidateNotNullOrEmpty hozzáadása a WebCmdlets OutFile és a InFile paraméterekhez (#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)
  • Adja hozzá a StatusCode-t a HttpResponseException-hoz (#18842)
  • Http-állandó kapcsolatok támogatása webes parancsmagokban (#19249) (Köszönet @stevenebutler!)
  • Kis tisztítás Invoke-RestMethod (#19490)
  • A WebCmdlets részletes üzenetének továbbfejlesztése a helyes HTTP-verzió megjelenítéséhez (#19616)
  • FileNameStar hozzáadása a(z) MultipartFileContent WebCmdlets-ben (#19467)
  • A WebCmdlets HTTP-állapotának megváltoztatása 409-ről 429-re, hogy az újrapróbálkozási időközt a Retry-After fejlécből kiolvashassa. (#19622) (Köszönöm @mkht!)
  • -TimeoutSec módosítása -ConnectionTimeoutSeconds-re és -OperationTimeoutSeconds hozzáadása a webes parancsmagokhoz (#19558) (Köszönet @stevenebutler!)) Egyéb parancsmagok
  • A Ctrl+c billentyűkombináció támogatása, amikor a kapcsolat megszakad, és az adatok olvasása folyamatban van a WebCmdlets-ben (#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 sudo kell használni linuxos platformokon egyéni pufferméret használatakor (#20369)
  • Kimeneti típusok hozzáadása a Formátum parancsokhoz (#18746) (Köszönet @MartinGC94!)
  • Kimeneti típusattribútumok hozzáadása a Get-WinEvent-hoz (#17948) (Köszönet @MartinGC94!))
  • Path és LiteralPath paraméterek hozzáadása Test-Json parancsmaghoz (#19042) (Köszönet @ArmaanMcleod!)
  • NoHeader paraméter hozzáadása ConvertTo-Csv és Export-Csv parancsmagokhoz (#19108) (Köszönet @ArmaanMcleod!)
  • A Confirm és a WhatIf paraméterek hozzáadása Stop-Transcript(#18731) (Köszönet @JohnLBevan!)
  • FuzzyMinimumDistance paramétert adjon hozzá a Get-Command-hez (#18261)
  • Tegyük képessé a kódolási paramétert a ANSI kódolás elfogadására a PowerShellben (#19298) (Köszönet @CarloToso!))
  • Folyamat hozzáadása Copy-Item (#18735)
  • 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, amikor befejezett haladási rekordot hozunk létre (#18474) (Köszönöm @MartinGC94!)
  • Negatív értékek letiltása Get-Content parancsmagparaméterek -Head és -Tail (#19715) esetében (Köszönet @CarloToso!)
  • Tegye lehetővé, hogy a Update-Help megfelelő hibát dobjon, ha a jelenlegi kultúra nincs nyelvhez társítva (#19765) (Köszönet @josea!)).
  • Lehetővé teszi -Skip és -SkipLast paraméterek kombinálását Select-Object parancsmagban. (#18849) (Köszönöm @ArmaanMcleod!)
  • Get-SecureRandom parancsmag hozzáadása (#19587)
  • Set-Clipboard -AsOSC52 távoli használatra (#18222) (Köszönet @dkaszews!)
  • Gyorsítsd fel Resolve-Path relatív elérési út felbontását (#19171) (Köszönöm @MartinGC94!)
  • Hozzáadta a kapcsolóparamétert -CaseInsensitiveSelect-Object és Get-Unique parancsmagokhoz (#19683) (Köszönet @ArmaanMcleod!)
  • Restart-Computer és Stop-Computer hibát kell hogy okozzon, amikor nem futnak sudo-val Unix alatt (#19824)

Motorfejlesztések

A $PSStyle frissítései

  • Dim és DimOff tulajdonságok hozzáadása (#18653)
  • Statikus metódusok hozzáadva a PSStyle osztályhoz, amelyek a ConsoleColor előtér- és háttérértékeket képezik le ANSI menekülési szekvenciákra (#17938)
  • A számított mezők táblafejlécei alapértelmezés szerint dőlt betűvel vannak formázva
  • Támogatás biztosítása a távoli gazdagép $PSStyle.OutputRendering követelményeinek megfeleléséhez (#19601)
  • Frissített telemetriai adatok CrescendoBuilt modulok használatára (#20371)

Egyéb motorfrissítések

  • A .NET metódushívás naplózásának áthelyezése a metódusargumentumok szükséges típusátalakítása után (#25568)
  • Visszalépés az AppLockerre a WldpCanExecuteFile után (#25229)
  • A PowerShell-osztály nem kapcsolódik a Runspace-hez a NoRunspaceAffinity attribútum deklarálásakor (#18138)
  • Adja hozzá a ValidateNotNullOrWhiteSpace attribútumot (#17191) (Köszönet @wmentha!)
  • Add sqlcmd-t a listához az örökölt argumentumok átadásához (#18559)
  • Adja hozzá a függvényt cd~ (#18308) (Köszönet @GigaScratch!)
  • Tömbtípus-elemzés javítása általános típusok esetén (#19205) (Köszönet @MartinGC94!)
  • Helyettesítő karakterek globbingjának javítása az eszközútvonalak gyökerében (#19442) (Köszönet @MartinGC94!)
  • Nyilvános API hozzáadása a PSModulePath-elemek helyének lekéréséhez (#19422)
  • Hibás karakterlánc javítása típuskonverzióra (#19560) (Köszönet @MartinGC94!))
  • Kijavíthatja a lassú végrehajtást, ha sok töréspontot használ (#14953) (Köszönet @nohwnd!)
  • #Requires -PSSnapin kapcsolódó kód eltávolítása (#19320)

Kísérleti funkciók

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

  • PSFeedbackProvider – A kemény kóddal ellátott javaslati keretrendszert egy bővíthető visszajelzési szolgáltatóra cseréli.
    • Ez a funkció hozzáadja a FeedbackName, FeedbackTextés FeedbackAction tulajdonságokat $PSStyle.Formatting, 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 – Támogatás hozzáadása a parancsok argumentumainak egyetlen sztringként való átadásához

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:

További információ a kísérleti funkciókról: A kísérleti funkciók használata.