Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Krátký popis
Konfigurační soubory pro PowerShell a nahrazení konfigurace registru
Dlouhý popis
Soubor powershell.config.json obsahuje nastavení konfigurace pro PowerShell. PowerShell tuto konfiguraci načte při spuštění. Nastavení lze také upravit za běhu. Tato nastavení byla dříve uložena v registru Windows pro PowerShell, ale teď jsou obsažena v souboru, který umožňuje konfiguraci v systémech macOS a Linux.
Souhrn nastavení
Soubor powershell.config.json může obsahovat následující klíče:
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExperimentalFeaturesLogChannelsLogIdentityLogKeywordsLogLevelMicrosoft.PowerShell:ExecutionPolicyPSModulePathPowerShellPoliciesExecutionPolicyConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Ne všechny klíče platí pro všechny platformy. Klíč PowerShellPolicies obsahuje podklíče, které zrcadlí nastavení spravovaná zásadami skupiny oken. Tyto podklíče platí také pro všechny platformy, pokud jsou definovány na kořenové úrovni souboru JSON.
Varování
Nerozpoznané klíče nebo neplatné hodnoty v konfiguračním souboru se ignorují. Pokud soubor powershell.config.json obsahuje neplatný kód JSON, PowerShell nemůže spustit interaktivní relaci. Pokud k tomu dojde, musíte opravit konfigurační soubor.
Obor konfigurace
Nastavení konfigurace lze definovat pro všechny uživatele nebo na úrovni jednotlivých uživatelů.
Konfigurace AllUsers (sdílená)
Soubor powershell.config.json v adresáři $PSHOME definuje konfiguraci pro všechny relace PowerShellu spuštěné z této instalace PowerShellu.
Poznámka
Umístění $PSHOME je definováno jako stejný adresář jako spuštěné System.Management.Automation.dll sestavení. To platí i pro hostované instance sady PowerShell SDK.
Konfigurace CurrentUser (podle uživatele)
PowerShell můžete také nakonfigurovat pro jednotlivé uživatele tak, že soubor umístíte do konfiguračního adresáře oboru uživatele. Adresář konfigurace uživatele najdete na různých platformách pomocí příkazu Split-Path $PROFILE.CurrentUserCurrentHost.
Priorita oboru
V systému Windows mají nastavení spravovaná zásadami skupiny Systému Windows přednost před nastavením v konfiguračním souboru. Zásady skupiny neexistují na platformách jiných než Windows.
Po zásadách skupiny mají nastavení definovaná na úrovni AllUsers přednost před nastavením definovaným pro úroveň CurrentUser.
Nastavení specifická pro Windows
Následující nastavení platí jenom pro platformy Windows.
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExecutionPolicyPowerShellPolicies
DisableImplicitWinCompat
Pokud je tato možnost nastavená na true, toto nastavení zakáže funkci kompatibility prostředí Windows PowerShell. Kompatibilita prostředí Windows PowerShell umožňuje PowerShellu 7 načíst moduly Windows PowerShellu 5.1 v režimu kompatibility.
Další informace najdete v tématu about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityModuleDenyList
Toto nastavení je pole názvů modulů, které chcete vyloučit z účasti v funkci kompatibility prostředí Windows PowerShell.
Další informace najdete v tématu about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityNoClobberModuleList
Toto nastavení je pole názvů modulů, které by neměly být zahlcené načtením verze prostředí Windows PowerShell 5.1 modulu.
Další informace najdete v tématu about_Windows_PowerShell_Compatibility.
ExecutionPolicy
Důležitý
Tato konfigurace platí jenom na platformách Windows.
Konfiguruje zásady spouštění pro relace PowerShellu a určuje, jaké skripty je možné spustit. PowerShell ve výchozím nastavení používá existující zásady spouštění.
V případě konfigurace AllUsers nastaví LocalMachine zásady provádění. V případě konfigurace CurrentUser nastavíte zásadu spuštění CurrentUser.
Následující příklad nastaví zásady spouštění PowerShellu na RemoteSigned.
{
"Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned"
}
Další informace naleznete v tématu about_Execution_Policies.
PowerShellPolicies
Systém Windows má několik nastavení, která je možné spravovat pomocí zásad skupiny. Obvykle jsou tato nastavení uložena v registru Systému Windows. Toto nastavení lze také definovat v souboru powershell.config.json.
PowerShellPolicies je objekt JSON, který obsahuje páry klíč-hodnota pro různá nastavení zásad. Tato nastavení zásad je také možné uvést na kořenové úrovni souboru JSON mimo objekt PowerShellPolicies. Toto nastavení může obsahovat následující podklíče:
ConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Nastavení ScriptExecution slouží k nastavení zásad spouštění PowerShellu.
To má přednost před nastavením ExecutionPolicy popsaným výše.
Příklad:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
Popis ostatních nastavení zásad najdete v popisu v části Nastavení společné konfigurace.
Ve Windows PowerShell hledá nastavení v registru. Všechna nastavení nalezená v registru mají přednost. V dalším PowerShellu se načte konfigurace JSON. Všechna nastavení nalezená v PowerShellPoliciesa nedefinovaná v registru mají přednost před nastavením na kořenové úrovni konfigurace JSON.
Další informace naleznete v tématu about_Group_Policy_Settings.
Nastavení pro platformy mimo Windows
Následující nastavení platí jenom pro platformy Linux a macOS.
Následující klíče slouží ke konfiguraci protokolování PowerShellu pro Linux a macOS.
LogChannelsLogIdentityLogKeywordsLogLevel
Úplný popis protokolování PowerShellu pro systémy mimo Windows najdete v tématu about_Logging_Non-Windows.
Běžná nastavení konfigurace
Následující nastavení jsou k dispozici na všech podporovaných platformách.
ConsoleSessionConfigurationExperimentalFeaturesModuleLoggingProtectedEventLoggingPSModulePathScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
ConsoleSessionConfiguration
Toto nastavení určuje konfiguraci relace, která se má použít pro všechny relace PowerShellu. Může se jednat o libovolný koncový bod zaregistrovaný na místním počítači, včetně výchozích koncových bodů vzdálené komunikace PowerShellu nebo vlastního koncového bodu s konkrétními funkcemi role uživatele.
Tento klíč obsahuje dva podklíče:
EnableConsoleSessionConfiguration– pokud chcete povolit konfigurace relací, nastavte hodnotu natrue. Ve výchozím nastavení je tato hodnotafalse.ConsoleSessionConfigurationName– Určuje název koncového bodu konfigurace, ve kterém se PowerShell spouští. Ve výchozím nastavení není definována žádná relace.
{
"ConsoleSessionConfiguration": {
"EnableConsoleSessionConfiguration": false,
"ConsoleSessionConfigurationName" : []
}
}
Další informace najdete v tématu about_Session_Configurations.
Experimentální funkce
Názvy experimentálních funkcí, které se mají povolit v PowerShellu. Výchozí hodnota je prázdné pole.
Následující příklad umožňuje PSCommandNotFoundSuggestion a PSSubsystemPluginModel experimentální funkce při spuštění PowerShellu.
Příklad:
{
"ExperimentalFeatures": [
"PSCommandNotFoundSuggestion",
"PSSubsystemPluginModel"
]
}
Další informace o experimentálních funkcích najdete v tématu Použití experimentálních funkcí.
ModuleLogging
Toto nastavení řídí chování protokolování pro moduly PowerShellu. Nastavení obsahuje dva podklíče:
-
EnableModuleLogging– pokud chcete povolit protokolování modulu, nastavte hodnotu natrue. Pokud je tato možnost povolená, události spuštění kanálu pro členy zadaných modulů se zaznamenávají v souborech protokolů PowerShellu. -
ModuleNames– Určuje název modulů, které se mají protokolovat.
Příklad:
{
"ModuleLogging": {
"EnableModuleLogging": true,
"ModuleNames" : [
"PSReadLine",
"PowerShellGet"
]
}
}
ProtectedEventLogging
Toto nastavení umožňuje nakonfigurovat protokolování chráněných událostí. Nastavení obsahuje dva podklíče:
-
EnableProtectedEventLogging– Pokud povolíte toto nastavení zásad, komponenty, které ho podporují, používají certifikát, který zadáte k šifrování dat protokolu před zápisem do protokolu. Data se šifrují pomocí standardu CMS (Cryptographic Message Syntax). K dešifrování těchto šifrovaných zpráv můžete použítUnprotect-CmsMessage, pokud máte přístup k privátnímu klíči certifikátu. -
EncryptionCertificate– poskytuje seznam názvů certifikátů, které se mají použít k šifrování.
Příklad:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
PSModulePath
Přepíše nastavení PSModulePath pro tuto relaci PowerShellu. Pokud je konfigurace pro aktuálního uživatele, nastaví CurrentUser cestu modulu. Pokud je konfigurace pro všechny uživatele, nastaví cestu modulu AllUsers.
Varování
Konfigurace cesty modulu AllUsers nebo CurrentUser se nezmění umístění vymezené instalace pro rutiny PowerShellGet, jako je Install-Module . Tyto rutiny vždy používají výchozí cesty k modulům.
Pokud není nastavená žádná hodnota, PowerShell použije výchozí hodnotu pro nastavení cesty k příslušnému modulu. Další informace o těchto výchozích nastaveních najdete v tématu about_PSModulePath.
Toto nastavení umožňuje, aby proměnné prostředí bylo možné použít vložením mezi % znaky, jako je "%HOME%\Documents\PowerShell\Modules", stejným způsobem, jaký umožňuje prostředí Windows Command Shell. Tato syntaxe platí také pro Linux a macOS. Příklady najdete níže.
Tento příklad ukazuje konfiguraci PSModulePath pro prostředí Windows:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\6\\Modules"
}
Tento příklad ukazuje konfiguraci PSModulePath pro prostředí macOS nebo Linux:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
Tento příklad ukazuje vložení proměnné prostředí do konfigurace PSModulePath. Všimněte si, že použití proměnné prostředí HOME a oddělovače adresářů / funguje v systémech Windows, macOS a Linux.
{
"PSModulePath": "%HOME%/Documents/PowerShell/Modules"
}
V tomto příkladu se používá proměnná prostředí, která funguje jenom v systémech macOS a Linux:
{
"PSModulePath": "%XDG_CONFIG_HOME%/powershell/Modules"
}
Poznámka
Proměnné PowerShellu nelze vkládat do konfigurací PSModulePath.
PSModulePath konfigurace v Linuxu a macOS rozlišují malá a velká písmena. Konfigurace PSModulePath musí používat platné oddělovače adresářů pro platformu. V systému macOS a Linux to znamená /. Ve Windows fungují / i \.
ScriptBlockLogging
Toto nastavení řídí protokolování všech vstupních skriptů PowerShellu. Toto nastavení obsahuje dva podklíče:
-
EnableScriptBlockLogging– Pokud povolíte toto nastavení zásad, PowerShell zaznamená zpracování příkazů, skriptů, funkcí a skriptů, ať už interaktivně, nebo prostřednictvím automatizace. -
EnableScriptBlockInvocationLogging– umožňuje protokolování událostí spuštění a zastavení bloku skriptu.
Příklad:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
Transkripce
Toto nastavení zásad umožňuje zachytit vstup a výstup příkazů PowerShellu v textových přepisech. Pokud povolíte toto nastavení zásad, PowerShell povolí přepis pro všechny relace PowerShellu.
Toto nastavení určuje, jak funguje přepis v PowerShellu. Toto nastavení obsahuje tři podklíče:
-
EnableTranscripting– Pokud je toto nastavení povolené, PowerShell vytvoří soubory protokolu přepisu v nakonfigurovaném umístění. -
EnableInvocationHeader– PowerShell ve výchozím nastavení obsahuje záhlaví v horní části souboru protokolu přepisu. Záhlaví můžete zakázat pomocí tohoto nastavení. -
OutputDirectory– Toto nastavení umožňuje shromažďovat soubory protokolu přepisu v centrálním umístění místo výchozího umístění.
Příklad:
{
"Transcription": {
"EnableTranscripting": true,
"EnableInvocationHeader": true,
"OutputDirectory": "C:\\tmp"
}
}
Další informace najdete v tématu start-přepis .
Aktualizovatelnáhelp
Toto nastavení zásad umožňuje nastavit výchozí hodnotu parametru SourcePath v rutině Update-Help. Tuto výchozí hodnotu lze přepsat zadáním jiné hodnoty pomocí parametru SourcePath.
Příklad:
{
"UpdatableHelp": {
"DefaultSourcePath": "F:\\temp"
}
}