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 modulokat importáljanak egy implicit Windows PowerShell munkamenetbe
- 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 szolgáltatások é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 rendszeren, 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+
A PowerShell 7.0 emellett 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 csomagokat is biztosított az Archhoz és a Kali Linuxhoz.
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-visszalépé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át ismertető cikkben talál további információt.
A PowerShell 7 futtatása
A PowerShell 7 a Windows PowerShell külön könyvtárba települ. 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á van adva a következőhöz:$env:PATH
A PowerShell 7 telepítőcsomagja frissíti a PowerShell 6.x korábbi verzióit:
- PowerShell 6.x Windows rendszeren: a 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 indítására használható végrehajtható fájl neve powershell.exe
. A 6-os és újabb verziókban 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 szükséges ú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 jelöli, így jelentősen nagyobb kompatibilitást tesz lehetővé a meglévő Windows PowerShell modulokkal. Ez számos olyan modult tartalmaz a Windowson, amelyekhez grafikus felhasználói felületi funkciók szükségesek( például Out-GridView
és Show-Command
), valamint számos, a Windows részét képező szerepkörkezelési modul.
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 egy helyi Windows PowerShell folyamatot használ a modulban található parancsmagok implicit futtatásához. További információ az Import-Module 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 mostantól 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 Parallel paraméter határozza meg az egyes bemeneti naplók neveihez párhuzamosan futó szkriptblokkot.
Az új ThrottleLimit paraméter korlátozza az egy 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 ábrázolásához. $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 lesz értékelve, és az eredmény logikai értékre lesz konvertálva annak meghatározásához, hogy melyik ág lesz kiértékelve a következő lépésben:
- 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 az Elérési út létezik elem jelenik meg. Ha az elérési út nem létezik, akkor a nem található elérési út jelenik meg.
További információ : Ha.
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 a és a és hasonló bash
zsh
rendszerhéjak AND és OR listáihoz, 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 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 sikertelen volt-e. Ez lehetővé teszi, hogy natív parancsokkal használja őket, nem csak parancsmagokkal vagy függvényekkel.
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 szénerőforrás-kezelőt ??
, a Null feltételes hozzárendelést ??=
és a Null feltételes taghozzáférési operátorokat ?.
és ?[]
a -t.
Null-coalescing operátor ??
A null-coalescing operátor ??
a bal oldali operandus értékét adja vissza, ha nem null.
Ellenkező esetben kiértékeli a jobb oldali operandust, és visszaadja annak eredményét. Az ??
operátor nem értékeli ki a jobb oldali operandust, ha a bal oldali operandus nem null értékű.
$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 értékű 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ű.
$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 értékű feltételes operátor csak akkor engedélyezi a tagok hozzáférését az operandushoz , ?.
vagy elemhozzáférést, ?[]
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 az operátorok 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 status ( Állapot) tagtulajdonság értéke lesz visszaadva:
$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, az elem nem lesz elérhető, és 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 kiválaszthatóak a beállítási változóval $ErrorView
.
A ConciseView esetében, ha egy hiba nem szkriptből vagy elemzési 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 hol található a hiba az adott sorban. Ha a terminál nem támogatja az ANSI színelválasztó 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
A rendszer hozzáad egy új ErrorAccentColor tulajdonságot 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 hibáró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.
Megjelenítés get-error (Megjelenítés get-error) alapján
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 az aktuális munkamenetből hány hiba jelenjen meg.
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ések meglétére. Naponta egyszer a PowerShell 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ójától/ágátó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 általánosan elérhető 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ú, RC- és GA-kiadások frissítéseiről.
A frissítési é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 érték megegyezik a nem definiált értékkel
$Env:POWERSHELL_UPDATECHECK
- A GA-kiadások értesítést küldenek a GA-kiadások frissítéseiről
- Előzetes/RC-kiadások – értesítés a ga és az előzetes verziók frissítéseiről
- Kikapcsolva a frissítési értesítési 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 első alkalommal van beá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 Default
következőre:
$Env:POWERSHELL_UPDATECHECK = 'Default'
További információ a frissítési értesítésekről.
Új DSC-erőforrástá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 hív meg 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ések 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önet@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!)
- Az $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)
- Egy másik runspace-be (#11273) kiszivárgott PowerShell-osztálydefiníció javítása
- Kijavítottuk a 7.0.0-Preview1 fájlban hozzáadott FirstOrDefault primitív által okozott regressziót (#11258)
- További, a PS7 telemetriában nyomon követhető Microsoft-modulok (#10751)
- Jóváhagyott funkciók nem kísérleti jellegűvé tétele (#11303)
- Frissítse a ConciseView-t a TargetObject használatára, ha van (#11075)
- A NullReferenceException kivétel javítása a CompletionCompleters nyilvános metódusokban (#11274)
- A lakásszá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ép környezeti változóinak ö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, hogy a pwsh örökölje $env:PSModulePath fájlt, és engedélyezze a powershell.exe megfelelő indítását (#11057)
- Ugrás a .NET Core 3.1 1. előzetes verziójára (#10798)
- Újrabontási címkék újraelemzése 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
- Az ActionPreference.Break támogatásának hozzáadása hibakeresési, hibakeresési, hiba-, információ-, folyamat-, részletes- vagy figyelmeztető üzenetek létrehozásakor (#8205) @KirkMunro!)
- Engedélyezze a Vezérlőpult bővítményeinek elindítását a PowerShellben .CPL bővítmény megadása nélkül. (#9828)
- Negatív számok támogatása -split operátorban (#8960) (Köszönet @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-hibá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 számításának frissítése a CJK-karakterek helyes figyelembevételével (#11262)
- Unblock-File hozzáadása macOS rendszerhez (#11137)
- Regresszió javítása Get-PSCallStack (#11210) (Köszönet @iSazonov!)
- Az Ütemezett feladat modul automatikus betöltésének eltávolítása feladatparancsmagok használata esetén (#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.
- A kimeneti kódolás beállítása a következőre: [Konzol]::OutputEncoding natív parancsokhoz (#10824)
- Többsoros kódblokkok támogatása példákban (#10776) (Köszönjük @Greg-Smulko!)
- Kulturális paraméter hozzáadása Select-String parancsmaghoz (#10943) (Köszönet @iSazonov!)
- Start-Job munkakönyvtár elérési útjának javítása záró fordított perjellel (#11041)
- ConvertFrom-Json: Alapértelmezés szerint bontsa ki a gyűjteményeket (#10861) (Köszönjük @danstur!)
- A -CaseSensitive és -AsHashtable kapcsolókkal (#11030) rendelkező Group-Object parancsmag kis- és nagybetűk megkülönböztetése esetén használható. @vexx32!)
- Kivétel kezelése, ha a fájlok számbavétele meghiúsul a megfelelő burkolatú elérési út újraépítésekor (#11014)
- A ConciseView javítása a tevékenység megjelenítéséhez a myCommand helyett (#11007)
- A webes parancsmagok figyelmen kívül hagyják a HTTP-hibaállapotokat (#10466) (Köszönjük @vdamewood!)
- Több CommandInfo csőhálózatának javítása Get-Command (#10929)
- Get-Counter windowsos parancsmag hozzáadása (#10933)
- ConvertTo-Json kezelje az [AutomationNull]::Value és [NullString]::Value as $null (#10957)
- Szögletes zárójelek eltávolítása az IPV6-címről SSH-remoting esetén (#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, hogy a fájlrendszerobjektum eredeti elérési útja ne legyen plusz perjel (#10959)
- ConvertTo-Json támogatási $null (#10947)
- Out-Printer parancs hozzáadása Windows rendszeren (#10906)
- A -WorkingDirectory Start-Job javítása szóközzel (#10951)
- Alapértelmezett értéket ad vissza, ha null értéket kap egy beállításhoz a PSConfiguration.cs (#10963) (Köszönjük @iSazonov!)
- Az I/O-kivétel kezelése nem megszakításként (#10950)
- GraphicalHost-szerelvény hozzáadása az Out-GridView, a Show-Command és a Get-Help -ShowWindow (#10899) engedélyezéséhez
- 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 annak érdekében, hogy a gyakori paraméterek elérhetőként jelenhessenek meg (#10850)
- Javítsa ki a GetCorrectCasedPath() hibát 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 igényeljen -CursorColumn értéket, és $InputScript.Length (#10849)ként kezeljen
- Olyan eset kezelése, ahol a gazdagép nem feltétlenül ad vissza képernyősorokat vagy oszlopokat (#10938)
- A nem támogatott gazdagépek jelölőszíneinek használatának javítása (#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ási sorozat a kimenetben (#10814) - -NoEmphasize paraméter hozzáadása Select-String kimenet színezéséhez (#8963) (Köszönjük @derek-xia!)
- Get-HotFix parancsmag hozzáadása (#10740)
- Add-Type használhatóvá tétele a PowerShellt futtató alkalmazásokban (#10587)
- Hatékonyabb értékelési sorrend használata a LanguagePrimitives.IsNullLike() (#10781) (Köszönjük @vexx32!)
- A vegyes gyűjteménybemenetű csőbemenetek és a bemenő vezetékes adatfolyamok kezelésének javítása Format-Hex (#8674) (Köszönjük @vexx32!)
- Típuskonverzió használata SSHConnection-kivonattáblákban, ha az érték nem egyezik a várt típussal (#10720) (Köszönjük @SeeminglyScience!)
- Javítsa Get-Content -ReadCount 0 viselkedését a -TotalCount beállításakor (#10749) (Köszönjük @eugenesmlv!)
- Hozzáférés megtagadva hibaüzenet újraszavazása Get-WinEvent (#10639) (Köszönjük @iSazonov!)
- Tabulátorkiegészítés engedélyezése korlátozott vagy számozott változó-hozzárendeléshez (#10646)
- Távolítsa el a nem használt SourceLength újraformázási tulajdonságot, amely formázási problémákat okoz (#10765)
- -Határoló paraméter hozzáadása ConvertFrom-StringData (#10665) (Köszönjük @steviecoaster!)
- Pozícióparaméter hozzáadása a ScriptBlockhoz Invoke-Command SSH-val való használatakor (#10721) (Köszönjük @machgo!)
- Vonalkö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)
- A TokenKind.QuestionMark hiányzó tokenszövegének hozzáadása az elemzőben (#10706)
- Állítsa az egyes ForEach-Object -Parallel futó szkriptek aktuális munkakönyvtárát ugyanarra a helyre, mint a hívó szkript. (#10672)
- Cserélje le 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 New-Service (#10483) (Köszönjük @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önjük @iSazonov!)
- Közvetlen Clear-Host kimenet a terminálba (#10681) (Köszönet @iSazonov!)
- Új vonal hozzáadása Format-Table és -Tulajdonsággal való csoportosításhoz (#10653)
- Távolítsa el a [ValidateNotNullOrEmpty] elemet a -InputObject elemből Get-Random üres sztring engedélyezéséhez (#10644)
- Javaslati rendszer sztring távolsági algoritmusának kis- és nagybetűk megkülönböztetése (#10549) (Köszönjük @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önjük @davinci26!)
- Távolítsa el azt az eseménykezelőt, amely a töréspont-módosításokat hibásan replikálta a gazdafuttatási tér hibakeresőjébe (#10503) (Köszönet @KirkMunro!)
- Cserélje le api-ms-win-core-job-12-1-0.dll Kernell32.dll a Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Köszönjük @iSazonov!)
- Kijavítottuk New-Service helytelen kimenetét változó-hozzárendelésben és -OutVariable (#10444) (Köszönjük @kvprasoon!)
- A kilépési kód, a parancssori paraméterek és az elérési út szóközökkel (#10461) kapcsolatos globális eszközproblémáinak megoldása
- Rekurzió javítása a OneDrive-ban – a FindFirstFileEx() módosítása a SafeFindHandle típus (#10405) használatára
- A PSReadLine automatikus betöltésének kihagyása Windows rendszeren, ha az NVDA képernyőolvasója aktív (#10385)
- A Beépített PowerShell-modulverziók növelése a 7.0.0.0-ra (#10356)
- Adjon hozzá hibát a Add-Type, ha már létezik azonos 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önjük @iSazonov!)
- A PowerShell beépített típusadatainak feldolgozásának javítása a types.ps1xml, typesV3.ps1xml és GetEvent.types.ps1xml (#10898) szolgáltatásból
- A PSConfiguration.ReadValueFromFile frissítése a gyorsabb és hatékonyabb memória é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önyvek (#10454) esetében, és ForEach-Object párhuzamos teljesítményproblémák megoldása számos futtatókörnyezettel (#10455)
Kódkarbantartás
- Megjegyzés és elem szövegének módosítása a Microsoft szabványainak megfelelően (#11304)
- A Compiler.cs stílusproblémái (#10368) (Köszönjük @iSazonov!)
- Távolítsa el a VesszőDelimitedStringCollection (#11000) nem használt típuskonvertert (Köszönjük @iSazonov!)
- Tisztítási stílus InitialSessionState.cs (#10865) (Köszönet @iSazonov!)
- Kód törlése 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 aliast (#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 a ExecutionPolicy beállítás lekérdezésekor (#10985)
- Frissítési értesítés ellenőrzésének letiltása a napi buildek esetében (#10903) (Köszönjük @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önjük @KirkMunro!)
- COM-felületek törlése a gyorslista-kódban a PreserveSig attribútumok javításával (#9899) (Köszönjük @weltkante!)
- Adjon hozzá egy megjegyzést, amely leírja, hogy az -ia miért nem az -InformationAction common paraméter aliasa (#10703) (Köszönjük @KirkMunro!)
- Nevezze át InvokeCommandCmdlet.cs InvokeExpressionCommand.cs (#10659) névre (köszönet @kilasuit!)
- Frissítési értesítésekhez kapcsolódó kisebb kódkarbantartások hozzáadása (#10698)
- Elavult munkafolyamat-logika eltávolítása az átnevezési beállítási szkriptekből (#10320) (Köszönjük @KirkMunro!)
- A súgó formátumának frissítése a megfelelő eset használatához (#10678) (Köszönjük @tnieto88!)
- A CodeFactor-stílusokkal kapcsolatos problémák törlése a véglegesítésekben az elmúlt hónapban (#10591) (Köszönet @iSazonov!)
- Kijavítottuk az elírást a PSTernaryOperator kísérleti funkció leírásában (#10586) (Köszönjük @bergmeister!)
- ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#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ó módosítása nélkül (#10333) (Köszönjük@iSazonov!)
- Kódstílus-javítások készítése a TestConnectionCommand (#10439) szolgáltatásban (Köszönjük @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 a ConvertTo-Csv és 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) épüljön fel.
- Install-Powershell.ps1: Paraméter hozzáadása AZ MSI-telepítés használatához (#10921) (Köszönjük @MJECloud!)
- Adjon hozzá alapvető példákat install-powershell.ps1 (#10914) (Köszönjük @kilasuit!)
- Üres sztring Install-PowerShellRemoting.ps1 kezelése a PowerShellHome paraméterben (#10526) (Köszönet @Orca88!)
- Váltson a /etc/lsb-release kiadásról a /etc/os 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 buildek ellenőrzéséhez (#10489)
Tesztek
- Megbízhatatlan DSC-teszt függőben (#11131)
- A sztringadat-teszt javítása a kivonattáblák kulcsainak helyes érvényesítéséhez (#10810)
- Tesztmodulok eltávolítása (#11061) (Köszönet @iSazonov!)
- A tesztelési URL-cím újrapróbálkozásai közötti idő növelése (#11015)
- A tesztműveletek pontos leírásához frissítse a teszteket. (#10928) (Köszönet @romero126!)
- Ideiglenesen hagyja ki a TestAppDomainProcessExitEvenHandlerNotLeaking (#10827) pelyhes tesztet
- Az eseménykezelő szivá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ő kiszivárgási javításához (#10768)
- Get-ChildItem teszt hozzáadása (#10507) (Köszönet @iSazonov!)
- Cserélje le a nem egyértelmű nyelvet a tesztekhez a pontosság érdekében a kapcsolóról a paraméterre (#10666) (Köszönjük @romero126!)
- Kísérleti ellenőrzés hozzáadása ForEach-Object párhuzamos tesztekhez (#10354) (Köszönjük @KirkMunro!)
- Az Alpine-ellenőrzés frissítési tesztjei (#10428)
Build- és csomagfejlesztések
- Nuget-csomagaláírás javítása koordinált csomag buildhez (#11316)
- Függőségek frissítése a PowerShell-galéria és a NuGet szolgáltatásból (#11323)
- A 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 a 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-ről 10.0.28-ra (#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)
- Engedélyezze a win7x86 msix-csomag létrehozását. (Belső 10515)
- Szemantikai verziók átadásának engedélyezése a NormalizeVersion függvénynek (#11087)
- A .NET core keretrendszert a 3.1-preview.3-ra (#11079)
- Bump PSReadLine 2.0.0-beta5 2.0.0-beta6 a /src/Modules (#11078)
- Bump Newtonsoft.Json 12.0.2-ről 12.0.3-ra (#11037) (#11038)
- Debian 10, 11 és CentOS 8 csomagok hozzáadása (#11028)
- Build-Info Json-fájl feltöltése a ReleaseDate mezővel (#10986)
- A .NET Core-keretrendszert a 3.1-preview.2-hez (#10993) kell hozzáadnia
- 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 from 0.17.1 to 0.18.0 (#10887)
- Bump ThreadJob 2.0.1 és 2.0.2 között (#10886)
- Az AppX jegyzék- és csomagolási modul frissítése az MS Store követelményeinek megfelelően (#10878)
- A PowerShell SDK csomagreferenciájának frissítése az előzetes verzióra.5 (belső 10295)
- ThirdPartyNotices.txt frissítése (#10834)
- A Microsoft.PowerShell.natív verzióval a 7.0.0-preview.3 verzióra (#10826)
- A Microsoft.ApplicationInsights 2.10.0-ról 2.11.0-ra (#10608)
- Bump NJsonSchema 10.0.24-ről 10.0.27-re (#10756)
- MacPorts-támogatás hozzáadása a buildelési rendszerhez (#10736) (Köszönjük @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ótelemetria megkülönböztetéséhez az MSI-ben (#10612)
- Bump PSDesiredStateConfiguration 2.0.3-ról 2.0.4-esre (#10603)
- Bump Microsoft.CodeAnalysis.CSharp 3.2.1-ről 3.3.1-re (#10607)
- Frissítés .Net Core 3.0 RTM-re (#10604) (köszönjük @bergmeister!)
- Frissítse az MSIX-csomagolást úgy, hogy a verziót a Windows Áruház követelményeire (#10588) frissítse.
- Bump PowerShellGet-verzió 2.2-ről 2.2.1-esre (#10382)
- Bump PackageManagement 1.4.3-tól 1.4.4-es verzióig (#10383)
- README.md és 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 létrehozásának javítása (belső 9996)
- Bump PSReadLine verzió 2.0.0-béta4-ről 2.0.0-béta5 (#10536)
- Kiadási buildelési 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ára (#10484) (Köszönjük @bergmeister!)
- Győződjön meg arról, hogy a napi koordinált build napi build (#10464)
- A kombinált csomag buildjének frissítése a napi buildek kiadásához (#10449)
- Appveyor-referencia eltávolítása (#10445) (Köszönet @RDIL!)
- Bump NJsonSchema verzió 10.0.22-ről 10.0.23-ra (#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
- A 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ásainak javítása README.md (#11083)
- Példák hozzáadása install-powershell.ps1 szkripthez (#11024) (Köszönjük @kilasuit!)
- Javítás Select-String kiemeléshez és Import-DscResource CHANGELOG.md (#10890)
- Az elavult hivatkozás eltávolítása 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 buildelési dokumentumokban (#10775) (Köszönjük @Greg-Smulko!)
- Cserélje le az MSDN-ről a Microsoft Learnre mutató hivatkozásokat powershell-beginners-guide.md (#10778) (Köszönjük @iSazonov!)
- Hibás DSC-áttekintési hivatkozás javítása (#10702)
- Frissítse Support_Question.md fájlt, hogy a Stack Overflow-ra mutató hivatkozást egy másik közösségi erőforrásként (#10638) csatolja (Köszönjük @mklement0!)
- Processzorarchitektúra hozzáadása terjesztési kérelemsablonhoz (#10661)
- Új PowerShell MoL-könyv hozzáadása PowerShell-dokumentumok tanulásához (#10602)
- A 6.1.6-os és a 6.2.3-os verzió (#10523) kiadásainak README.md és metaadatainak frissítése
- Elírás javítása README.md (#10465) (Köszönjük @vedhasp!)
- Hivatkozás hozzáadása a PSKoans modulhoz a Tananyagok dokumentációjában (#10369) (Köszönet @vexx32!)
- README.md és metadata.json frissítése a 7.0.0-preview.3 verzióhoz (#10393)