当我在第一行运行带有#Requires -Version 4 -Modules TestModule
语句的简单脚本时,出现错误:
脚本“TestScript.ps1”无法运行,因为缺少脚本的“#requires”语句指定的以下模块:TestModule CategoryInfo : ResourceUnavailable: (TestScript.ps1:String) [], ScriptRequiresException FullyQualifiedErrorId : ScriptRequiresMissingModules
一些有趣的事实:
- 我第二次运行这个脚本(同一个会话),模块被加载并且一切正常。
- 脚本目录位于网络共享上,但其他 7 个模块加载时没有任何问题(模块类型是清单、脚本和二进制 - 它们都可以工作)。
- 其中一个模块也有
#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
我不知道是怎么回事。