Шифрование пароля в PowerShell

Материал из Wikipedia PC-SUPP
Перейти к: навигация, поиск
Scr posh.png PowerShell. Шифрование пароля в PowerShell

Общие сведения

Если в сценарии необходимо прописать пароль, то необходимо использовать шифрование пароля, дабы он не был в открытом виде.
Для этого понадобится скрипт:

Read-Host -Prompt "Enter password" -AsSecureString | ConvertFrom-SecureString | Set-Content password.txt

Где:
Enter password - название окна консоли шифрования
password.txt - название текстового файла, куда будет помещён шифрованный пароль (так же можно задать полный путь к месту создаваемого файла, например: c:\password.txt)
Обратить внимание на то, что пароль должен быть зашифрован на том ПК, на котором будет использоваться скрипт, иначе шифрованный пароль не сработает.

Использование

Его можно записать в переменную.
Например:
1. Если будет использоваться текстовый файл с шифрованным паролем, то:

$SecStr = Get-Content password.txt | ConvertTo-SecureString

2. Если вы не хотите плодить файлы, то можно вставить шифрованный пароль в скрипт:

$SecStr = Get-Content 'много_символов_из_текстового_файла_и_обязательно_в_кавычках' | ConvertTo-SecureString

P.S. Сообщается, что:
У командлета ConvertTo-SecureString есть параметр -Key, который можно предопределить. А это значить, что в принципе не обязательно шифровать пароль на том сервере, где он будет использоваться, но беда в том, что ещё надо как-то узнать этот самый Key
Ну и ссылочка на то, как это сделать (думаю там написано): Storing Passwords to Disk in PowerShell with Machine-key Encryption