Немного трудно понять, что ты пытаешься сделать ...
Редактировать; как упомянуто Райаном, вы в настоящее время уже указываете его как строку ...
Но в некотором коде я использовал следующую функцию при использовании Read-Host и SecureStrings
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
В вашем случае вы бы назвали это, выполнив следующее;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
РЕДАКТИРОВАТЬ: учитывая комментарии, и просто черт возьми ... вот альтернативный метод, используемый для преобразования вышеупомянутой безопасной строки в простой текст в 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) )
}
Вы бы использовали это так;
$PWPlain = ConvertTo-PlainText $password
Подводя итог, вы берете пароль в маске, это безопасная строка, вы можете затем разбить его на простой текст для использования в другом месте, реальный пример слова будет, если определенные программы CLI принимают только пароли, переданные в них в виде простого текста, это помогает в автоматизации, где вы не хотите жестко кодировать пароль в вашем скрипте ..