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

Материал из Wikipedia PC-SUPP
Версия от 10:43, 21 июня 2018; Alexandre (обсуждение | вклад) (Новая страница: «{{TOC-right}} <center> = Общие сведения = </center> Если в сценарии необходимо прописать пароль, то нео…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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

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

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