确定参数集有效,Powershell 显示:“无法解析参数集......”

确定参数集有效,Powershell 显示:“无法解析参数集......”

我正在尝试运行一个只接受三个特定参数之一的 Powershell cmdlet。我确信我知道这些参数是什么,并且我输入的参数是正确的。我以管理员身份运行 Powershell,我确信相关的 Powershell 模块已加载,我尝试的 cmdlet 有效且已从该模块加载。

该 cmdlet且Set-ADFSRelyingPartyTrust -SamlResponseSignature有效参数如下:MessageOnly AssertionOnlyMessageAndAssertionhttps://docs.microsoft.com/en-us/powershell/module/adfs/set-adfsrelyingpartytrust?view=winserver2012r2-ps

我遇到的问题是,无论我尝试上述三个中的哪一个,都会出现错误:

Set-AdfsRelyingPartyTrust : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Set-AdfsRelyingPartyTrust -SamlResponseSignature MessageAndAssertion
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-AdfsRelyingPartyTrust], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.IdentityServer.Management.Commands.SetRelyingPartyTrustCommamd

令人沮丧的是,如果我使用已知的错误参数(使用 -Whatif)运行 cmdlet,它会报告:

Set-AdfsRelyingPartyTrust : Cannot validate argument on parameter 'SamlResponseSignature'. 
The argument "False" does not belong to the set "AssertionOnly,MessageAndAssertion,MessageOnly" 
specified by the ValidateSet attribute. Supply an argument that is in the set and then try the command again.

即使我从报告的集合中复制粘贴一个值,也会出现同样的错误。我到底做错了什么?

如果这个问题已经得到解答,我深表歉意。我查看的每个搜索结果都只涉及如果该错误作为较大脚本的一部分弹出,或者发布者不确定有效的参数集,该怎么办。当 cmdlet 独立运行且参数集已知时,我找不到有关此错误的讨论。

答案1

如果你仔细查看文档,你会看到三个参数集,如果你仔细观察,你会发现除了 1 个唯一参数之外的所有参数。这个 1 个唯一参数也恰好是必需的

因此对于命令行Set-ADFSRelyingPartyTrust必须通过以下三种方式之一指定目标。

您必须具有以下之一:

  • -TargetRelyingParty
  • -TargetIdentifier
  • -TargetName

请注意,文档中大多数参数都有方括号,但这 3 个参数没有,而且它们的颜色也不同。这些差异告诉您这些是必需的。

相关内容