about_PowerShell_Config
Rövid leírás
A PowerShell konfigurációs fájljai, a beállításjegyzék konfigurációjának lecserélése.
Hosszú leírás
A powershell.config.json
fájl a PowerShell konfigurációs beállításait tartalmazza. A PowerShell indításkor betölti ezt a konfigurációt. A beállítások futásidőben is módosíthatók. Ezeket a beállításokat korábban a PowerShell-hez készült Windows-beállításjegyzékben tárolták, de most már egy fájlban találhatók, amely lehetővé teszi a konfigurációt macOS és Linux rendszeren.
A beállítások összegzése
A powershell.config.json
fájl a következő kulcsokat tartalmazhatja:
DisableImplicitWinCompat
WindowsPowerShellCompatibilityModuleDenyList
WindowsPowerShellCompatibilityNoClobberModuleList
ExperimentalFeatures
LogChannels
LogIdentity
LogKeywords
LogLevel
Microsoft.PowerShell:ExecutionPolicy
PSModulePath
PowerShellPolicies
ExecutionPolicy
ConsoleSessionConfiguration
ModuleLogging
ProtectedEventLogging
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
Nem minden kulcs vonatkozik minden platformra. A PowerShellPolicies
kulcs olyan alkulcsokat tartalmaz, amelyek tükrözik az Ablak csoportházirend által kezelt beállításokat. Ezek az alkulcsok a JSON-fájl gyökérszintjén definiált összes platformra is érvényesek.
Figyelmeztetés
A rendszer figyelmen kívül hagyja a konfigurációs fájl nem felismert kulcsait vagy érvénytelen értékeit. Ha a powershell.config.json
fájl érvénytelen JSON-t tartalmaz, a PowerShell nem tud interaktív munkamenetet indítani. Ha ez történik, ki kell javítania a konfigurációs fájlt.
Konfigurációs hatókör
A konfigurációs beállítások az összes felhasználónál vagy az egyes felhasználói szinten definiálhatók.
AllUsers (megosztott) konfiguráció
A powershell.config.json
címtárban található $PSHOME
fájl határozza meg az adott PowerShell-telepítésből futó összes PowerShell-munkamenet konfigurációját.
Feljegyzés
A $PSHOME
hely ugyanaz a könyvtár, mint a végrehajtó System.Management.Automation.dll szerelvény. Ez a üzemeltetett PowerShell SDK-példányokra is vonatkozik.
CurrentUser -konfigurációk (felhasználónként)
A PowerShellt felhasználónként is konfigurálhatja, ha a fájlt a felhasználói hatókörű konfigurációs könyvtárba helyezi. A felhasználói konfigurációs címtár a parancsot Split-Path $PROFILE.CurrentUserCurrentHost
használó platformokon található.
Hatókör elsőbbsége
Windows rendszeren a Windows csoportházirend által kezelt beállítások elsőbbséget élveznek a konfigurációs fájl beállításaival szemben. A csoportházirend nem létezik nem Windows-platformokon.
A csoportházirend után az AllUsers szinten megadott beállítások elsőbbséget élveznek a CurrentUser szinthez megadott beállításokkal szemben.
Windows-specifikus beállítások
Az alábbi beállítások csak Windows-platformokra vonatkoznak.
DisableImplicitWinCompat
WindowsPowerShellCompatibilityModuleDenyList
WindowsPowerShellCompatibilityNoClobberModuleList
ExecutionPolicy
PowerShellPolicies
DisableImplicitWinCompat
Ha be van true
állítva, ez a beállítás letiltja a Windows PowerShell kompatibilitási funkcióját. A Windows PowerShell kompatibilitás lehetővé teszi, hogy a PowerShell 7 kompatibilis módban töltse be a Windows PowerShell 5.1-modulokat.
További információ: about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityModuleDenyList
Ez a beállítás olyan modulnevek tömbje, amelyeket ki szeretne zárni a Windows PowerShell kompatibilitási funkciójában való részvételből.
További információ: about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityNoClobberModuleList
Ez a beállítás olyan modulnevekből álló tömb, amelyet nem szabad a modul Windows PowerShell 5.1-es verziójának betöltésekor eltűnni.
További információ: about_Windows_PowerShell_Compatibility.
ExecutionPolicy
Fontos
Ez a konfiguráció csak Windows-platformokon érvényes.
Konfigurálja a PowerShell-munkamenetek végrehajtási szabályzatát, meghatározva, hogy mely szkriptek futtathatók. A PowerShell alapértelmezés szerint a meglévő végrehajtási szabályzatot használja.
Az AllUsers-konfigurációk esetében ez állítja be a LocalMachine végrehajtási szabályzatot. A CurrentUser-konfigurációk esetében ez a CurrentUser végrehajtási szabályzatot állítja be.
Az alábbi példa a PowerShell végrehajtási szabályzatát állítja be a következőre RemoteSigned
: .
{
"Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned"
}
További információ: about_Execution_Policies.
PowerShellPolicies
A Windows számos olyan beállítással rendelkezik, amelyek csoportházirenddel kezelhetők. Ezek a beállítások általában a Windows beállításjegyzékében vannak tárolva. Ezek a beállítások a powershell.config.json
fájlban is definiálhatók.
Ez PowerShellPolicies
egy JSON-objektum, amely kulcs-érték párokat tartalmaz a különböző szabályzatbeállításokhoz. Ezek a házirend-beállítások a JSON-fájl gyökérszintjén is listázhatók, az PowerShellPolicies
objektumon kívül. Ez a beállítás a következő alkulcsokat tartalmazhatja:
ConsoleSessionConfiguration
ModuleLogging
ProtectedEventLogging
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
Ezzel ScriptExecution
a beállítással állíthatja be a PowerShell végrehajtási szabályzatát.
Ez elsőbbséget élvez a ExecutionPolicy
fent leírt beállítással szemben.
Példa:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
A többi házirend-beállítás leírását a Common Configuration Settings (Általános konfigurációs beállítások ) szakaszban találja.
Windows rendszeren a PowerShell megkeresi a beállításjegyzék beállításait. A beállításjegyzékben található beállítások elsőbbséget élveznek. A következő PowerShell beolvassa a JSON-konfigurációt. A beállításjegyzékben nem PowerShellPolicies
definiált beállítások elsőbbséget élveznek a JSON-konfiguráció gyökérszintjén található beállításokkal szemben.
További információért lásd: about_Group_Policy_Settings.
Gépház nem Windows-platformokhoz
Az alábbi beállítások csak Linux és macOS platformokra vonatkoznak.
Az alábbi kulcsokkal konfigurálható a PowerShell naplózása Linux és macOS rendszeren.
LogChannels
LogIdentity
LogKeywords
LogLevel
A nem Windows rendszerű rendszerek PowerShell-naplózásának teljes leírását a about_Logging_Non-Windows című cikkben találhatja meg.
Gyakori konfigurációs beállítások
Az alábbi beállítások minden támogatott platformon elérhetők.
ConsoleSessionConfiguration
ExperimentalFeatures
ModuleLogging
ProtectedEventLogging
PSModulePath
ScriptBlockLogging
ScriptExecution
Transcription
UpdatableHelp
ConsoleSessionConfiguration
Ez a beállítás határozza meg az összes PowerShell-munkamenethez használandó munkamenet-konfigurációt. Ez lehet bármely, a helyi gépen regisztrált végpont, beleértve az alapértelmezett PowerShell-remoting végpontokat, vagy egy egyéni végpontot, amely adott felhasználói szerepkör-képességekkel rendelkezik.
Ez a kulcs két alkulcsot tartalmaz:
EnableConsoleSessionConfiguration
- a munkamenet-konfigurációk engedélyezéséhez állítsa az értéket a következőretrue
: . Alapértelmezés szerint ez az érték .false
ConsoleSessionConfigurationName
– Megadja annak a konfigurációs végpontnak a nevét, amelyben a PowerShell fut. Alapértelmezés szerint nincs definiálva munkamenet.
{
"ConsoleSessionConfiguration": {
"EnableConsoleSessionConfiguration": false,
"ConsoleSessionConfigurationName" : []
}
}
További információ: about_Session_Configurations.
ExperimentalFeatures
A PowerShellben engedélyezendő kísérleti funkciók nevei. Az alapértelmezett érték egy üres tömb.
Az alábbi példa engedélyezi a PSCommandNotFoundSuggestion és a PSSubsystemPluginModel kísérleti funkciókat a PowerShell indításakor.
Példa:
{
"ExperimentalFeatures": [
"PSCommandNotFoundSuggestion",
"PSSubsystemPluginModel"
]
}
A kísérleti funkciókról további információt a Kísérleti funkciók használata című témakörben talál.
ModuleLogging
Ez a beállítás szabályozza a PowerShell-modulok naplózásának viselkedését. A beállítás két alkulcsot tartalmaz:
EnableModuleLogging
- a munkamenet-konfigurációk engedélyezéséhez állítsa az értéket a következőretrue
: . Ha engedélyezve van, a megadott modulok tagjainak folyamatvégrehajtási eseményei a PowerShell-naplófájlokban lesznek rögzítve.ModuleNames
– Megadja a naplózni kívánt modulok nevét.
Példa:
{
"ModuleLogging": {
"EnableModuleLogging": true,
"ModuleNames" : [
"PSReadLine",
"PowerShellGet"
]
}
}
ProtectedEventLogging
Ezzel a beállítással konfigurálhatja a védett eseménynaplózást. A beállítás két alkulcsot tartalmaz:
EnableProtectedEventLogging
– Ha engedélyezi ezt a házirend-beállítást, az azt támogató összetevők a megadott tanúsítványt használják a naplóadatok titkosításához, mielőtt a naplóba írják. Az adatok titkosítása a titkosítási üzenet szintaxisa (CMS) szabvány használatával történik. Ezeket a titkosított üzeneteket visszafejthetiUnprotect-CmsMessage
, ha hozzáfér a tanúsítvány titkos kulcsához.EncryptionCertificate
– A titkosításhoz használandó tanúsítványok nevének listáját tartalmazza.
Példa:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
PSModulePath
Felülbírálja a PSModulePath
PowerShell-munkamenet beállításait. Ha a konfiguráció az aktuális felhasználóhoz tartozik, állítsa be a CurrentUser modul elérési útját. Ha a konfiguráció az összes felhasználóhoz tartozik, állítsa be az AllUsers modul elérési útját.
Figyelmeztetés
Az AllUsers vagy a CurrentUser modul elérési útjának konfigurálása nem változtatja meg a PowerShellGet-parancsmagok, például az Install-Module hatókörön belüli telepítési helyét. Ezek a parancsmagok mindig az alapértelmezett modulútvonalakat használják.
Ha nincs beállítva érték, a PowerShell az alapértelmezett értéket használja a megfelelő modulútvonal-beállításhoz. Ezekről az alapértelmezett beállításokról további információt a about_PSModulePath talál.
Ez a beállítás lehetővé teszi a környezeti változók használatát úgy, hogy a karakterek között %
beágyazza őket, például "%HOME%\Documents\PowerShell\Modules"
a Windows Command Shell által engedélyezett módon. Ez a szintaxis Linux és macOS rendszereken is érvényes. Példákat alább talál.
Ez a példa egy PSModulePath
Windows-környezet konfigurációját mutatja be:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\6\\Modules"
}
Ez a példa egy PSModulePath
macOS- vagy Linux-környezet konfigurációját mutatja be:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
Ez a példa egy környezeti változó konfigurációba való PSModulePath
beágyazását mutatja be. Vegye figyelembe, hogy a HOME
környezeti változó és a /
címtárelválasztó használatával ez a szintaxis Windows, macOS és Linux rendszeren is működik.
{
"PSModulePath": "%HOME%/Documents/PowerShell/Modules"
}
Ez a példa egy olyan környezeti változót használ, amely csak macOS és Linux rendszeren működik:
{
"PSModulePath": "%XDG_CONFIG_HOME%/powershell/Modules"
}
Feljegyzés
A PowerShell-változók nem ágyazhatók be konfigurációkba PSModulePath
.
PSModulePath
linuxos és macOS rendszerű konfigurációk megkülönböztetik a kis- és nagybetűket. A PSModulePath
konfigurációnak érvényes címtárelválasztókat kell használnia a platformhoz. MacOS és Linux rendszeren ez azt jelenti, hogy /
. Windows rendszeren is /
, és \
működik is.
ScriptBlockLogging
Ez a beállítás az összes PowerShell-szkriptbemenet naplózását szabályozza. Ez a beállítás két alkulcsot tartalmaz:
EnableScriptBlockLogging
– Ha engedélyezi ezt a házirend-beállítást, a PowerShell naplózza a parancsok, szkriptblokkok, függvények és szkriptek feldolgozását, akár interaktív módon, akár automatizálással.EnableScriptBlockInvocationLogging
- lehetővé teszi a szkriptblokkok indításának és leállításának naplózását.
Példa:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
Átírás
Ezzel a házirend-beállítással szöveges átiratokban rögzítheti a PowerShell-parancsok bemenetét és kimenetét. Ha engedélyezi ezt a házirend-beállítást, a PowerShell engedélyezi az átírást az összes PowerShell-munkamenethez.
Ez a beállítás szabályozza az átírás működését a PowerShellben. Ez a beállítás három alkulcsot tartalmaz:
EnableTranscripting
– Ha ez a beállítás engedélyezve van, a PowerShell átírási naplófájlokat hoz létre a konfigurált helyen.EnableInvocationHeader
– A PowerShell alapértelmezés szerint tartalmaz egy fejlécet az átírási naplófájl tetején. Ezzel a beállítással letilthatja a fejlécet.OutputDirectory
– Ez a beállítás lehetővé teszi, hogy az átírási naplófájlokat az alapértelmezett hely helyett egy központi helyen gyűjtse össze.
Példa:
{
"Transcription": {
"EnableTranscripting": true,
"EnableInvocationHeader": true,
"OutputDirectory": "c:\\tmp"
}
}
További információ: Start-Átirat.
UpdatableHelp
Ezzel a házirend-beállítással beállíthatja a SourcePath paraméter alapértelmezett értékét a Update-Help
parancsmagon. Ezt az alapértelmezett értéket felül lehet bírálni egy másik érték megadásával a SourcePath paraméterrel.
Példa:
{
"UpdatableHelp": {
"DefaultSourcePath": "f:\\temp"
}
}
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: