Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A PowerShell 7.5.4 a következő funkciókat, frissítéseket és kompatibilitástörő módosításokat tartalmazza. A PowerShell 7.5.4 a .NET 9.0.306-os kiadásra épül.
A módosítások teljes listáját a GitHub-adattár VÁLTOZÁSNAPLÓjában találja. A .NET 9-ről további információt a .NET 9 újdonságai című témakörben talál.
Kompatibilitástörő változások
- Javítsa a
-OlderThanparamétereket az-NewerThanésTest-Pathhasználatakor a dátumtartomány (PathType) esetén (Köszönjük )- Korábban
-OlderThanfigyelmen kívül maradt, ha együtt voltak megadva
- Korábban
- Módosítsa
New-FileCatalog -CatalogVersionaz alapértelmezett értéket 2-re (#20428) (Köszönjük @ThomasNieto!) - A korlátozott távoli munkamenetekben a hálózati helyekről érkező segítségnyújtás letiltása (#20593)
- A Windows telepítője most már emlékszik a használt telepítési beállításokra, és azokkal inicializálja a következő telepítés beállításait (#20420) (Köszönjük @reduckted!)
-
ConvertTo-Jsonmost szerializáljaBigIntegerszámként (#21000) (Köszönöm @jborean93!)
Frissített modulok
A PowerShell 7.5.4 a következő frissített modulokat tartalmazza:
- Microsoft.PowerShell.PSResourceGet v1.1.1
- PSReadLine 2.3.6-os verzió
Javítások a tabulátorkiegészítésben
Sok köszönet @ArmaanMcleod és mások minden munkájukért a tabulátor befejezésének javítása érdekében.
- Amikor a hashtábla kulcs-értéke nem nyerhető ki a biztonságos kifejezésből (#21184), vissza kell térni a típusleképezéshez. (Köszönjük) @MartinGC94!)
- Javítsa ki a regressziót a (
$_) típuskövetkeztetés során (Köszönöm@MartinGC94!) - Bővítsd
~a Windowson tabulátor-kiegészítéssel$HOME(#21529) - Ne fejezze be a paraméternév és az osztálytag (#21182) deklarálásakor (Köszönjük @MartinGC94!)
- A típusnevek (#20084) kiegészítésekor megakadályozzuk a fájl kiegészítésre való visszaesést (Köszönet @MartinGC94)
- Argumentum-kiegészítő hozzáadása a
-VersionSet-StrictMode-hoz: (#20554) (Köszönjük @ArmaanMcleod!) -
-Verbargumentum-kiegészítő hozzáadása aGet-Verb/Get-Command-hez és aGet-Verbrefaktorálása (#20286) (Köszönjük @ArmaanMcleod)) - Adja hozzá az
-Verbargumentum-kiegészítőt aStart-Process(#20415) számára. Köszönjük @ArmaanMcleod) - Argumentum-kiegészítés hozzáadása
-Scopea >*-Variable*-Aliasparancsokhoz*-PSDrive(#20451) (Köszönet@ArmaanMcleod) - Parancsok kiegészítése:
-ModuleSave-Help/Update-Help(#20678) (Köszönet @ArmaanMcleod))
Új parancsmagok
- Parancsmagok hozzáadása
ConvertTo-CliXmlésConvertFrom-CliXml(#21063) (Köszönjük @ArmaanMcleod!))
Webes parancsmagok fejlesztései
- Javítás az
-PassThrués-Outfileközötti együttműködés engedélyezésére (#24086) - Tulajdonság hozzáadása
OutFileWebResponseObject(#24047) alkalmazásban - Fájlnév megjelenítése a következőben
Invoke-WebRequest -OutFile -Verbose: (#24041) - WebCmdlets javítása, ha
-Bodymeg van adva, deContentTypenincs (#23952) (Köszönöm @CarloToso!) - Javítsa
Invoke-WebRequestúgy, hogy a helyes méret jelentése történjen, amikor-Resumemeg van adva (#20207) (Köszönjük, @LNKLEO!)) - Webparancsmagok javítása az
WinFormalkalmazások megfelelő működéséhez (#20606)
Egyéb parancsmagok fejlesztései
-
Out-GridViewjavítása az elavultBinaryFormatteregyéni megvalósítással történő helyettesítése által (#25559) - Engedélyezze, hogy
-NoRestartegyüttműködjönRegister-PSSessionConfiguration(#23891) -
IgnoreCommentsésAllowTrailingCommasopciók hozzáadása aTest-Jsonparancshoz (#23817) (Köszönjük @ArmaanMcleod!) - Get-Help jelentheti a
ValueFromRemainingArgumentsattribútummal rendelkező paramétereket folyamatba illeszthetőként (#23871) - Módosítsa a típust
LineNumber-rólulong-re aSelect-String-ben (#24075) (Köszönjük @Snowman-25!)) -
Get-Process: Távolítsa el a (-IncludeUserName) rendszergazdai követelményét (köszönöm@jborean93!) - Javítsa ki
Test-Path -IsValidérvénytelen elérési útvonal- és fájlnevelemek ellenőrzésére (#21358) - Adja hozzá a
RecommendedActionaConciseViewhibajelentéshez (#20826) (Köszönjük @JustinGrote!) - A parancsmaghoz
Remove-Itemhozzáadott folyamatjelző sáv (#20778) (Köszönöm @ArmaanMcleod!) - Javítás
Test-Connectiona .NET 8 változásai miatt (#20369) - A nem végződő hibaüzenet kijavítása
Get-Servicea kategória belefoglalásával (#20276) - Adja hozzá a
-Emptyelemhez a-InputObjectésNew-Guidparamétereket (#20014) (Köszönjük @CarloToso!)) - Adja hozzá az aliast
ra-Recurseparancs paraméteréhezGet-ChildItem(#20100) (Köszönjük@kilasuit!) - Adja hozzá a
LP-t aLiteralPathaliasokhoz azoknál a függvényeknél, amelyeknél ez még hiányzik (#20820) - Implicit lokalizációs visszaesés hozzáadása a
Import-LocalizedDataelemhez (#19896) (köszönet @chrisdent-de!)) - A
Aliases(Get-Help) által visszaadott paraméter súgótartalmának formázásakor megjelenő tulajdonságokhoz adja hozzá a elemet. - Adja hozzá
HelpUriaRemove-Service-hoz (#20476) - Az SCCM-szolgáltató befejezési összeomlásának javítása (#20815, #20919, #20915) (Köszönjük @MartinGC94!)
- Regresszió javítása
Get-Contentamikor a-Tail 0és-Waitegyütt vannak használva (#20734) (Köszönjük @CarloToso!)) - Javítás
Start-Process -PassThruannak biztosításához, hogy aExitCodetulajdonság elérhető legyen a visszaadottProcessobjektumhoz (#20749) (Köszönjük @CodeCyclone!) - Javítás
Group-Objectaz aktuális kultúra kimenethez való használatához (#20608) - Kimenet javítása
Group-Objectinterpolált sztringekkel (#20745) (Köszönettel @mawosoft!) - A
DisplayRootrenderelésének javítása aPSDrivehálózathoz (#20793) - Kijavítottuk
Copy-Itema folyamatot, hogy csak az összes fájl másolása után jelenjen meg (#20517) - UNC útvonal kiegészítés visszalépésének javítása (#20419) (Köszönjük @MartinGC94!)
- Jelentsen hibát, ha érvénytelen
-ExecutionPolicykerül átadásrapwshszámára (#20460) - WinGetCommandNotFound és CompletionPredictor modulok hozzáadása a használat nyomon követéséhez (#21040)
-
DateKind paraméter hozzáadása a(z) (
ConvertFrom-Json) paraméterhez (köszönjük@jborean93!) - DirectoryInfo hozzáadása a New-Item kimeneti típusához (#21126) (köszönjük@MartinGC94!)
- Tömbértékek szerializálásának javítása
Get-Error(#21085) (Köszönjük @jborean93!) - Javítsa ki
Test-ModuleManifest, hogy használhasson egy UNC elérési utat (#24115) - Javítás
Get-TypeDataa folyamatba való azonnali íráshoz az első adatgyűjtés helyett (#24236) (Köszönjük @MartinGC94) - Paraméter
-Forcehozzáadása aResolve-PathésConvert-Pathparancsmagokhoz a helyettesítő karakterekkel ellátott rejtett fájlok támogatásához #20981 (Köszönjük @ArmaanMcleod!)) - Standard fogópontok explicit beállítása folyamat
-NoNewWindowindításakor (#25324) - Tegye elérhetővé az örökölt védett belső példánytagokat az osztály hatókörében. (#25547) (Köszönöm @mawosoft!)
- Távolítsa el a régi homályos javaslatot, és javítsa ki a helyi szkriptfájlnév-javaslatot (#25330)
- Fix
PSMethodInvocationConstraints.GetHashCodemetódus (#25306) (Köszönöm @crazyjncsu!)
Motorfejlesztések
- A .NET metódushívás naplózását helyezze át a szükséges típuskonverzió elvégzése után, amely a metódus argumentumaira vonatkozik (#25357)
- Visszalépés az AppLockerre
WldpCanExecuteFile(#25305) - Kifejezetten indítsa el és állítsa le az ANSI hibaszínt (#24065) (Köszönöm @JustinGrote!))
- Az általános metódusok .NET-túlterhelési definíciójának javítása (#21326) (Köszönjük @jborean93!)
- A gyűjtemény műveletének
+=optimalizálása objektumtömb esetén (#23901) (Köszönöm @jborean93!) - Telemetria hozzáadása adott címkék kereséséhez modul importálásakor (#20371)
- A
PSAdapterés aConsoleGuiToolshozzáadása a modulbetöltési telemetria engedélyezési listához (#20641) - WinGet-modul hozzáadása a használat nyomon követéséhez (#21040)
- Győződjön meg arról, hogy a fájlnév nem null értékű a WDAC ETW-események naplózásakor (#20910) (Köszönjük @jborean93!)
- A WDAC naplózási funkció által bevezetett négy regresszió javítása (#20913)
- A bemeneti, kimeneti és hiba csatornák ne legyenek megadva, ha nincsenek átirányítva (#20853)
- Az implicit távirányítási proxi-parancsmagok javítása, hogy a gyakori paraméterekre hathassanak (#20367)
- Adja meg a modul verzióját a hibaüzenetekben, ha a modul nem található (#20144) (Köszönjük @ArmaanMcleod!)
- Kijavítva
unixmodekezeléséresetuidéssticky, amikor a fájl nem végrehajtható (#20366) - Javítás a Path.Combine szerelvény használatával a szerelvényútvonalak létrehozásakor (#21169)
- Ellenőrizze a névtér szemantikai ellenőrzések során való használatának értékét az érvénytelen névterek deklarálásának megakadályozása érdekében (#21162)
- Kezelje a globális eszközt különösen, amikor
$PSHOMEelemet ad hozzá a PATH elejére (#24228)
Kísérleti funkciók
A powershell 7.5-rc.1-ben a következő kísérleti funkciók lettek általános funkciókká alakítva:
A PowerShell 7.5-rc.1 a következő kísérleti funkciókat tartalmazza:
- PSRedirectToVariable – Változóra való átirányítás engedélyezése (#20381)
- PSNativeWindowsTildeExpansion – Tilde bővítmény hozzáadása Windows-natív végrehajtható fájlokhoz (#20402) (Köszönjük @domsleee!)
-
PSSerializeJSONLongEnumAsNumber -
ConvertTo-Jsonmost a nagy számokat számként kezeli (#20999) (Köszönöm @jborean93!)
Teljesítménybeli fejlesztések
A PowerShell 7.5-rc.1 tartalmazta a PR#23901-et@jborean93, amely javítja a += művelet teljesítményét egy objektumtömb esetében.
Az alábbi példa az elemek tömbhöz való hozzáadásának különböző módszereinek teljesítményét méri.
$tests = @{
'Direct Assignment' = {
param($count)
$result = foreach($i in 1..$count) {
$i
}
}
'List<T>.Add(T)' = {
param($count)
$result = [Collections.Generic.List[int]]::new()
foreach($i in 1..$count) {
$result.Add($i)
}
}
'Array+= Operator' = {
param($count)
$result = @()
foreach($i in 1..$count) {
$result += $i
}
}
}
5kb, 10kb | ForEach-Object {
$groupResult = foreach($test in $tests.GetEnumerator()) {
$ms = (Measure-Command { & $test.Value -Count $_ }).TotalMilliseconds
[pscustomobject]@{
CollectionSize = $_
Test = $test.Key
TotalMilliseconds = [Math]::Round($ms, 2)
}
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
}
$groupResult = $groupResult | Sort-Object TotalMilliseconds
$groupResult | Select-Object *, @{
Name = 'RelativeSpeed'
Expression = {
$relativeSpeed = $_.TotalMilliseconds / $groupResult[0].TotalMilliseconds
$speed = [Math]::Round($relativeSpeed, 2).ToString() + 'x'
if ($speed -eq '1x') { $speed } else { $speed + ' slower' }
}
} | Format-Table -AutoSize
}
Amikor a szkriptet a PowerShell 7.4.6-ban futtatja, láthatja, hogy a += operátor használata a leglassabb módszer.
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
5120 Direct Assignment 4.17 1x
5120 List<T>.Add(T) 90.79 21.77x slower
5120 Array+= Operator 342.58 82.15x slower
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
10240 Direct Assignment 0.64 1x
10240 List<T>.Add(T) 184.10 287.66x slower
10240 Array+= Operator 1668.13 2606.45x slower
Amikor a szkriptet a PowerShell 7.5-rc.1-ben futtatja, láthatja, hogy a += operátor használata sokkal gyorsabb, mint a PowerShell 7.4.6. Most már gyorsabb is, mint a List<T>.Add(T) metódus használata.
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
5120 Direct Assignment 4.71 1x
5120 Array+= Operator 40.42 8.58x slower
5120 List<T>.Add(T) 92.17 19.57x slower
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
10240 Direct Assignment 1.76 1x
10240 Array+= Operator 104.73 59.51x slower
10240 List<T>.Add(T) 173.00 98.3x slower