我想将密码从 System.Security.SecureString 解码为可读密码。
$password = convertto-securestring "TestPassword" -asplaintext -force
$credentials = New-Object System.Net.NetworkCredential("TestUsername", $password, "TestDomain")
此代码部分工作正常,我可以使用 $credentials 对象。但稍后在我的代码中,我需要可读格式的密码。因为方法需要可读字符串中的密码。所以我必须把密码解码回来。
如何从 $credentials 对象中解码密码?
更新
不工作:
$password = convertto-securestring "TestPassword" -asplaintext -force
$credentials = New-Object System.Net.NetworkCredential("TestUsername", $password, "TestDomain")
$Ptr = [System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($credentials.password)
$result = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr)
[System.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($Ptr)
$result