从已创建并导入到主脚本中的模块调用函数时出现此错误:
Run-RemoteScript : Cannot bind argument to parameter 'Targets' because it
is an empty string.
At C:\Scripts\Script.ps1:114 char:39
+ Run-RemoteScript -Targets $targets -RunMethod $runMethod ...
+ ~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Run-RemoteScript],
ParameterBindingValidationException
+ FullyQualifiedErrorId :
ParameterArgumentValidationErrorEmptyStringNotAllowed,Run-RemoteScript`
在我的模块中,-Target
被定义为这样的参数:
[Parameter(Mandatory, Position = 0)][String[]]$Targets,
在我的主脚本(导入我的模块)中,$targets
的定义如下:
$Targets = Set-TargetList
我尝试使用global
脚本作用域,但这没有用。
答案 0 :(得分:2)
可能是一个较晚的答案,但如果其他人有类似的问题。
就我而言,它是一个字符串数组。当成员字符串中至少有一个为空或为null时,它将被拒绝。
在您要调用的参数中将AllowEmptyString
设置为属性,或者在传递成员之前检查成员是否不是空字符串。