Когда я запускаю простой скрипт с оператором #Requires -Version 4 -Modules TestModule
в первой строке, я получаю сообщение об ошибке:
Сценарий «TestScript.ps1» не может быть запущен, так как отсутствуют следующие модули, указанные в операторах «#requires» сценария: TestModule CategoryInfo : ResourceUnavailable: (TestScript.ps1:String) [], ScriptRequiresException FullyQualifiedErrorId : ScriptRequiresMissingModules
Некоторые интересные факты:
- Второй раз запускаю этот скрипт (та же сессия), модуль загружается и все работает.
- Каталог Script находится на сетевом ресурсе, но 7 других модулей загружаются без проблем (типы модулей Manifest, Script и Binary - все они работают).
- Один из модулей также имеет оператор
#Requires -Version 4 -Modules TestModule
, но когда я запускаю скрипт с#Requires
, указывающим на этот модуль, оба модуля загружаются без проблем. - Путь явно добавлен к
PSModulePath
. - Перед запуском скрипта
Get-Module -ListAvailable
перечисляет TestModule и все его команды. Import-Module
работает с первого раза.- Возможно, на машине чего-то не хватает: любой, кто входит в систему на этом компьютере, сталкивается с той же проблемой.
$PSVersionTable
:
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18444
BuildVersion 6.3.9600.16406
Я понятия не имею, что происходит.
#Requires
должен загрузить модуль. Но если я загружаю модуль до запуска скрипта, он работает нормально. - person AdamL   schedule 24.08.2015