Converting SecureString to String

by Apr 29, 2019

Sometimes it can make sense to convert a SecureString back to a regular string, for example because you have used the shielded input provided by Read-Host:

$secret = Read-Host -Prompt 'Enter Keypass' -AsSecureString

This prompts the user to enter secret and now the input is a SecureString:

 
PS> $secret
System.Security.SecureString  
 

To make it plain text again, use the SecureString to create a PSCredential object, which comes with a method to decrypt the password:

$secret = Read-Host -Prompt 'Enter Keypass' -AsSecureString
[System.Management.Automation.PSCredential]::new('hehe',$secret).GetNetworkCredential().Password

psconf.eu – PowerShell Conference EU 2019 – June 4-7, Hannover Germany – visit www.psconf.eu There aren’t too many trainings around for experienced PowerShell scripters where you really still learn something new. But there’s one place you don’t want to miss: PowerShell Conference EU – with 40 renown international speakers including PowerShell team members and MVPs, plus 350 professional and creative PowerShell scripters. Registration is open at www.psconf.eu, and the full 3-track 4-days agenda becomes available soon. Once a year it’s just a smart move to come together, update know-how, learn about security and mitigations, and bring home fresh ideas and authoritative guidance. We’d sure love to see and hear from you!

Twitter This Tip! ReTweet this Tip!