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 kísérleti funkcióinak támogatása olyan mechanizmust biztosít, amely lehetővé teszi, hogy a kísérleti funkciók együtt létezhessenek a PowerShell vagy a PowerShell-modulok meglévő stabil funkcióival.
A kísérleti funkció az, ahol a terv nem véglegesítve van. A funkció a felhasználók számára elérhető, hogy teszteljék és visszajelzést adjanak. A kísérleti funkciók véglegesítése után a tervezési módosítások kompatibilitástörő változásokká válnak.
Figyelemfelhívás
A kísérleti funkciók nem használhatók éles környezetben, mivel a módosítások kompatibilitástörőek lehetnek. A kísérleti funkciók hivatalosan nem támogatottak. Nagyra értékeljük azonban a visszajelzéseket és a hibajelentéseket. A GitHub-forrásadattárban fájlozhatja a problémákat.
A funkciók engedélyezéséről vagy letiltásáról további információt a about_Experimental_Features talál.
Kísérleti funkciók életciklusa
A Get-ExperimentalFeature parancsmag a PowerShellben elérhető összes kísérleti funkciót visszaadja.
A kísérleti funkciók modulokból vagy a PowerShell-motorból származhatnak. A modulalapú kísérleti funkciók csak a modul importálása után érhetők el. Az alábbi példában a PSDesiredStateConfiguration nincs betöltve, így a PSDesiredStateConfiguration.InvokeDscResource funkció nem érhető el.
Get-ExperimentalFeature
Name Enabled Source Description
---- ------- ------ -----------
PSFeedbackProvider True PSEngine Replace the hard-coded suggestion framework with the extensible feedb…
PSLoadAssemblyFromNativeCode False PSEngine Expose an API to allow assembly loading from native code
PSNativeWindowsTildeExpansion True PSEngine On windows, expand unquoted tilde (`~`) with the user's current home …
PSRedirectToVariable True PSEngine Add support for redirecting to the variable drive
PSSerializeJSONLongEnumAsNumber True PSEngine Serialize enums based on long or ulong as an numeric value rather tha…
PSSubsystemPluginModel True PSEngine A plugin model for registering and un-registering PowerShell subsyste…
A funkció engedélyezéséhez vagy letiltásához használja az Enable-ExperimentalFeature és a Disable-ExperimentalFeature parancsmagokat. A módosítás érvénybe lépéséhez új PowerShell-munkamenetet kell indítania. Futtassa a következő parancsot a PSCommandNotFoundSuggestion funkció engedélyezéséhez:
Enable-ExperimentalFeature PSFeedbackProvider
WARNING: Enabling and disabling experimental features do not take effect until next start
of PowerShell.
Amikor egy kísérleti funkció általánossá válik, az már nem érhető el kísérleti funkcióként, mivel a funkció most már a PowerShell-motor vagy -modul része. A funkció például általánossá vált a PSAnsiRenderingFileInfo PowerShell 7.3-ban. A funkció képességeit automatikusan megkapja.
Megjegyzés
Egyes funkciók konfigurációs követelményekkel( például beállításváltozókkal) rendelkeznek, amelyeket be kell állítani, hogy megkapják a kívánt eredményeket a szolgáltatásból.
Ha egy kísérleti funkció megszűnik, ez a funkció már nem érhető el a PowerShellben. A funkciót például megszüntették a PSNativePSPathResolution PowerShell 7.3-ban.
Elérhető funkciók
Ez a cikk az elérhető kísérleti funkciókat és a funkció használatát ismerteti.
Jelmagyarázat
- Az
ikon azt jelzi, hogy a kísérleti funkció elérhető a PowerShell verziójában
- Az
ikon a PowerShell azon verzióját jelzi, ahol a kísérleti funkció általánossá vált
- Az
ikon a PowerShell azon verzióját jelzi, ahol a kísérleti funkció el lett távolítva
PSParancsNemTalálhatóJavaslat
Megjegyzés
Ez a funkció általánossá vált a PowerShell 7.5-preview.5-ben.
Fuzzy egyeztetéses keresés alapján javasolja a lehetséges parancsokat a CommandNotFoundException után.
PS> get
get: The term 'get' isn't recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.
Suggestion [4,General]: The most similar commands are: set, del, ft, gal, gbp, gc, gci,
gcm, gdr, gcs.
PSCommandWithArgs
Megjegyzés
Ez a funkció általánossá vált a PowerShell 7.5-preview.5-ben.
Ez a funkció engedélyezi a -CommandWithArgs paramétert a pwsh számára. Ez a paraméter lehetővé teszi a PowerShell-parancsok argumentumokkal való végrehajtását. Ezzel ellentétben -Commandez a paraméter feltölti a $args parancs által használható beépített változót.
Az első sztring a parancs, a további szóközök által tagolt sztringek pedig az argumentumok.
Példa:
pwsh -CommandWithArgs '$args | % { "arg: $_" }' arg1 arg2
Ez a példa a következő kimenetet hozza létre:
arg: arg1
arg: arg2
Ez a funkció a PowerShell 7.4-preview.2-ben lett hozzáadva.
PSDesiredStateConfiguration.InvokeDscResource
Lehetővé teszi az MOF-ra való fordítást nem Windows rendszerű rendszereken, és lehetővé teszi az LCM nélküli használatot Invoke-DSCResource .
A PowerShell 7.2-től kezdve a PSDesiredStateConfiguration modul el lett távolítva, és ez a funkció alapértelmezés szerint le van tiltva. A szolgáltatás engedélyezéséhez telepítenie kell a PSDesiredStateConfiguration v2.0.5 modult a PowerShell-galéria, és engedélyeznie kell a funkciót.
A DSC v3 nem rendelkezik ezzel a kísérleti funkcióval. A DSC v3 csak a Invoke-DSCResource funkciót támogatja, és nem használja vagy támogatja az MOF-fordítást. További információ: PowerShell Desired State Configuration v3.
PSFeedbackProvider
Ha engedélyezi ezt a funkciót, a PowerShell egy új visszajelzési szolgáltatóval küld visszajelzést, ha egy parancs nem található. A visszajelzési szolgáltató bővíthető, és külső modulok is implementálhatók. A visszajelzési szolgáltatót más alrendszerek, például a prediktor alrendszer is használhatják a prediktív IntelliSense-eredmények biztosításához.
Ez a funkció két beépített visszajelzési szolgáltatót tartalmaz:
A GeneralCommandErrorFeedback ugyanazt a javaslati funkciót szolgálja ki, amely ma is létezik
A Linuxon elérhető UnixCommandNotFound a bashhez hasonló visszajelzést nyújt.
A UnixCommandNotFound visszajelzési szolgáltatóként és prediktorként is szolgál. A command-not-found parancs javaslatát egyaránt arra használja a rendszer, hogy visszajelzést küldjön, ha a parancs nem található interaktív futtatásban, és prediktív IntelliSense-eredményeket biztosít a következő parancssorhoz.
Ez a funkció a PowerShell 7.4-preview.3-ban lett hozzáadva.
PSLoadAssemblyFromNativeCode
Egy API-t tesz elérhetővé, amely lehetővé teszi az assembly natív kódból történő betöltését.
PSModuleAutoLoadSkipOfflineFiles
Megjegyzés
Ez a funkció általánossá vált a PowerShell 7.5-preview.5-ben.
Ha ez a funkció engedélyezve van, ha egy felhasználó PSModulePath-kiszolgálója tartalmaz egy felhőszolgáltatótól származó mappát, például a OneDrive-ot, a PowerShell többé nem aktiválja az adott mappában található összes fájl letöltését. A program kihagyja a nem letöltöttként megjelölt fájlokat. Azok a felhasználók, akik felhőszolgáltatókkal szinkronizálják a modulokat a gépek között, a modulmappát rögzítettként vagy a OneDrive-on kívüli szolgáltatók számára egyenértékű állapotként kell megjelölniük. A modulmappa rögzítettként való megjelölésével biztosítható, hogy a fájlok mindig a lemezen legyenek tárolva.
Ez a funkció a PowerShell 7.4-preview.1-ben lett hozzáadva.
PSRedirectToVariable
Megjegyzés
Ez a kísérleti funkció a PowerShell 7.5-preview.4-ben lett hozzáadva.
Ha engedélyezve van, ez a funkció támogatja a változó: meghajtóra való átirányítást. Ez a funkció lehetővé teszi az adatok egy változóba való átirányítását a Variable:name szintaxis használatával. A PowerShell az átirányítás célját veszi figyelembe, és ha a változószolgáltatót használja, Set-Variablehelyett Out-File hív meg.
Az alábbi példa bemutatja, hogyan irányíthatja át egy parancs kimenetét egy változóra:
. {
"Output 1"
Write-Warning "Warning, Warning!"
"Output 2"
} 3> Variable:warnings
$warnings
Output 1
Output 2
WARNING: Warning, Warning!
PSSubsystemPluginModel
Ez a funkció lehetővé teszi az alrendszer beépülő modul modelljét a PowerShellben. A funkció lehetővé teszi, hogy System.Management.Automation.dll összetevőit önálló alrendszerekké válasszák szét, amelyek a saját összeállításukban találhatók. Ez az elkülönítés csökkenti az alapvető PowerShell-motor lemezigényét, és lehetővé teszi, hogy ezek az összetevők választható funkciókká váljanak a Minimális PowerShell-telepítéshez.
Jelenleg csak a CommandPredictor alrendszer támogatott. Ezt az alrendszert a PSReadLine modullal együtt használjuk egyéni előrejelzési beépülő modulok biztosítására. A jövőben a Feladat, CommandCompleter, Remoting és más összetevők különválaszthatók a System.Management.Automation.dll kívüli alrendszer-assemblékbe.
A kísérleti funkció tartalmaz egy új parancsmagot, a Get-PSSubsystem-t. Ez a parancsmag csak akkor érhető el, ha a funkció engedélyezve van. Ez a parancsmag a rendszeren elérhető alrendszerekről ad vissza információkat.
PSNativeWindowsTildeExpansion
Ha ez a jellemző engedélyezve van, a PowerShell az idézőjelek nélküli tilde (~) jelet kibontja a felhasználó aktuális otthoni könyvtárába a natív parancsok végrehajtása előtt. Az alábbi példák a funkció működését mutatják be.
Ha a funkció le van tiltva, a tilde szó szerinti sztringként lesz átadva a natív parancsnak.
PS> cmd.exe /c echo ~
~
Ha a funkció engedélyezve van, a PowerShell kiterjeszti a tilde-t, mielőtt a natív parancsnak átadják.
PS> cmd.exe /c echo ~
C:\Users\username
Ez a funkció csak a Windowsra vonatkozik. A nem Windows-platformokon a tilde-bővítés natív módon történik.
Ez a funkció a PowerShell 7.5-preview.2-ben lett hozzáadva.
PSSerializeJSONLongEnumAsNumber
Ez a funkció lehetővé teszi a ConvertTo-Json parancsmagnak, hogy bármely enumerációs értéket az Int64/long vagy UInt64/ulong alapján numerikus értékként sorosítson, nem pedig az adott enumerációs érték szöveges megjelenítéseként. Ez az enumok szerializálásának viselkedését más enum-alaptípusokhoz igazítja, ahol a parancsmag az enumerációkat numerikus értékként szerializálja. Sztringábrázolásként az EnumsAsStrings paraméterrel szerializálhatja.
Példa:
# PSSerializeJSONLongEnumAsNumber disabled
@{
Key = [System.Management.Automation.Tracing.PowerShellTraceKeywords]::Cmdlets
} | ConvertTo-Json
# { "Key": "Cmdlets" }
# PSSerializeJSONLongEnumAsNumber enabled
@{
Key = [System.Management.Automation.Tracing.PowerShellTraceKeywords]::Cmdlets
} | ConvertTo-Json
# { "Key": 32 }
# -EnumsAsStrings to revert back to the old behaviour
@{
Key = [System.Management.Automation.Tracing.PowerShellTraceKeywords]::Cmdlets
} | ConvertTo-Json -EnumsAsStrings
# { "Key": "Cmdlets" }