我想使用其他人的凭据打开控制台。通常我使用以下命令执行此runas
操作:
C:\> runas /user:$(cat ~\.ssh\ek | select -first 1) pwsh
Enter the password for ***:
Attempting to start pwsh as user *** ...
C:\>
输入密码后,我可以看到控制台打开了,并且运行良好。
但是,我不喜欢每次都要输入密码。
PowershellStart-Process
应该会有所帮助,因为我可以向其传递一个凭据对象。例如:
C:\> $creds = Import-Clixml -Path ~/.ssh/ek.creds
C:\> Start-Process pwsh -Credential $creds -WorkingDirectory ***
C:\>
最后控制台打开了,但我无法使用键盘——打字或粘贴时没有任何反应。
我错过了什么?
答案1
这是一个长期存在的错误,由 -Credential 参数引起。当您省略该参数时,控制台不会冻结。
相关 Github 问题
- https://github.com/PowerShell/PSReadLine/issues/288
- https://github.com/PowerShell/PowerShell/issues/12129
要解决此问题,请将您的凭证存储在凭证管理器中
runas /user:$(cat ~\.ssh\ek | select -first 1) /savecred pwsh
第一次调用时您必须输入密码,但所有后续调用都将无需交互即可进行,直到您从凭据管理器中清除密码。从安全角度来看,这与在磁盘上存储加密文件一样安全。