Я пытаюсь запустить командлет Powershell, который принимает только один из трех конкретных параметров. Я уверен, что знаю, что это за параметры, и что я правильно их ввожу. Я запускаю Powershell как администратор, и я уверен, что оба связанных модуля Powershell загружены, и что командлет, который я пытаюсь выполнить, действителен и загружен из этого модуля.
Командлет Set-ADFSRelyingPartyTrust -SamlResponseSignature
и допустимые параметры MessageOnly
AssertionOnly
и MessageAndAssertion
как предоставлено: https://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, он сообщает:
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.
Даже если я скопирую + вставлю значение из указанного набора, я получу ту же ошибку. Что, черт возьми, я делаю не так?
Прошу прощения, если на это уже был дан ответ. Каждый результат поиска, который я просматривал, касался только того, что делать, если эта ошибка выскакивает как часть более крупного скрипта или автор не был уверен в правильности набора параметров. Я не смог найти обсуждения этой ошибки, когда командлет выполняется автономно и набор параметров известен.
Если вы внимательно посмотрите документацию, вы увидите три набора параметров. Если вы внимательно посмотрите, то увидите, что все параметры, кроме 1 уникального параметра. Этот 1 уникальный параметр также бывает обязательный.
Итак, для командлета Set-ADFSRelyingPartyTrust
ты должен укажите цель одним из трех способов.
У вас должно быть одно из следующего:
-TargetRelyingParty
-TargetIdentifier
-TargetName
Обратите внимание, что в документации большинство параметров имеют квадратные скобки, а эти 3 параметра - нет, также они отображаются с другим цветом. Эти различия говорят вам, что они необходимы.