title: Powershell SecureString Encrypt/Decrypt To Plain Text Not Working
body: <p>We are trying to store a user password in the registry as a secure string but we can not seem to find a way to convert it back to plain text. Is this possible with SecureString?</p>
  
  <p>Here is the simple test script we are trying to use...</p>
  
  <pre><code>Write-Host "Test Start..."
  $PlainPassword = "@SomethingStupid" | ConvertTo-SecureString -AsPlainText -Force
  
  $BSTR = ` [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($PlainPassword)
  $PlainPassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)
  Write-Host "Password is: " $PlainPassword
  Read-Host
  </code></pre>
  
  <p>This is the error we are getting...</p>
  
  <pre><code>The term ' [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR'
  is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
  At C:\test.ps1:4 char:71
  + $BSTR = ` [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR
  &lt;&lt;&lt;&lt; ($PlainPassword)
      + CategoryInfo          : ObjectNotFound: (
  [System.Runtim...ureStringToBSTR:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
  
  Cannot find an overload for "PtrToStringAuto" and the argument count: "1".
  At C:\test.ps1:5 char:75
  + $PlainPassword =
  [System.Runtime.InteropServices.Marshal]::PtrToStringAuto &lt;&lt;&lt;&lt; ($BSTR)
      + CategoryInfo          : NotSpecified: (:) [], MethodException
      + FullyQualifiedErrorId : MethodCountCouldNotFindBest
  </code></pre>