この質問には一種の質問があります。hereが、@Andy Arismendiの "comma trick"は私にとってはうまくいきません。要するに関数から返された[System.Management.Automation.PSCredential]
私はセキュリティで保護された文字列含むテキストファイル読み込み機能があります:関数内
function Get-StoredCredential
{
param([string]$username)
<snip>..</snip>
$Password = $credFile | ConvertTo-SecureString -Key $key
$oCred = New-Object -TypeName System.Management.Automation.PSCredential($UserName, $Password)
$oCred.GetType()
$oCred
}
を、$ oCred.GetTypeは()を返します。
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True PSCredential System.Object
をしかし、外それを呼び出す関数
$a = Get-StoredCredential -UserName "john" -Verbose
$a.gettype()
オブジェクトタイプを返します。私は、資格情報オブジェクトを使用したい機能に
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
は、私が.GetNetworkCredential()。なぜなら、この見かけ上のタイプの変更の対象からストリッピングされたパスワードを呼び出す必要があります。
提案がありますか?
TIA。
P.S. PowerShellの5.0
更新
PS C:\> $a.Length
2
PS C:\> $a[0]
MYDOMAIN\john
PS C:\> $a[1]
UserName Password
-------- --------
MYDOMAIN\john System.Security.SecureString
PS C:\> $a[2]
PS C:\>
実行後に '$ a.Length'とは何ですか? IMHO、あなたのコードの ' .. 'の部分に問題があります。 –
PetSerAl
$ a.Lengthは2を返します。 .. は、関数内にもっと多くのものがあることを示しています。この質問には関係ありません。 –
woter324
'$ a.Length'が2を返すと、関数は2つの項目を返します。 'PSAredential'オブジェクトは最後のものです:' $ a [1] '、しかし' $ a [0] 'はおそらく*無関係*コードによって返されます。 – PetSerAl