Es un poco difícil descifrar lo que estás tratando de hacer ...
Editar; como mencionó Ryan, actualmente ya lo estás especificando como una cadena ...
Pero en algunos códigos, he usado la siguiente función cuando uso Read-Host y SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
En su caso, lo llamaría haciendo lo siguiente;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
EDITAR: Comentarios dados, y solo por el placer de hacerlo ... aquí hay un método alternativo utilizado para convertir la cadena segura anterior en texto sin formato dentro de 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) )
}
Lo usarías así;
$PWPlain = ConvertTo-PlainText $password
Resumiendo, tomas la contraseña enmascarada, es una cadena segura, luego puedes dividirla en texto sin formato para usarla en otra parte, un ejemplo de una palabra real sería si ciertos programas de CLI solo aceptan que se pasen contraseñas como texto sin formato, esto ayuda con la automatización donde no desea codificar una contraseña en su script.