Estou tentando executar um cmdlet Powershell que aceita apenas um dos três parâmetros específicos. Tenho certeza de que sei quais são esses parâmetros e de que estou inserindo-os corretamente. Estou executando o Powershell como administrador e tenho certeza de que o módulo Powershell associado está carregado e que o cmdlet que estou tentando é válido e carregado a partir desse módulo.
O cmdlet é Set-ADFSRelyingPartyTrust -SamlResponseSignature
e os parâmetros válidos são MessageOnly
AssertionOnly
e MessageAndAssertion
fornecidos por:https://docs.microsoft.com/en-us/powershell/module/adfs/set-adfsrelyingpartytrust?view=winserver2012r2-ps
O problema que recebo é que não importa qual dos três eu tente, recebo o erro:
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
Frustrantemente, se eu executar o cmdlet com um parâmetro inválido conhecido, com um -Whatif, ele reportará:
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.
Mesmo se eu copiar e colar um valor do conjunto relatado, recebo o mesmo erro. O que diabos estou fazendo de errado?
Peço desculpas se isso já foi respondido. Cada resultado de pesquisa que visualizei tratava apenas do que fazer se esse erro aparecesse como parte de um script maior ou se o autor da postagem não tivesse certeza do conjunto de parâmetros válido. Não encontrei nenhuma discussão sobre esse erro quando o cmdlet é executado de forma independente e o conjunto de parâmetros é conhecido.
Responder1
Se você olhar atentamente os documentos, poderá ver três conjuntos de parâmetros. Se você olhar atentamente, verá que todos os parâmetros, exceto 1 parâmetro exclusivo. Este 1 parâmetro exclusivo também éobrigatório.
Então, para o comando, Set-ADFSRelyingPartyTrust
vocêdeveespecifique o alvo de uma das três maneiras.
Você deve ter um dos seguintes:
-TargetRelyingParty
-TargetIdentifier
-TargetName
Observe como nos documentos a maioria dos parâmetros tem colchetes, mas esses 3 parâmetros não, e também são renderizados com uma cor diferente. Essas diferenças estão lhe dizendo que elas são obrigatórias.