将 NetworkCredentials 转换为 PSCredentials?

goo*_*ate 5 c# security authentication powershell networkcredentials

是否可以将 NetworkCredentials(或变体)转换为 PSCredential?

我想透明地使用当前用户的凭据,但不想提示他们。

Luk*_*ett 1

[System.Reflection.Assembly]::Load("System.Management.Automation")
$dc = [System.Net.CredentialCache]::DefaultCredentials
$psc = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $dc.UserName, $dc.SecurePassword
Run Code Online (Sandbox Code Playgroud)

这样就可以做到这一点,只不过没有为运行 PowerShell 的当前应用程序域设置默认凭据。

PSCredential至少这说明了如何从持久的用户名和密码创建一个。这SecureString总是令人失望,但我相信NetworkCredential提供了一个您可以使用的纯文本构造函数和一个SecureString可供读取的属性。