É um pouco difícil decifrar o que você está tentando fazer ...
Editar; como mencionado por Ryan, você já o está especificando como uma sequência ...
Mas, em algum código, usei a seguinte função ao usar o Read-Host e o SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
No seu caso, você chamaria assim:
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: Dado comentários, e apenas para o inferno ... aqui está um método alternativo usado para converter a string segura acima em texto sem formatação no 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) )
}
Você usaria assim;
$PWPlain = ConvertTo-PlainText $password
Resumindo demais, você pega a senha em mascarada, é uma string segura, e pode ser dividida em texto sem formatação para uso em outros lugares; um exemplo de palavra real seria se certos programas CLI aceitassem apenas senhas passadas para eles como texto sem formatação, isso ajuda na automação onde você não deseja codificar uma senha no seu script.