Этот вопрос связан с другим моим постом - Использование как настольного компьютера Powershell 5.1, так и Powershell Core 6.1
По сути, корень зла в том, что когда я открываю настольную PowerShell и проверяю $env:PSModulePath
, я вижу там путь к модулю PS.Core.
Пожалуйста, соблюдайте:
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
PS C:\Users\me> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.17763.503
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.503
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\Users\me> $env:PSModulePath -split ';'
C:\Users\me\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\6\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PS C:\Users\me>
Уведомление c:\program files\powershell\6\Modules
.
Теперь, когда я проверяю переменные окружения на панели управления, я вижу другую картинку:
Пользователь
System
У меня даже нет сценария $PROFILE
:
PS C:\Users\me> Test-Path $PROFILE
False
PS C:\Users\me>
Как можно видеть, путь к модулю PS.Core 6.1 не упоминается на панели управления, но он находится в фактической переменной среды PSModulePath.
Итак, мой вопрос - как действительно составлен PSModulePath?
Я не смог найти его в документации Microsoft (я имею в виду, что я обнаружил, что это переменная окружения, но, как видно, это еще не все). Должно быть, я упускаю что-то очевидное.
РЕДАКТИРОВАТЬ 1
Я открыл Process Explorer и проверил среду родительского процесса - explorer.exe. Его PSModulePath:
C:\Users\mkharitonov\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\6\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
Но после уничтожения explorer.exe и повторного запуска я вижу, что путь к модулю PS.Core исчез. И поэтому повторное открытие Powershell показывает правильный путь к модулю.
Полагаю, когда я установил PS.Core 6.1, это каким-то образом изменило среду explorer.exe. Или это был VS Code? В любом случае перезапуск проводника устраняет проблему.
Мне придется копаться в нем и открывать ошибку в PS.Core или VS Code.