C'est un peu difficile de déchiffrer ce que vous essayez de faire ...
Éditer; comme mentionné par Ryan, vous le spécifiez déjà en tant que chaîne ...
Mais dans certains codes, j'ai utilisé la fonction suivante lors de l'utilisation de Read-Host et SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
Dans votre cas, vous l'appelleriez en procédant comme suit;
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: Compte tenu des commentaires, et juste pour l'enfer ... voici une méthode alternative utilisée pour convertir la chaîne sécurisée ci-dessus en texte brut dans 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) )
}
Vous l'utiliseriez comme ceci;
$PWPlain = ConvertTo-PlainText $password
Pour résumer, vous prenez le mot de passe masqué, c'est une chaîne sécurisée, vous pouvez ensuite le décomposer en texte brut pour une utilisation ailleurs, un vrai exemple de mot serait si certains programmes CLI n'acceptent que les mots de passe qui leur sont passés en texte brut, ce aide à l'automatisation lorsque vous ne voulez pas coder en dur un mot de passe dans votre script.