2017-03-20 6 views
1

を受け付けない:Security.SecureStringパラメータは、文字列

[Parameter(Mandatory=$true)] 
[ValidateNotNullOrEmpty()] 
[Security.SecureString]$password=$(Throw "Password required.") 

-passwordパラメータを使用しているとき、私はこのエラーを取得します。私は-passwordパラメータを渡さない場合

は、プロンプトが表示され、それが入力を受け付け、

System.Security.SecureStringの入力するタイプの可能System.Stringを変換することはできません。

+1

質問は何ですか?このエラーを取得するには、安全な文字列が必要で、文字列を渡す必要がありますか? – LotPings

+0

あなたは自分の質問に答えました(?) –

答えて

5

あなたは、文字列を渡すことはできません。あなたは別のオプションは、文字列としてパスワードを取ると、あなたの関数内SecureStringにそれを変換することです

function Get-PasswordThing { 
    Param (
     [Parameter(Mandatory=$true)] 
     [ValidateNotNullOrEmpty()] 
     [Security.SecureString]$password=$(Throw "Password required.") 
    ) 

    Process { 
     Write-Host "cool" 
    } 
} 

[string]$password = "hello" 
[Security.SecureString]$securePassword = ConvertTo-SecureString $password -AsPlainText -Force 
Get-PasswordThing -password $securePassword 

# inline 
Get-PasswordThing -password (ConvertTo-SecureString $password -AsPlainText -Force) 
0

をセキュリティで保護された文字列を渡す必要があります。

Function DoSomething { 
Param (
    [Parameter(Mandatory=$true)] 
    [ValidateNotNullOrEmpty()] 
    [String]$password=$(Throw "Password required.") 
) 

$password = $password | ConvertTo-SecureString -AsPlainText -Force 

#your script continues here 
} 
関連する問題