Trochę trudno jest odczytać, co próbujesz zrobić ...
Edytować; jak wspomniano Ryan, obecnie określasz go jako ciąg znaków ...
Ale w niektórych kodach użyłem następującej funkcji podczas korzystania z Read-Host i SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
W twoim przypadku zadzwonisz, wykonując następujące czynności;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
EDYCJA: Biorąc pod uwagę komentarze i na wszelki wypadek ... oto alternatywna metoda konwersji powyższego bezpiecznego ciągu na zwykły tekst w programie 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) )
}
Użyłbyś tego w ten sposób;
$PWPlain = ConvertTo-PlainText $password
Podsumowując, zabierasz hasło w postaci zamaskowanej, jest to bezpieczny ciąg znaków, możesz następnie podzielić go na zwykły tekst, aby użyć go gdzie indziej. Przykładem prawdziwego słowa byłoby, gdyby niektóre programy CLI akceptowały hasła przesyłane do nich jako zwykły tekst, to pomaga w automatyzacji, w której nie chcesz na stałe wpisywać hasła do skryptu.