Quando eu uso Get-Credential
or Start-Process -Cred
, um pop-up pedindo credenciais aparece, ou seja, nome de usuário e senha. Você pode até mesmo preencher previamente o nome de usuário passando-o como argumento.
Às vezes, porém, o pop-up não abre, resultando diretamente em um erro:
> Get-Credential username
Get-Credential : Cannot bind argument to parameter 'Credential' because it is null.
At line:1 char:16
+ Get-Credential username
+ ~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Get-Credential], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetCredenti
alCommand
Eu rastreei o comportamento de volta ao seguinte:
Quando abro o Terminal do Windows, o pop-up aparece.
Quando abro o powershell.exe, seja pelo menu iniciar, pelo diálogo Executar ou pela barra de endereços do Explorer, o erro ocorre.
Diferentes árvores de processos
Notei diferentes árvores de processos:
Trabalhando no Terminal do Windows:
Gostaria de continuar usando o powershell.exe, pois ele vem pré-instalado, e da barra de endereços do Explorer, pois ele pode ser aberto no diretório correto.
Como fazer Get-Credential funcionar no powershell.exe?
Parece que isso é um bug do Powershell 5.1.
Uma solução é descrita aqui: https://www.undocumented-features.com/2023/03/28/get-credential-fails-with-cannot-process-command-because-of-one-or-more-missing-mandatory-parameters-credential/
Outra opção é instalar o Powershell 7 e usá-lo, pois ele não tem esse bug.