Преобразует зашифрованные стандартные строки в защищенные строки. Можно также преобразовать обычный текст в защищенные строки. Используется с командлетами ConvertFrom-SecureString и Read-Host.

Синтаксис

ConvertTo-SecureString [-Key <Byte[]>] [-String] <string> [<CommonParameters>]

ConvertTo-SecureString [-AsPlainText] [-Force] [-String] <string> [<CommonParameters>]

ConvertTo-SecureString [[-SecureKey] <SecureString>] [-String] <string> [<CommonParameters>]

Описание

Командлет ConvertTo-SecureString преобразует зашифрованные стандартные строки в защищенные строки. Можно также преобразовать обычный текст в защищенные строки. Используется с командлетами ConvertFrom-SecureString и Read-Host. Защищенная строка, созданная командлетом, может использоваться с командлетами или функциями, которые требует параметра типа SecureString. Защищенную строку можно преобразовать обратно в зашифрованную стандартную строку с использованием командлета ConvertFrom-SecureString. Это позволит сохранить ее в файле для последующего использования.

Если преобразуемая стандартная строка была зашифрована с помощью командлета ConvertFrom-SecureString с использованием указанного ключа, тот же ключ должен быть введен в качестве значения параметра Key или SecureKey командлета ConvertTo-SecureString.

Параметры

-AsPlainText

Указывает обычную текстовую строку для преобразования в защищенную строку. Командлеты защищенной строки помогают защитить секретный текст. Текст шифруется в целях конфиденциальности и после использования удаляется из памяти компьютера. Если этот параметр используется, чтобы обеспечить ввод обычного текста, то защита ввода таким образом невозможна. Чтобы использовать этот параметр, необходимо также указать параметр Force.

Обязательно?

false

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Force

Подтверждает, что пользователь понимает последствия использования параметра AsPlainText и по-прежнему намерен использовать его.

Обязательно?

false

Позиция?

3

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Key <Byte[]>

Указывает ключ шифрования для преобразования защищенной строки в зашифрованную стандартную строку. Допустимые значения длины ключа: 16, 24 и 32 байта.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-SecureKey <SecureString>

Указывает ключ шифрования для преобразования защищенной строки в зашифрованную стандартную строку. Ключ должен быть предоставлен в формате защищенной строки. Перед использованием в качестве ключа защищенная строка преобразуется в массив байтов. Допустимые значения длины ключа: 16, 24 и 32 байта.

Обязательно?

false

Позиция?

2

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-String <string>

Задает строку для преобразования в защищенную строку.

Обязательно?

true

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue)

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Ввод и вывод

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

System.String

Стандартную зашифрованную строку можно передать командлету ConvertTo-SecureString по конвейеру.

Выходные данные

System.Security.SecureString

ConvertTo-SecureString возвращает объект SecureString.

Пример 1

C:\PS>$secure = read-host -assecurestring
C:\PS> $secure
System.Security.SecureString

C:\PS> $encrypted = convertfrom-securestring -securestring $secure
C:\PS> $encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41
C:\PS> $secure2 = convertto-securestring -string $encrypted
C:\PS> $secure2
System.Security.SecureString

Описание
-----------
В этом примере показано, как создать защищенную строку из введенных пользователем данных, преобразовать защищенную строку в зашифрованную стандартную строку, а затем преобразовать ее обратно в защищенную строку.
Первая команда использует параметр AsSecureString командлета Read-Host, чтобы создать защищенную строку. После ввода команды любые введенные символы преобразуются в защищенную строку и сохраняются в переменную $secure.
Вторая команда отображает значение переменной $secure. Поскольку переменная $secure содержит защищенную строку, Windows PowerShell отображает только тип System.Security.SecureString. 
Третья команда использует ключ командлет ConvertFrom-SecureString для преобразования защищенной строки в переменной $secure в зашифрованную стандартную строку. Эта команда сохраняет результат в переменной $encrypted. Четвертая команда отображает зашифрованную строку в значении переменной $encrypted.
Пятая команда использует ключ командлет ConvertTo-SecureString для преобразования зашифрованной стандартной строки в переменной $encrypted обратно в защищенную строку. Эта команда сохраняет результат в переменной $secure2. Шестая команда отображает значение переменной $secure2. Тип SecureString указывает на успешное выполнение команды.






Пример 2

C:\PS>$secure = read-host -assecurestring
C:\PS> $encrypted = convertfrom-securestring -secureString $secure -key (1..16)
C:\PS> $encrypted | set-content encrypted.txt
C:\PS> $secure2 = get-content encrypted.txt | convertto-securestring -key (1..16)

Описание
-----------
В этом примере показано, как создать защищенную строку из зашифрованной стандартной строки, сохраненной в файл.
Первая команда использует параметр AsSecureString командлета Read-Host, чтобы создать защищенную строку. После ввода команды любые введенные символы преобразуются в защищенную строку и сохраняются в переменную $secure. 
Вторая команда использует ключ командлет ConvertFrom-SecureString для преобразования защищенной строки в переменной $secure в зашифрованную стандартную строку, используя указанный ключ. Содержимое сохраняется в переменной $encrypted.
Третья команда использует оператор конвейера (|) для отправки значения переменной $encrypted командлету Set-Content, который сохраняет значение в файле Encrypted.txt.
Четвертая команда использует командлет Get-Content для извлечения зашифрованной стандартной строки из файла Encrypted.txt. Команда использует оператор конвейера для отправки зашифрованной строки командлету ConvertTo-SecureString, который преобразует ее в защищенную строку, используя указанный ключ. Результаты сохраняются в переменной $secure2.






Пример 3

C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force

Описание
-----------
Эта команда преобразует обычную текстовую строку "P@ssW0rD!" в защищенную строку и сохраняет результат в переменной $secure_string_pwd. Чтобы использовать параметр AsPlainText, команда также должна содержать параметр Force.






См. также