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.CurrentUserCurrentHosthaszná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 PowerShellPoliciesdefiniá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őre true: . 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őre true: . 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 visszafejtheti Unprotect-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"
    }
}