当我使用Get-Credential
或 时Start-Process -Cred
,会出现一个弹出窗口,要求输入凭据,即用户名和密码。您甚至可以通过将用户名作为参数传递来预填充用户名。
但有时弹窗不会打开,而是直接导致错误:
> 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
我将该行为追溯到以下原因:
当我打开 Windows 终端时,会出现弹出窗口。
当我通过开始菜单、运行对话框或资源管理器的地址栏打开 powershell.exe 时,会发生错误。
不同的进程树
我注意到不同的进程树:
我想继续使用 powershell.exe,因为它是预先安装的,并且可以从 Explorer 的地址栏中使用,因为它可以在正确的目录中打开。
如何使 Get-Credential 在 powershell.exe 中工作?