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??=
- Ternáris operátor:
- 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 implicit Windows PowerShell munkamenetben importáljanak modulokat
- 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 funkciók é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-en, beleértve a következőket:
- 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+
Emellett a PowerShell 7.0 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 az Archhoz és a Kali Linuxhoz is biztosított csomagokat.
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-újramotálá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ában talál további információt.
A PowerShell 7 futtatása
A PowerShell 7 a Windows PowerShell-től elkülönítve települ egy könyvtárba. 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á lesz adva a$env:PATH
A PowerShell 7 telepítőcsomagja frissíti a PowerShell 6.x korábbi verzióit:
- PowerShell 6.x Windows rendszeren: 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 elindításához használható végrehajtható fájl neve powershell.exe
. A 6-os és újabb verzióban 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 az ú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 jelzi, így jelentősen nagyobb kompatibilitást tesz lehetővé a meglévő Windows PowerShell modulokkal. Ez számos olyan Windows-modult tartalmaz, amelyekhez grafikus felhasználói felületi funkciókra van szükség, például Out-GridView
és Show-Command
, valamint számos olyan szerepkörkezelési modulra, amelyek a Windows részeként szállnak le.
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 helyi Windows PowerShell folyamatot használ a modulban található parancsmagok implicit futtatásához. További információ az Importálás-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 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 Párhuzamos paraméter az egyes bemeneti naplók neveihez párhuzamosan futó szkriptblokkot adja meg.
Az új ThrottleLimit paraméter korlátozza az 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 megjelenítéséhez. $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értékelésre kerül, és eredménye logikai értékké lesz konvertálva annak meghatározásához, hogy melyik ág lesz kiértékelve a következő:
- 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 megjelenik az Elérési út. Ha az elérési út nem létezik, akkor a nem található elérési út jelenik meg.
További információ a Ha lehetőségről.
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 az and és az OR listához bash
zsh
, 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 akkor hajtja végre a jobb oldali folyamatot, ha a bal oldali folyamat meghiúsult.
Megjegyzés
Ezek az operátorok és $LASTEXITCODE
változók $?
használatával állapítják meg, hogy egy folyamat meghiúsult-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é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 szenesítési operátort ??
, a Null feltételes hozzárendelést ??=
és a Null feltételes taghozzáférési operátorokat ?.
és ?[]
.
Null-coalescing operátor ??
A null-coalescing operátor ??
a bal oldali operandus értékét adja vissza, ha nem null értékű.
Ellenkező esetben kiértékeli a jobb oldali operandust, és visszaadja az eredményét. Az ??
operátor nem értékeli ki a jobb oldali operandust, ha a bal oldali operandus nem null értékűre értékel.
$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 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űre értékel.
$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 feltételes operátor csak akkor engedélyezi a tagoknak az operandushoz való hozzáférését ?.
, vagy elemhozzáférését, ?[]
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 ezeknek az operátoroknak a 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 tagtulajdonság Állapota értékét adja vissza a függvény:
$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 értékű, az elem nem lesz elérhető, és a 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 választhatók a beállítási változón $ErrorView
keresztül.
A ConciseView esetében, ha egy hiba nem szkriptből vagy elemző 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 a hiba hol található az adott sorban. Ha a terminál nem támogatja az ANSI színkioldó sorozatokat (VT100), akkor a színek nem jelennek meg.
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ó $ErrorView
beá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
Az ErrorAccentColor új tulajdonságot ad hozzá 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 hibarő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.
A Get-Error
parancsmag támogatja a folyamat bemenetét a beépített változó $Error
haszná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 hány hiba jelenik meg az aktuális munkamenetből.
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éseinek meglétére. A PowerShell naponta egyszer 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ótól/ágtó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 GA-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ú, az RC- és a GA-kiadások frissítéseiről.
A frissítési értesítés viselkedése $Env:POWERSHELL_UPDATECHECK
a 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ékével
$Env:POWERSHELL_UPDATECHECK
- A GA-kiadások értesítést küldenek a GA-kiadások frissítéseiről
- Az előzetes verzió/RC-kiadások értesítik a ga és az előzetes verziójú kiadások frissítéseit
- A frissítési értesítés 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 először be van á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 következő viselkedésre Default
:
$Env:POWERSHELL_UPDATECHECK = 'Default'
További információ a frissítési értesítésekről.
Új DSC-erőforrás-tá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 meghív 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és 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önjük@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!)
- A $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)
- A PowerShell-osztálydefiníció egy másik runspace-be való kiszivárgásának javítása (#11273)
- Kijavítottuk a 7.0.0-Preview1 fájlban hozzáadott FirstOrDefault primitív által okozott formázási regressziót (#11258)
- További Microsoft-modulok a PS7 telemetriában való nyomon követéshez (#10751)
- Jóváhagyott funkciók nem kísérleti jellegűvé tétele (#11303)
- Frissítse a ConciseView-t a TargetObject használatához, ha van (#11075)
- A NullReferenceException javítása a CompletionCompleters nyilvános metódusaiban (#11274)
- A lakás szá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épi környezeti változók ö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 a pwsh számára a $env:PSModulePath öröklődését, és engedélyezze a powershell.exe helyes indítását (#11057)
- Ugrás a .NET Core 3.1 1. előzetes verziójára (#10798)
- Újrabontási címkeellenőrzések 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
- Támogatás hozzáadása az ActionPreference.Break függvényhez, hogy hibakeresőbe törjön, amikor hibakeresési, hiba-, információ-, folyamat-, részletes- vagy figyelmeztető üzenetek jönnek létre (#8205) (Köszönet @KirkMunro!)
- Engedélyezze a vezérlőpult-bővítmények indítását a PowerShellben anélkül, hogy meg kell adnia .CPL bővítményt. (#9828)
- Negatív számok támogatása felosztásos operátorban (#8960) (Köszönjük @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-probléma megoldásá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 kiszámításának frissítése a CJK-karakter helyes tiszteletben tartása érdekében (#11262)
- Unblock-File hozzáadása macOS rendszerhez (#11137)
- Regresszió javítása Get-PSCallStack (#11210) (Köszönjük @iSazonov!)
- Az ScheduledJob modul automatikus betöltésének eltávolítása feladatparancsmagok használatakor (#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.
- Állítsa a kimeneti kódolást a következőre: [Konzol]::OutputEncoding natív parancsokhoz (#10824)
- Többsoros kódblokkok támogatása példákban (#10776) (Köszönet @Greg-Smulko!)
- Kulturális paraméter hozzáadása Select-String parancsmaghoz (#10943) (Köszönet @iSazonov!)
- A munkakönyvtár elérési útjának javítása Start-Job záró fordított perjellel (#11041)
- ConvertFrom-Json: Alapértelmezés szerint bontsa ki a gyűjteményeket (#10861) (Köszönet @danstur!)
- Kis- és nagybetűket megkülönböztető kivonattábla használata Group-Object-CaseSensitive és -AsHashtable kapcsolókkal (#11030) (Köszönjük @vexx32!)
- Kivétel kezelése, ha a fájlok számbavétele meghiúsul az elérési út megfelelő burkolatú újraépítésekor (#11014)
- Kijavítottuk a ConciseView-t, hogy a tevékenység jelenjen meg a myCommand helyett (#11007)
- A webes parancsmagok figyelmen kívül hagyják a HTTP-hibaállapotokat (#10466) (Köszönet @vdamewood!)
- Egynél több CommandInfo csőhálózatának javítása Get-Command (#10929)
- Get-Counter windowsos parancsmag hozzáadása (#10933)
- Az ConvertTo-Json kezelje az [AutomationNull]::Value és a [NullString]::Value $null (#10957)
- Szögletes zárójelek eltávolítása az ipv6-címről SSH-visszaalakításhoz (#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 azt a beállítást, hogy a fájlrendszerobjektum eredeti elérési útja ne legyen plusz perjellel (#10959)
- Támogatási $null ConvertTo-Json esetén (#10947)
- Out-Printer parancs hozzáadása Windows rendszeren (#10906)
- A -WorkingDirectory Start-Job javítása szóközzel (#10951)
- A PSConfiguration.cs fájlban (#10963) lévő beállítás null értékének visszaadása (Köszönet @iSazonov!)
- I/O-kivétel kezelése nem megszakítóként (#10950)
- GraphicalHost-szerelvény hozzáadása az Out-GridView, a Show-Command és a Get-Help -ShowWindow engedélyezéséhez (#10899)
- 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, hogy az elérhetőként jelenítsen meg gyakori paramétereket (#10850)
- A GetCorrectCasedPath() javítása 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 követelje meg a -CursorColumn értéket, és kezelje $InputScript.Length (#10849)
- Olyan eset kezelése, ahol a gazdagép nem feltétlenül ad vissza sorokat vagy képernyőoszlopokat (#10938)
- A nem támogatott gazdagépek jelölőszíneinek használata kijavítva (#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óütemezés a kimenetben (#10814) - -NoEmphasize paraméter hozzáadása Select-String kimenet színezéséhez (#8963) (Köszönet @derek-xia!)
- Get-HotFix parancsmag hozzáadása (#10740)
- Add-Type használhatóvá tétele a PowerShellt futtató alkalmazásokban (#10587)
- Hatékonyabb kiértékelési sorrend használata a LanguagePrimitives.IsNullLike() (#10781) alkalmazásban (Köszönet @vexx32!)
- A vegyes gyűjteményű csőbemenetek és a bemeneti adatfolyamok kezelésének javítása Format-Hex -ban (#8674) (Köszönet @vexx32!)
- Használjon típuskonverziót az SSHConnection kivonattáblákban, ha az érték nem egyezik a várt típussal (#10720) (Köszönet @SeeminglyScience!)
- Kijavítottuk Get-Content -ReadCount 0 viselkedését, ha a -TotalCount be van állítva (#10749) (Köszönjük @eugenesmlv!)
- Az Get-WinEvent (#10639) újraszavas hozzáférés megtagadva hibaüzenete (Köszönet @iSazonov!)
- Tabulátorkiegészítés engedélyezése korlátozott enumerált vagy típus típusú változók hozzárendeléséhez (#10646)
- Távolítsa el a nem használt SourceLength újraformázási tulajdonságot, amely formázási problémákat okoz (#10765)
- -Elválasztó paraméter hozzáadása ConvertFrom-StringData (#10665) (Köszönet @steviecoaster!)
- A ScriptBlock pozícióparaméterének hozzáadása Invoke-Command SSH-val való használatakor (#10721) (Köszönet @machgo!)
- Sorkö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)
- Adja hozzá a TokenKind.QuestionMark hiányzó tokenszövegét az elemzőben (#10706)
- Állítsa be az egyes ForEach-Object -Parallel futó szkriptek aktuális munkakönyvtárát a hívó szkripttel megegyező helyre. (#10672)
- Cserélje le a 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 a New-Service (#10483) elemhez (köszönet @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önet @iSazonov!)
- Közvetlen Clear-Host kimenet a terminálra (#10681) (Köszönet @iSazonov!)
- Új sor hozzáadása Format-Table és -Property (#10653) csoportosításhoz
- Távolítsa el a [ValidateNotNullOrEmpty] elemet az -InputObject elemből Get-Random üres sztring engedélyezéséhez (#10644)
- Javaslati rendszer sztring távolság algoritmus kis- és nagybetűk megkülönböztetése (#10549) (Köszönet @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önet @davinci26!)
- Távolítsa el azt az eseménykezelőt, amely a töréspont-módosításokat hibásan replikálta a gazdagép runspace hibakeresőjére (#10503) (Köszönet @KirkMunro!)
- Cserélje le api-ms-win-core-job-12-1-0.dll Kernell32.dll-re a Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Köszönet @iSazonov!)
- Kijavítottuk New-Service helytelen kimenetét változó-hozzárendelésben és -OutVariable (#10444) (Köszönet @kvprasoon!)
- A kilépési kód, a parancssori paraméterek és a szóközökkel rendelkező elérési út globális eszközproblémáinak elhárítása (#10461)
- Rekurzió javítása a OneDrive-on – a FindFirstFileEx() módosítása a SafeFindHandle típus használatára (#10405)
- A PSReadLine automatikus betöltésének kihagyása Windows rendszeren, ha az NVDA képernyőolvasója aktív (#10385)
- A PowerShell-modul beépített verzióinak növelése a 7.0.0.0-s verzióra (#10356)
- Adjon hozzá hibát a Add-Type, ha már létezik ilyen 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önet @iSazonov!)
- A PowerShell beépített típusadatainak feldolgozásának javítása a types.ps1xml, typesV3.ps1xml és GetEvent.types.ps1xml fájlból (#10898)
- Frissítse a PSConfiguration.ReadValueFromFile fájlt a gyorsabb és hatékonyabb memóriahasználat é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önyvekhez (#10454) és ForEach-Object párhuzamos teljesítményproblémák kijavítása számos runspace esetében (#10455)
Kódkarbantartó
- Megjegyzés és elem szövegének módosítása a Microsoft szabványainak megfelelően (#11304)
- Cleanup style issues in Compiler.cs (#10368) (Köszönet @iSazonov!)
- Távolítsa el a VesszőDelimitedStringCollection (#11000) nem használt típuskonverterét (Köszönet @iSazonov!)
- Cleanup style in InitialSessionState.cs (#10865) (Köszönet @iSazonov!)
- Kód törlése a 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 típusaliast (#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 az ExecutionPolicy beállítás lekérdezésekor (#10985)
- A napi buildek frissítési értesítéseinek letiltása (#10903) (Köszönet @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önet @KirkMunro!)
- COM-felületek törlése a gyorslista kódjában a PreserveSig attribútumok javításával (#9899) (Köszönet @weltkante!)
- Adjon hozzá egy megjegyzést, amely leírja, hogy az -ia miért nem az -InformationAction gyakori paraméterének aliasa (#10703) (Köszönet @KirkMunro!)
- Nevezze át az InvokeCommandCmdlet.cs nevet InvokeExpressionCommand.cs (#10659) névre (Köszönet @kilasuit!)
- Frissítési értesítésekhez kapcsolódó kisebb kódkarbantartók hozzáadása (#10698)
- Elavult munkafolyamat-logika eltávolítása a törlési beállítási szkriptekből (#10320) (Köszönet @KirkMunro!)
- A súgó formátumának frissítése a megfelelő eset használatához (#10678) (Köszönet @tnieto88!)
- Az elmúlt hónapban (#10591) megjelenő CodeFactor-stílusproblémák törlése (Köszönet @iSazonov!)
- Kijavítottuk az elírást a PSTernaryOperator kísérleti funkció leírásában (#10586) (Köszönet @bergmeister!)
- Az ActionPreference.Suspend enumerálási érték konvertálása nem támogatott, fenntartott állapotba, és az ActionPreference használatának korlátozásainak eltávolítása.Mellőzés a beállítási változókban (#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ók módosítása nélkül (#10333) (Köszönet@iSazonov!)
- Kódstílus-javítások készítése a TestConnectionCommand (#10439) parancshoz (Köszönet @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 az ConvertTo-Csv és a 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) legyen létrehozva
- Install-Powershell.ps1: Paraméter hozzáadása AZ MSI telepítéséhez (#10921) (Köszönet @MJECloud!)
- Adjon hozzá alapvető példákat install-powershell.ps1 (#10914) (Köszönet @kilasuit!)
- Az üres sztring Install-PowerShellRemoting.ps1 kezelése a PowerShellHome paraméterben (#10526) (Köszönet @Orca88!)
- Váltás az /etc/lsb-release kiadásról az /etc/os-release 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 build (#10489) ellenőrzéséhez
Tesztek
- Megbízhatatlan DSC-teszt függőben (#11131)
- A sztringadatteszt javítása a kivonattáblák kulcsainak helyes ellenőrzéséhez (#10810)
- Tesztmodulok eltávolítása (#11061) (Köszönet @iSazonov!)
- Idő növelése a tesztelési URL-cím újrapróbálkozásai között (#11015)
- Frissítse a teszteket a tesztműveletek pontos leírásához. (#10928) (Köszönet @romero126!)
- Ideiglenesen hagyja ki a TestAppDomainProcessExitEvenHandlerNotLeaking (#10827) pelyhes tesztet
- Az eseménykezelő kiszivá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ő szivárgási javításához (#10768)
- Get-ChildItem teszt hozzáadása (#10507) (Köszönet @iSazonov!)
- Cserélje le a tesztek nem egyértelmű nyelvét a pontosság paraméterére való váltásról paraméterre (#10666) (Köszönet @romero126!)
- Kísérleti ellenőrzés hozzáadása ForEach-Object -Parallel tesztekhez (#10354) (Köszönet @KirkMunro!)
- Frissítési tesztek az Alpine-ellenőrzéshez (#10428)
Build- és csomagfejlesztések
- Nuget-csomagaláírás javítása koordinált csomag build esetén (#11316)
- Függőségek frissítése PowerShell-galéria és NuGet használatával (#11323)
- Bump 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 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 és 10.0.28 (#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)
- A win7x86 msix-csomag buildelésének engedélyezése. (Belső 10515)
- Szemantikai verziók átadásának engedélyezése a NormalizeVersion függvénynek (#11087)
- A .NET Core-keretrendszer fejlesztése a 3.1-preview.3-ra (#11079)
- Bump PSReadLine 2.0.0-beta5 2.0.0-beta6 in /src/Modules (#11078)
- Bump Newtonsoft.Json 12.0.2 és 12.0.3 (#11037) (#11038)
- Debian 10, 11 és CentOS 8 csomagok hozzáadása (#11028)
- Töltse fel Build-Info Json-fájlt a ReleaseDate mezővel (#10986)
- A .NET Core-keretrendszer fejlesztése a 3.1-preview.2 verzióra (#10993)
- 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 0.17.1 és 0.18.0 között (#10887)
- Bump ThreadJob 2.0.1 és 2.0.2 között (#10886)
- Az AppX Jegyzékfájl és csomagolás modul frissítése az MS Store követelményeinek megfelelően (#10878)
- A PowerShell SDK csomagreferenciájának frissítése az preview.5 verzióra (belső 10295)
- ThirdPartyNotices.txt frissítése (#10834)
- A Microsoft.PowerShell.Native 7.0.0-preview.3 verzióra (#10826)
- Bump Microsoft.ApplicationInsights 2.10.0-ról 2.11.0-ra (#10608)
- Bump NJsonSchema 10.0.24 és 10.0.27 (#10756)
- MacPorts-támogatás hozzáadása a buildrendszerhez (#10736) (Köszönet @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ó telemetriai adatok megkülönböztetéséhez az MSI-ben (#10612)
- Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
- Bump Microsoft.CodeAnalysis.CSharp 3.2.1 és 3.3.1 között (#10607)
- Frissítés a .Net Core 3.0 RTM-hez (#10604) (köszönjük @bergmeister!)
- Frissítse az MSIX-csomagolást úgy, hogy a verzió megfeleljen a Windows Áruház követelményeinek (#10588)
- Bump PowerShellGet-verzió 2.2-től 2.2.1-es verzióig (#10382)
- Bump PackageManagement 1.4.3-tól 1.4.4-es verzióig (#10383)
- A README.md és a 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 generálásának javítása (belső 9996)
- Bump PSReadLine verzió 2.0.0-beta4 2.0.0-beta5 (#10536)
- Kiadási build 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ára9 (#10484) (Köszönjük @bergmeister!)
- Győződjön meg arról, hogy a napi koordinált build napi build (#10464)
- Frissítse a kombinált csomag buildet a napi buildek kiadásához (#10449)
- Appveyor-referencia eltávolítása (#10445) (Köszönet @RDIL!)
- Bump NJsonSchema verzió 10.0.22 és 10.0.23 (#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
- 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ásait javítottuk a README.md -ban (#11083)
- Példák hozzáadása install-powershell.ps1 szkripthez (#11024) (Köszönet @kilasuit!)
- Javítás a CHANGELOG.md Select-String kiemeléséhez és Import-DscResource (#10890)
- Távolítsa el az elavult hivatkozást a 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 dokumentációkban (#10775) (Köszönet @Greg-Smulko!)
- Cserélje le az MSDN-ből a Microsoft Learnre mutató hivatkozásokat powershell-beginners-guide.md (#10778) (Köszönjük @iSazonov!)
- A DSC hibás áttekintési hivatkozásának javítása (#10702)
- Frissítse Support_Question.md fájlt úgy, hogy a Stack Overflow-hoz egy másik közösségi erőforrásként (#10638) hivatkozik (köszönjük) @mklement0!)
- Processzorarchitektúra hozzáadása a terjesztési kérelemsablonhoz (#10661)
- Új PowerShell MoL-könyv hozzáadása a PowerShell-dokumentumok megismeréséhez (#10602)
- A 6.1.6-os és a 6.2.3-es verzió (#10523) README.md és metaadatainak frissítése
- Elírás javítása a README.md (#10465) alkalmazásban (Köszönet @vedhasp!)
- A PSKoans modulra mutató hivatkozás hozzáadása a Learning Resources dokumentációhoz (#10369) (Köszönet @vexx32!)
- A README.md és a metadata.json frissítése a 7.0.0-preview.3 verzióhoz (#10393)