5

Is it possible to convert NetworkCredentials (or a variant) to a PSCredential?

I want to transparently use the credentials of the current user, but don't want to prompt them.

makerofthings7
  • 60,103
  • 53
  • 215
  • 448

2 Answers2

3
$cred = new-object PSCredential($nc.UserName, (ConvertTo-SecureString $nc.Password -AsPlainText -Force))
Cameron Taggart
  • 5,771
  • 4
  • 45
  • 70
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

That would do it, except that the default credentials are not set for the current application domain in which PowerShell is running.

At least this illustrates how you can create a PSCredential from a persisted username and password. The SecureString is always a bummer but I believe NetworkCredential offers a plaintext constructor you can use and a SecureString property to read from.

Luke Puplett
  • 42,091
  • 47
  • 181
  • 266