Powershell

確定有效的參數集,Powershell 說:“參數集無法解析……”

  • January 22, 2020

我正在嘗試執行僅接受三個特定參數之一的 Powershell cmdlet。我很肯定我知道這些參數是什麼,並且我正確輸入了這些參數。我以管理員身份執行 Powershell,並且我確信相關的 Powershell 模組都已載入,並且我正在嘗試的 cmdlet 有效並從該模組載入。

cmdlet和Set-ADFSRelyingPartyTrust -SamlResponseSignature有效參數由以下機構提供:https ://docs.microsoft.com/en-us/powershell/module/adfs/set-adfsrelyingpartytrust?view=winserver2012r2-psMessageOnly AssertionOnly``MessageAndAssertion

我得到的問題是,無論我嘗試這三個中的哪一個,我都會收到錯誤:

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

令人沮喪的是,如果我使用已知的錯誤參數執行 cmdlet,並使用 -Whatif,它會報告:

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 個唯一參數也恰好是必需的。

因此,對於命令行開關Set-ADFSRelyingPartyTrust,您必須以三種方式之一指定目標。

您必須具備以下條件之一:

  • -TargetRelyingParty
  • -TargetIdentifier
  • -TargetName

請注意文件中的大多數參數如何帶有方括號,但這 3 個參數沒有,它們也以不同的顏色呈現。這些差異告訴您這些是必需的。

引用自:https://serverfault.com/questions/999868