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.
2020. november 11-én bejelentettük a PowerShell 7.1 általános elérhetőségét. A PowerShell 7.0 alapjaira építve erőfeszítéseink a közösségi problémákra összpontosítottak, és számos fejlesztést és javítást tartalmaztunk. Elkötelezettek vagyunk amellett, hogy a PowerShell stabil és teljesítményteljes platform maradjon.
A PowerShell 7.1 tartalmazza a következő funkciókat, frissítéseket és törőképes változtatásokat.
- PSReadLine 2.1.0, amely tartalmazza a Predictive IntelliSense-t
- A PowerShell 7.1 megjelent a Microsoft Store-ban
- Telepítő csomagok frissítve az új operációs rendszer verziókhoz, ARM64 támogatással
- 4 új kísérleti és 2 kísérleti funkció került a mainstreambe
- Több törőképes változtatás a használhatóság javítására
A módosítások teljes listáját a GitHub-adattár VÁLTOZÁSNAPLÓjában találja.
PSReadLine 2.1.0
A PowerShell 7.1 tartalmazza a PSReadLine 2.1.0-t is. Ez a verzió tartalmazza a Predictive IntelliSense-t is. További információért a Predictive IntelliSense funkcióról a PowerShell blog bejelentésében található.
Microsoft Store telepítő csomag
A PowerShell 7.1 megjelent a Microsoft Store-ban. A PowerShell kiadást megtalálod a Microsoft Store weboldalán vagy a Windows Store alkalmazásában.
A Microsoft Store-csomag előnyei:
- Automatikus frissítések közvetlenül a Windowsba
- Integrálódik más szoftverterjesztési mechanizmusokkal, mint az Intune és az SCCM
Megjegyzés:
A rendszerszintű konfigurációs beállítások $PSHOME nem módosíthatók. Ebbe beletartozik a WSMAN konfigurációja is. Ez megakadályozza, hogy a távoli munkamenetek a PowerShell áruházalapú telepítéséhez csatlakozzanak. A felhasználói szintű konfigurációk és az SSH távoli hozzáférés támogatott.
Egyéb telepítők
További up-toinformációért a támogatott operációs rendszerekről és a támogatási életciklusról a PowerShell Support Lifecycle-ben található.
Nézd meg a kedvenc operációs rendszered telepítési útmutatóját:
Ezen felül a PowerShell 7.1 támogatja az ARM32 és ARM64 változatokat a Debian, Ubuntu és ARM64 Alpine Linux verzióiban.
Bár hivatalosan nem támogatott, a közösség csomagokat is biztosított Arch és Kali Linux számára.
Megjegyzés:
A Debian 10+, CentOS 8+, Ubuntu 20.04, Alpine és Arm jelenleg nem támogatják a WinRM távirányítót. Az SSH-alapú távollés beállításáról a PowerShell Remoting over SSH oldalán részletekért lásd.
Kísérleti funkciók
További információ a kísérleti funkciókról: A kísérleti funkciók használata.
A következő kísérleti funkciók most már a mainstream funkciók ebben a kiadásban:
A következő kísérleti funkciók kerültek hozzá ebben a kiadásban:
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
- A PowerShell 7.1 kiterjeszti ezt a kísérleti funkciót, hogy a Runspace paramétert minden
*-PSBreakpointcmdlethez hozzáadja. A Runspace paraméter egy Runspace objektumot határoz meg, amely a megadott futótérben lévő megszakítási pontokat érinti.
- A PowerShell 7.1 kiterjeszti ezt a kísérleti funkciót, hogy a Runspace paramétert minden
PSNativePSPathResolution – Ez a funkció lehetővé teszi, hogy a PowerShell szolgáltató útvonalait olyan natív parancsokhoz adj, amelyek nem támogatják a PowerShell útszintaxist.
PSCultureInvariantReplaceOperator – Ha egy operátor utasításban a bal oldali operandum
-replacenem string, az operánd átalakul egy stringré. Ha ez a funkció be van kapcsolva, a konverzió nem használja a Culture beállításokat a string átalakításhoz.A PSSubsystemPluginModel megalapozza a jövőbeli Predictive IntelliSense bővítmények támogatását.
Törő változások és fejlesztések
A string-összehasonlító viselkedés megváltozott a .NET 5.0-ban
A PowerShell 7.1 a .NET 5.0-ra épül, amely a következő törő változást vezette be:
A .NET 5.0-tól a kultúrainvariáns string-összehasonlítások figyelmen kívül hagyják a nem nyomtatott vezérlő karaktereket.
Például a következő két húrt azonosnak tekintjük:
# Escape sequence "`a" is Ctrl-G or [char]7 'Food' -eq "Foo`ad"TrueJavítás
$?, hogy ne legyen$falseakkor a natív parancs (stderr#13395) címhez írGyakori, hogy a natív parancsok
stderrnem akarnak hibát jelezni. Ezzel a változással$?csak akkor van beállítva$false, ha a natív parancsnak is van nulla nélküli kilépési kódja. Ez a változás nem kapcsolódik a kísérleti jellemzőhözPSNotApplyErrorActionToStderr.Ne
$ErrorActionPreferencebefolyásoljastderra natív parancsok kimenetét (#13361)Gyakori, hogy a natív parancsok
stderrnem akarnak hibát jelezni. Ezzel a változással astderrkimenetet továbbra is rögzítik a ErrorRecord objektumokban, de a futás már nem érvényes$ErrorActionPreference, ha a ErrorRecord natív parancsból származik.Átnevezni
-FromUnixTimebe,Get-Datehogy-UnixTimeSecondsengedélyezze a Unix időbevitelét (#13084) (Köszönöm)@aetos382!)A
-FromUnixTimeparamétert a 7.1-preview.2 során adták hozzá. A paramétert átnevezték, hogy jobban illeszkedjen az adattípushoz. Ez a paraméter egy egész számot vesz fel, amely másodpercekben jelenik meg 1970. január 1-je óta, 0:00:00 óta.Ez a példa egy Unix időt (amit a másodpercek száma képvisel 1970-01-01 0:00 óta) átalakítja DateTime-ra.
Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AMEngedélyezzük, hogy a kifejezetten meghatározott nevelt paraméter leváltsa ugyanazt a hashtable splatting (#13162) paraméterét
Ezzel a változással a splattingből származó elnevezett paraméterek a paraméterlista végére kerülnek, így az összes explicit módon megadott név paraméter megkötése után is megkötöttek őket. Egyszerű függvények paraméterkötése nem dob hibát, ha egy meghatározott nevelt paraméter nem található. Az ismeretlen elnevezett paraméterek az egyszerű függvény paraméteréhez vannak kötve
$args. Ha a splatting az argumentuslista végére kerül, az megváltoztatja a paraméterek sorrendjét .$argsPéldául:
function SimpleTest { param( $Name, $Path ) "Name: $Name; Path: $Path; Args: $args" }Az előző viselkedésben a MyPath nem kötött hozzá
-Path, mert ez a harmadik érv az érvelési listán. ## Szóval végül beletömik a '$args'-be aBlah = "World"PS> $hash = @{ Name = "Hello"; Blah = "World" } PS> SimpleTest @hash "MyPath" Name: Hello; Path: ; Args: -Blah: World MyPathEzzel a változással az argumentumok a lista
@hashvégére kerülnek. A MyPath lesz az első argumentum a listán, így kötött .-PathPS> SimpleTest @hash "MyPath" Name: Hello; Path: MyPath; Args: -Blah: WorldLegyen a kapcsoló paraméter
-Qualifierne pozicionális (Split-Path#12960) esetén (Köszönöm)@yecril71pl!)A munkakönyvtárat literális útként oldani fel arra
Start-Processaz esetre, ha nincs megadva (#11946) (Köszönöm @NoMoreFood!)A
-OutFilewebes cmdletekben olyan paramétert alakítsd meg, hogy működjön (-LiteralPath#11701) (Köszi@iSazonov!)Fix string paraméterkötés numerikus
BigIntegerliterálisokhoz (#11634) (Köszönöm @vexx32!)Windowson
Start-Processlétrehoz egy folyamatkörnyezetet az aktuális munkafolyamat összes környezeti változójával,-UseNewEnvironmentés új alapértelmezett folyamatkörnyezetet (#10830) létrehoz (köszönöm) @iSazonov!)Ne csomagold be a return eredményt a
PSObjectScriptBlocktranszformáláskor (#10619)Amikor az a
ScriptBlockdelegált típussá konvertálva C# kontextusban használható, az eredmény a-baPSObjectcsomagolása felesleges problémákat okoz:- Amikor az értéket átalakítjuk a delegált visszaküldés típusra,
PSObjectlényegében a visszacsomagolás kerül. Szóval ezPSObjectfelesleges. - Ha a delegált visszatérési típus
object, az aPSObjectbecsomagolódik, így nehéz vele dolgozni C# kódban.
E változtatás után a visszaadott objektum az alapul szolgáló objektum.
- Amikor az értéket átalakítjuk a delegált visszaküldés típusra,