Как проверить ModuleNotFoundDuringParse, если скрипт находится в каталоге с символами wildcard: сравнить нейтральную копию в обычном и bracket-пути, не переименовывая рабочий проект и не меняя PSModulePath.
Подтвердите, что ошибка возникает при разборе
Сохраните точный ErrorId ModuleNotFoundDuringParse, строку using module и полный путь только локально. Конструкция using module обрабатывается при разборе скрипта, поэтому последующие команды Set-Location или Import-Module не являются тем же этапом. Запишите версию PowerShell и укажите, содержит ли имя любой родительской папки символы *, ?, [ или ]. Не публикуйте настоящее имя проекта и профиль пользователя; замените сегменты нейтральными. Если ошибка появляется уже после начала выполнения, это другой сценарий и его нельзя объединять с parse-time поиском модуля.
Соберите две одинаковые минимальные копии
Создайте во временном пользовательском каталоге две папки с одинаковыми простыми файлами: одна с обычным именем, другая с квадратными скобками. В каждой главный скрипт должен ссылаться на соседний psm1 относительным using module; содержимое модуля сократите до одной нейтральной функции или класса. Не переносите рабочий проект, не меняйте PSModulePath и не устанавливайте модуль глобально. Запустите обе копии тем же executable и из одной начальной директории. Различие результатов связывает симптом с формой пути в минимальном примере, сохраняя исходный проект нетронутым.
Сопоставьте using module и wildcard-правила
Microsoft Learn указывает, что путь в using module может быть полным или относительным, причём относительный путь разрешается относительно скрипта. Отдельная справка PowerShell объясняет, что квадратные скобки являются wildcard-символами, а для буквального доступа к таким именам нужны специальные способы обработки. Эти два факта задают границу эксперимента, но не доказывают, что parser использовал неправильный API. Не заменяйте using module на run-time Import-Module и не выдавайте успешный обход за исправление: конструкции предоставляют разные гарантии для типов и classes.
Подготовьте отчёт и безопасный временный путь
В issue передайте дерево из двух папок, версии PowerShell и ОС, одну строку относительного using module и точные результаты нормального и bracket-пути. Удалите профили, сетевые диски, корпоративные модули и signing-информацию. Если временно нужно продолжить работу, используйте согласованный путь без wildcard-символов только для копии или сборочного артефакта; не переименовывайте репозиторий, если на него ссылаются задачи, IDE или CI. Критерий остановки — совет менять глобальный PSModulePath или ExecutionPolicy: они не нужны для проверки формы родительского каталога.
Материал подготовлен редакцией VOne с применением ИИ для literal-path матрицы; семантика using module и wildcard проверена по Microsoft Learn, issue не принят за диагноз parser.
Источники и проверка
- Microsoft Learn — about_Using проверено 2026-08-10
- Microsoft Learn — about_Wildcards проверено 2026-08-10
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.