Мой вывод с PS 5.0 на Windows 7: $ENV:PsModulePath
должен заканчиваться на. Обычно это означает, что он загрузит все модули по этому пути.
Я не могу добавить один модуль в $ env: PsModulePath и загрузить его с Import-Module ExampleModule
. Я должен использовать полный путь к модулю. например C:\MyModules\ExampleModule
. Я уверен, что раньше это работало.
Например:
Скажем, у меня есть модули:
C:\MyModules\ExampleModule
C:\MyModules\FishingModule
Мне нужно добавить C:\MyModules\
к $env:PsModulePath
, что позволит мне сделать
Import-Module ExampleModule
Import-Module FishingModule
Если по какой-то причине я не хотел FishingModule
, я думал, что могу добавить только C:\MyModules\ExampleModule
(без трейлинга \), но сейчас это не работает. Чтобы загрузить его, я должен Import-Module C:\MyModules\ExampleModule
Интересно, что в обоих случаях выполнение Get-Module -ListAvailable
показывает модули, но не импортирует. Хотя командлеты модуля, похоже, все равно работают.
AFAIK, чтобы заставить работать автоматический импорт, нужно добавить имя функции в FunctionsToExport в файле манифеста (.psd1). Добавление FunctionsToExport = '*'
, нарушает автоматическую загрузку. Вы все еще можете иметь Export-ModuleMember -Function *
в файле модуля (.psm1).
Это мои выводы. Будет ли изменение или мой компьютер сломан, еще неизвестно. НТН