如何将函数中的SecureString对象返回给变量?
{{1}}
$ a 未在ReadSecuredFile函数中的 return $ SecuredString; 语句中获得 $ SecuredString 。它作为VS中的System.Object和PowerGUI中的System.Array返回。
答案 0 :(得分:2)
表达式[SecureString] $SecuredString;
导致在$null
对象之前返回SecureString
。删除该声明
function ReadSecuredFile
{
$SecuredString = ConvertTo-SecureString 'Testing123' -asplaintext -force;
return $SecuredString;
}
或更简单:
function ReadSecuredFile
{
return ConvertTo-SecureString Testing123 -AsPlainText -Force
}
答案 1 :(得分:-1)
瞧。
# Encrypt.
[SecureString] $Local:objPassword = Read-Host -Prompt 'Enter Password' -AsSecureString;
# Decrypt.
$strPassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto( [Runtime.InteropServices.Marshal]::SecureStringToBSTR( $objPassword ) );
Write-Host -Object ( 'Decrypted password is "{0}"...' -f $strPassword );