执行脚本时出现"Parameter set cannot be resolved"错误



我有一个参数集相当长的Powershell脚本:

Param(
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'Senders')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'Recipients')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'Global')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'Manager')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'CatalogueName')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'ReapplyPermissions')]
[Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'OnlyListing')]
[String]$SharedElement,
[Parameter(Mandatory = $true, ParameterSetName = 'Senders')]
[String]$Senders,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $true, ParameterSetName = 'Recipients')]
[String]$Recipients,
[Parameter(Mandatory = $true, ParameterSetName = 'Global')]
[String]$Global,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $false, ParameterSetName = 'Recipients')]
[Parameter(Mandatory = $false, ParameterSetName = 'Global')]
[Parameter(Mandatory = $true, ParameterSetName = 'Manager')]
[Alias("Owner")]
[String]$Manager,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $false, ParameterSetName = 'Recipients')]
[Parameter(Mandatory = $false, ParameterSetName = 'Global')]
[Parameter(Mandatory = $false, ParameterSetName = 'Manager')]
[Parameter(Mandatory = $true, ParameterSetName = 'CatalogueName')]
[String]$CatalogueName,
[Parameter(Mandatory = $true, ParameterSetName = 'ReapplyPermissions')]
[Switch]$ReapplyPermissions,
[Parameter(Mandatory = $true, ParameterSetName = 'OnlyListing')]
[Switch]$OnlyListing,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $false, ParameterSetName = 'Recipients')]
[Parameter(Mandatory = $false, ParameterSetName = 'Global')]
[Parameter(Mandatory = $false, ParameterSetName = 'Manager')]
[Parameter(Mandatory = $false, ParameterSetName = 'CatalogueName')]
[Parameter(Mandatory = $false, ParameterSetName = 'ReapplyPermissions')]
[Parameter(Mandatory = $false, ParameterSetName = 'OnlyListing')]
[Switch]$NoLog,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $false, ParameterSetName = 'Recipients')]
[Parameter(Mandatory = $false, ParameterSetName = 'Global')]
[Parameter(Mandatory = $false, ParameterSetName = 'Manager')]
[Parameter(Mandatory = $false, ParameterSetName = 'CatalogueName')]
[Parameter(Mandatory = $false, ParameterSetName = 'ReapplyPermissions')]
[Parameter(Mandatory = $false, ParameterSetName = 'OnlyListing')]
[String]$Reference,
[Parameter(Mandatory = $false, ParameterSetName = 'Senders')]
[Parameter(Mandatory = $false, ParameterSetName = 'Recipients')]
[Parameter(Mandatory = $false, ParameterSetName = 'Global')]
[Parameter(Mandatory = $false, ParameterSetName = 'Manager')]
[Parameter(Mandatory = $false, ParameterSetName = 'CatalogueName')]
[Parameter(Mandatory = $false, ParameterSetName = 'ReapplyPermissions')]
[Parameter(Mandatory = $false, ParameterSetName = 'OnlyListing')]
[Switch]$AskCredentials,
[Parameter(Mandatory = $true, ParameterSetName = 'Help')]
[Switch]$Help
)

我已经根据自己的需要测试了这些参数的功能,除了一种特殊情况外,它工作正常:当我使用参数运行脚本时 共享元素、仅列表和引用

script.ps1 -SharedElement email.address@domain.com -OnlyListing -Reference "Some string"

我总是收到一个错误:

无法使用指定的命名参数解析参数集

但是,当我使用参数SharedElement,OnlyListing和NoLog运行脚本时,它工作正常:

script.ps1 -SharedElement email.address@domain.com -OnlyListing -NoLog

几个月来我一直在想问题可能是什么,但我无法找到解决方案。任何人都可以指出提示来帮助我解决问题吗?

提前非常感谢你。 问候。

在第一条评论之后,我从这个网页复制了代码,将其粘贴到我的脚本中,它工作正常。我将脚本与SVN存储库中的先前版本进行了比较,并且应用于$Reference参数的参数集名称"OnlyListing"有所不同。显然,两个参数集名称相同,但其中一个包含隐藏字符。

谢谢大家的帮助。

相关内容

最新更新