Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Краткое описание
Файлы конфигурации для PowerShell, заменяющие конфигурацию реестра.
Длинное описание
Файл powershell.config.json содержит параметры конфигурации для PowerShell. PowerShell загружает эту конфигурацию при запуске. Параметры также можно изменить во время выполнения. Ранее эти параметры были сохранены в реестре Windows для PowerShell, но теперь содержатся в файле для включения конфигурации в macOS и Linux.
Сводка параметров
Файл powershell.config.json может содержать следующие ключи:
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExperimentalFeaturesLogChannelsLogIdentityLogKeywordsLogLevelMicrosoft.PowerShell:ExecutionPolicyPSModulePathPowerShellPoliciesExecutionPolicyConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Не все ключи применяются ко всем платформам. Ключ PowerShellPolicies содержит вложенные ключи, которые отражают параметры, управляемые групповой политикой Окна. Эти подразделы также применяются ко всем платформам при определении на корневом уровне JSON-файла.
Предупреждение
Нераспознанные ключи или недопустимые значения в файле конфигурации игнорируются. Если файл powershell.config.json содержит недопустимый JSON, PowerShell не может запустить интерактивный сеанс. В этом случае необходимо исправить файл конфигурации.
Область конфигурации
Параметры конфигурации можно определить для всех пользователей или на отдельном уровне пользователя.
Конфигурация AllUsers (shared)
Файл powershell.config.json в каталоге $PSHOME определяет конфигурацию для всех сеансов PowerShell, выполняемых из этой установки PowerShell.
Заметка
Расположение $PSHOME определяется как тот же каталог, что и выполнение System.Management.Automation.dll сборки. Это также относится к размещенным экземплярам пакета SDK PowerShell.
Конфигурации CurrentUser (на пользователя)
Вы также можете настроить PowerShell на основе каждого пользователя, разместив файл в каталог конфигурации области пользователя. Каталог конфигурации пользователя можно найти на разных платформах с помощью команды Split-Path $PROFILE.CurrentUserCurrentHost.
Приоритет области
В Windows параметры, управляемые групповой политикой Windows, имеют приоритет над параметрами в файле конфигурации. Групповая политика не существует на платформах, отличных от Windows.
После групповой политики параметры, определенные на уровне AllUsers, имеют приоритет над параметрами, определенными для уровня CurrentUser.
Параметры, относящиеся к Windows
Следующие параметры применяются только к платформам Windows.
DisableImplicitWinCompatWindowsPowerShellCompatibilityModuleDenyListWindowsPowerShellCompatibilityNoClobberModuleListExecutionPolicyPowerShellPolicies
DisableImplicitWinCompat
Если задано значение true, этот параметр отключает функцию совместимости Windows PowerShell. Совместимость Windows PowerShell позволяет PowerShell 7 загружать модули Windows PowerShell 5.1 в режиме совместимости.
Дополнительные сведения см. в about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityModuleDenyList
Этот параметр представляет собой массив имен модулей, которые необходимо исключить из участия в функции совместимости Windows PowerShell.
Дополнительные сведения см. в about_Windows_PowerShell_Compatibility.
WindowsPowerShellCompatibilityNoClobberModuleList
Этот параметр представляет собой массив имен модулей, которые не должны быть клонированы путем загрузки версии Windows PowerShell 5.1 модуля.
Дополнительные сведения см. в about_Windows_PowerShell_Compatibility.
ExecutionPolicy
Важный
Эта конфигурация применяется только на платформах Windows.
Настраивает политику выполнения для сеансов PowerShell, определяя, какие сценарии можно запускать. По умолчанию PowerShell использует существующую политику выполнения.
Для конфигураций AllUsers задает политику выполнения LocalMachine. Для конфигураций CurrentUser задает политику выполнения CurrentUser.
В следующем примере политика выполнения PowerShell устанавливается для RemoteSigned.
{
"Microsoft.PowerShell:ExecutionPolicy": "RemoteSigned"
}
Дополнительные сведения см. в about_Execution_Policies.
PowerShellPolicies
Windows имеет несколько параметров, которые могут управляться групповой политикой. Обычно эти параметры хранятся в реестре Windows. Эти параметры также можно определить в файле powershell.config.json.
PowerShellPolicies — это объект JSON, содержащий пары "ключ-значение" для различных параметров политики. Эти параметры политики также можно указать на корневом уровне JSON-файла за пределами объекта PowerShellPolicies. Этот параметр может содержать следующие подразделы:
ConsoleSessionConfigurationModuleLoggingProtectedEventLoggingScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
Параметр ScriptExecution используется для задания политики выполнения PowerShell.
Это имеет приоритет над параметром ExecutionPolicy, описанным выше.
Пример:
{
"PowerShellPolicies": {
"ScriptExecution": {
"ExecutionPolicy": "RemoteSigned"
}
}
}
Описание других параметров политики см. в разделе Общие параметры конфигурации.
В Windows PowerShell ищет параметры в реестре. Все параметры, найденные в реестре, имеют приоритет. Далее PowerShell считывает конфигурацию JSON. Все параметры, найденные в PowerShellPolicies, и не определенные в реестре, имеют приоритет над параметрами, найденными на корневом уровне конфигурации JSON.
Дополнительные сведения см. в about_Group_Policy_Settings.
Параметры для платформ, отличных от Windows
Следующие параметры применяются только к платформам Linux и macOS.
Следующие ключи используются для настройки ведения журнала PowerShell для Linux и macOS.
LogChannelsLogIdentityLogKeywordsLogLevel
Полное описание ведения журнала PowerShell для систем, отличных от Windows, см. в разделе about_Logging_Non-Windows.
Общие параметры конфигурации
Следующие параметры доступны на всех поддерживаемых платформах.
ConsoleSessionConfigurationExperimentalFeaturesModuleLoggingProtectedEventLoggingPSModulePathScriptBlockLoggingScriptExecutionTranscriptionUpdatableHelp
ConsoleSessionConfiguration
Этот параметр указывает конфигурацию сеанса, используемую для всех сеансов PowerShell. Это может быть любая конечная точка, зарегистрированная на локальном компьютере, включая конечные точки удаленного взаимодействия PowerShell по умолчанию или пользовательскую конечную точку с определенными возможностями роли пользователя.
Этот ключ содержит два подраздела:
EnableConsoleSessionConfiguration— чтобы включить конфигурации сеансов, задайте значениеtrue. По умолчанию это значениеfalse.ConsoleSessionConfigurationName. Указывает имя конечной точки конфигурации, в которой выполняется PowerShell. По умолчанию сеанс не определен.
{
"ConsoleSessionConfiguration": {
"EnableConsoleSessionConfiguration": false,
"ConsoleSessionConfigurationName" : []
}
}
Дополнительные сведения см. в about_Session_Configurations.
Экспериментальныеfeatures
Имена экспериментальных функций для включения в PowerShell. Значение по умолчанию — пустой массив.
Следующий пример включает PSCommandNotFoundSuggestion и PSSubsystemPluginModel экспериментальных функций при запуске PowerShell.
Пример:
{
"ExperimentalFeatures": [
"PSCommandNotFoundSuggestion",
"PSSubsystemPluginModel"
]
}
Дополнительные сведения о экспериментальных функциях см. в разделе Использование экспериментальных функций.
ModuleLogging
Этот параметр управляет поведением ведения журнала для модулей PowerShell. Параметр содержит два подраздела:
-
EnableModuleLogging— чтобы включить ведение журнала модулей, задайте значениеtrue. При включении события выполнения конвейера для членов указанных модулей записываются в файлы журнала PowerShell. -
ModuleNames— указывает имя модулей, которые должны быть зарегистрированы.
Пример:
{
"ModuleLogging": {
"EnableModuleLogging": true,
"ModuleNames" : [
"PSReadLine",
"PowerShellGet"
]
}
}
ProtectedEventLogging
Этот параметр позволяет настроить ведение журнала защищенных событий. Параметр содержит два подраздела:
-
EnableProtectedEventLogging. Если этот параметр политики включен, компоненты, поддерживающие его, используют сертификат, который предоставляется для шифрования данных журнала перед записью в журнал. Данные шифруются с помощью стандарта синтаксиса криптографических сообщений (CMS). Вы можете использоватьUnprotect-CmsMessageдля расшифровки этих зашифрованных сообщений, если у вас есть доступ к закрытому ключу сертификата. -
EncryptionCertificate. Предоставляет список имен сертификатов, используемых для шифрования.
Пример:
{
"ProtectedEventLogging": {
"EnableProtectedEventLogging": false,
"EncryptionCertificate": [
"Joe"
]
}
}
PSModulePath
Переопределяет параметры PSModulePath для этого сеанса PowerShell. Если конфигурация настроена для текущего пользователя, задает путь модуля CurrentUser. Если конфигурация настроена для всех пользователей, задает путь модуля AllUsers.
Предупреждение
Настройка пути модуля AllUsers или CurrentUser здесь не изменяет расположение установки в области для командлетов PowerShellGet, таких как Install-Module. Эти командлеты всегда используют пути по умолчанию модуля.
Если значение не задано, PowerShell использует значение по умолчанию для соответствующего параметра пути модуля. Дополнительные сведения об этих значениях по умолчанию см. в about_PSModulePath.
Этот параметр позволяет использовать переменные среды, внедряя их между символами %, например "%HOME%\Documents\PowerShell\Modules", так же, как и командная оболочка Windows. Этот синтаксис также применяется к Linux и macOS. Примеры см. ниже.
В этом примере показана конфигурация PSModulePath для среды Windows:
{
"PSModulePath": "C:\\Program Files\\PowerShell\\6\\Modules"
}
В этом примере показана конфигурация PSModulePath для среды macOS или Linux:
{
"PSModulePath": "/opt/powershell/6/Modules"
}
В этом примере показано внедрение переменной среды в конфигурацию PSModulePath. Обратите внимание, что с помощью переменной среды HOME и разделителя каталогов / этот синтаксис работает в Windows, macOS и Linux.
{
"PSModulePath": "%HOME%/Documents/PowerShell/Modules"
}
В этом примере используется переменная среды, которая работает только в macOS и Linux:
{
"PSModulePath": "%XDG_CONFIG_HOME%/powershell/Modules"
}
Заметка
Переменные PowerShell нельзя внедрить в конфигурации PSModulePath.
PSModulePath конфигурации в Linux и macOS чувствительны к регистру. Конфигурация PSModulePath должна использовать допустимые разделители каталогов для платформы. В macOS и Linux это означает /. В Windows работают как /, так и \.
ScriptBlockLogging
Этот параметр управляет ведением журнала всех входных данных скрипта PowerShell. Этот параметр содержит два подраздела:
-
EnableScriptBlockLogging— Если этот параметр политики включен, PowerShell регистрирует обработку команд, скриптов, функций и скриптов, вызываемых интерактивно или с помощью автоматизации. -
EnableScriptBlockInvocationLogging— включает ведение журнала событий запуска и остановки скрипта.
Пример:
"ScriptBlockLogging": {
"EnableScriptBlockInvocationLogging": true,
"EnableScriptBlockLogging": false
}
Транскрипция
Этот параметр политики позволяет записывать входные и выходные данные команд PowerShell в текстовых расшифровках. Если этот параметр политики включен, PowerShell включает транскрибирование для всех сеансов PowerShell.
Этот параметр определяет, как работает транскрибирование в PowerShell. Этот параметр содержит три подраздела:
-
EnableTranscripting. Если этот параметр включен, PowerShell создает файлы журнала транскрибирования в настроенном расположении. -
EnableInvocationHeader. По умолчанию PowerShell включает заголовок в верхней части файла журнала транскрибирования. Вы можете отключить заголовок с помощью этого параметра. -
OutputDirectory. Этот параметр позволяет собирать файлы журнала транскрибирования в центральном расположении вместо расположения по умолчанию.
Пример:
{
"Transcription": {
"EnableTranscripting": true,
"EnableInvocationHeader": true,
"OutputDirectory": "C:\\tmp"
}
}
Дополнительные сведения см. в начальной расшифровки.
UpdatableHelp
Этот параметр политики позволяет задать значение по умолчанию параметра SourcePath в командлете Update-Help. Это значение по умолчанию можно переопределить, указав другое значение с помощью параметра SourcePath.
Пример:
{
"UpdatableHelp": {
"DefaultSourcePath": "F:\\temp"
}
}
PowerShell