Трохи важко розшифрувати те, що ти намагаєшся зробити ...
Редагувати; як згадував Райан, ви зараз вже вказуєте це як рядок ...
Але в деякому коді я використовував таку функцію, коли використовував 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"
)
EDIT: Дано коментарі, і просто для біса ... ось альтернативний метод, який використовується для перетворення вищезазначеного захищеного рядка в звичайний текст в 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 приймають лише паролі, передані їм як звичайний текст, це допомагає в автоматизації, де ви не хочете вводити жорсткий пароль у свій сценарій ..