我试图在没有运气的情况下调用“Get-Credential”CMDlet。阅读 Powershell SDK 我发现抽象方法“PSHostUserInterface.PromptForCredential Method (String, String, String, String)”。有没有实现这个方法的对象?
还有其他解决办法吗?
问候
遍历当前主机的 UI 对象以提示用户输入凭据,如下所示:
PSCredential cred = this.Host.UI.PromptForCredential("Enter username/password",
"", "", "");
Run Code Online (Sandbox Code Playgroud)
但是,如果您正在创建一个 cmdlet 并采用此路径而不是创建 Credential 参数,则用户将无法以自动方式(即通过 Credential 参数的参数)提供凭证。
顺便说一句,如果您的程序知道凭据并且您不想提示最终用户,那么您可以直接创建一个新的 PSCredential 例如:
var password = new SecureString();
Array.ForEach("opensesame".ToCharArray(), password.AppendChar);
var cred = new PSCredential("john", password);
Run Code Online (Sandbox Code Playgroud)
但是我不会在 EXE 中硬编码密码。我会使用 DPAPI 或类似的东西。
| 归档时间: |
|
| 查看次数: |
9358 次 |
| 最近记录: |