あなたがやろうとしていることを解読するのは少し難しいです...
編集; ライアンによって述べられたように、あなたは現在それを文字列として指定しています...
しかし、一部のコードでは、Read-HostとSecureStringsを使用するときに次の関数を使用しました
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
あなたの場合、あなたはそれを次のようにして呼び出すでしょう;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
編集:与えられたコメント、そしてそれの地獄のために...ここでは、Powershell内で上記の安全な文字列をプレーンテキストに変換するために使用される代替方法があります。
# Taking a secure password and converting to plain text
Function ConvertTo-PlainText( [security.securestring]$secure ) {
$marshal = [Runtime.InteropServices.Marshal]
$marshal::PtrToStringAuto( $marshal::SecureStringToBSTR($secure) )
}
このように使用します。
$PWPlain = ConvertTo-PlainText $password
要約すると、マスクされたパスワードを使用します。これは安全な文字列です。これをプレーンテキストに分解して、他の場所で使用できます。実際の単語の例は、特定のCLIプログラムがプレーンテキストとして渡されるパスワードのみを受け入れる場合です。スクリプトにパスワードをハードコーディングしたくない自動化に役立ちます。