Yapmaya çalıştığın şeyi deşifre etmek biraz zor ...
Düzenle; Ryan'ın belirttiği gibi, şu anda zaten bir dize olarak belirtiyorsunuz ...
Ancak bazı kodlarda Read-Host ve SecureStrings kullanırken aşağıdaki işlevi kullandım
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
Sizin durumunuzda, aşağıdakileri yaparak arayacaksınız;
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: Verilen yorumlar ve sadece cehennem için ... İşte yukarıdaki güvenli dizeyi Powershell içinde düz metne dönüştürmek için kullanılan alternatif bir yöntem;
# Taking a secure password and converting to plain text
Function ConvertTo-PlainText( [security.securestring]$secure ) {
$marshal = [Runtime.InteropServices.Marshal]
$marshal::PtrToStringAuto( $marshal::SecureStringToBSTR($secure) )
}
Bunu böyle kullanırdınız;
$PWPlain = ConvertTo-PlainText $password
Çok özetlemek gerekirse, şifreyi maskeli olarak alırsınız, bu güvenli bir dizedir, daha sonra bunu başka bir yerde kullanmak için düz metne bölebilirsiniz, gerçek bir kelime örneği, bazı CLI programlarının yalnızca şifreleri düz metin olarak geçirilmesini kabul etmesi durumunda, bu betiğinize bir şifre kodlamak istemediğiniz otomasyona yardımcı olur ..