如何从函数返回SecureString对象

时间:2017-01-10 21:34:07

标签: powershell

如何将函数中的SecureString对象返回给变量?

{{1}}

$ a 未在ReadSecuredFile函数中的 return $ SecuredString; 语句中获得 $ SecuredString 。它作为VS中的System.Object和PowerGUI中的System.Array返回。

2 个答案:

答案 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 );