Я пытаюсь запустить командлет 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 уникального параметра. Этот 1 уникальный параметр также являетсянеобходимый.
Итак, для команды позвольте Set-ADFSRelyingPartyTrust
вамдолженукажите цель одним из трех способов.
У вас должно быть одно из следующего:
-TargetRelyingParty
-TargetIdentifier
-TargetName
Обратите внимание, что в документации большинство параметров имеют квадратные скобки, но эти 3 параметра не имеют, также они отображаются другим цветом. Эти различия говорят вам, что они обязательны.