Agak sulit untuk menguraikan apa yang Anda coba lakukan ...
Edit; seperti yang disebutkan oleh Ryan, saat ini Anda telah menetapkannya sebagai string ...
Namun dalam beberapa kode, saya telah menggunakan fungsi berikut saat menggunakan Read-Host dan SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
Dalam kasus Anda, Anda akan menyebutnya dengan melakukan hal berikut;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
EDIT: Diberikan komentar, dan hanya untuk itu ... inilah metode alternatif yang digunakan untuk mengubah string aman di atas menjadi teks biasa dalam 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) )
}
Anda akan menggunakannya seperti ini;
$PWPlain = ConvertTo-PlainText $password
Terlalu singkat, Anda mengambil kata sandi dalam topeng, ini adalah string yang aman, Anda kemudian dapat memecahnya menjadi teks biasa untuk digunakan di tempat lain, contoh kata sebenarnya adalah jika program CLI tertentu hanya menerima kata sandi yang diteruskan ke kata-kata tersebut sebagai teks biasa, ini membantu dengan otomatisasi di mana Anda tidak ingin memasukkan kode sandi ke dalam skrip Anda ..