К обсуждениям

В fxdependent-архиве PowerShell нет powershell.config.json: проверяем роль файла

Редакция VOne Технологии

Как понять, является ли отсутствие powershell.config.json дефектом пакета или отсутствием пользовательской настройки: инвентаризация архива, области конфигурации и безопасный SettingsFile.

Не путайте шаблон файла с обязательным рантаймом

Официальная справка говорит, что `powershell.config.json` содержит настройки, которые PowerShell загружает при старте, и может находиться в области установки или пользователя. Она не утверждает, что непустой файл обязан присутствовать в каждой поставке. Поэтому первый вопрос — какие параметры ожидал ваш сценарий. Если команда запускается и использует значения по умолчанию, отсутствие файла само по себе не доказывает повреждение архива. Если развёртывание зависит от журналирования, experimental features, PSModulePath или политик, тогда важна не иконка файла, а фактически загруженная конфигурация. Не создавайте пустой JSON ради совпадения списка: он не восстановит отсутствующие ожидания и может скрыть проблему упаковки.

Сверьте два чистых каталога без подмены

Скачайте точный asset со страницы релиза в отдельный временный каталог и сохраните его имя, размер и локальный SHA-256. Повторная загрузка проверяет целостность вашей копии, но не подтверждает, каким должен быть эталонный состав. Затем распакуйте архив заново и сравните только список верхнего уровня с другой официальной поставкой той же версии, если она нужна для контроля. Не смешивайте файлы между `fxdependent` и самостоятельной сборкой: зависимости и назначение пакетов различаются. Если файл присутствует только в одном варианте, это полезная граница для issue, а не инструкция скопировать его. Сохраните исходные архивы неизменными, чтобы разработчики могли повторить сравнение.

Проверьте области и приоритет конфигурации

Файл в `$PSHOME` задаёт AllUsers-конфигурацию для конкретной установки, а пользовательский файл живёт в каталоге профиля. На Windows групповые политики имеют более высокий приоритет; затем AllUsers стоит выше CurrentUser. Это значит, что простое добавление файла рядом с `pwsh` может повлиять на все сессии этой распаковки и всё равно не переопределить управляемую политику. Проверьте, нет ли уже пользовательской конфигурации и корпоративного управления. Невалидный JSON, по предупреждению Microsoft, способен помешать запуску интерактивной сессии. Поэтому ручное создание выполняют только из известных параметров, после проверки JSON и на копии установки, а не из случайного файла другой машины.

Для единичного теста используйте явный SettingsFile

Справка `about_pwsh` предусматривает параметр `-SettingsFile`, который на одну сессию заменяет системный `powershell.config.json`. Это безопаснее для диагностики конкретной настройки: подготовьте минимальный файл в тестовом каталоге, запустите одну сессию и проверьте только ожидаемый эффект. Не переносите execution policy, transcription или пути модулей без понимания последствий. В отчёт включите точное имя asset, локальный хеш, список верхнего уровня, наличие файла в обеих чистых распаковках и результат запуска без настроек и с явным SettingsFile. Не прикладывайте корпоративные политики, сетевые пути и журналы команд. Issue подтверждает только наблюдение автора для одного asset, а релизная страница — существование официальной версии и набора загрузок.

Материал подготовлен редакцией VOne с применением ИИ для инвентаризации; области и параметры вручную сверены по Microsoft Learn, а issue отделён от технических доказательств.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.