ConvertTo-SecureString

暗号化された標準文字列をセキュリティ保護された文字列に変換します。プレーン テキストをセキュリティで保護された文字列に変換することもできます。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 によって暗号化されている場合、そのキーを ConvertTo-SecureString コマンドレットの Key または SecureKey パラメーターの値として渡す必要があります。

パラメーター

-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

説明
-----------
この例は、ユーザー入力からセキュリティで保護された文字列を作成し、暗号化された標準文字列に変換して、その暗号化された標準文字列をセキュリティで保護された文字列に戻す方法を示しています。

最初のコマンドは、Read-Host コマンドレットの AsSecureString パラメーターを使用してセキュリティで保護された文字列を作成します。コマンドを入力した後、入力した文字はセキュリティで保護された文字列に変換され、$secure 変数に保存されます。

2 番目のコマンドは、$secure 変数の内容を表示します。$secure 変数にはセキュリティで保護された文字列が格納されているので、Windows PowerShell は System.Security.SecureString 型のみを表示します。

3 番目のコマンドは、ConvertFrom-SecureString コマンドレットを使用して、$secure 変数内のセキュリティで保護された文字列を暗号化された標準文字列に変換します。結果は $encrypted 変数に保存されます。4 番目のコマンドは、$encrypted 変数の値の暗号化された文字列を表示します。

5 番目のコマンドは、ConvertTo-SecureString コマンドレットを使用して、$encrypted 変数内の暗号化された標準文字列をセキュリティで保護された文字列に戻します。結果は $secure2 変数に保存されます。6 番目のコマンドは、$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)

説明
-----------
この例では、ファイルに保存された暗号化された標準文字列からセキュリティで保護された文字列を作成する方法を示しています。

最初のコマンドは、Read-Host コマンドレットの AsSecureString パラメーターを使用してセキュリティで保護された文字列を作成します。コマンドを入力した後、入力した文字はセキュリティで保護された文字列に変換され、$secure 変数に保存されます。

2 番目のコマンドは、指定されたキーで ConvertFrom-SecureString コマンドレットを使用して、$secure 変数内のセキュリティで保護された文字列を暗号化された標準文字列に変換します。内容は $encrypted 変数に保存されます。

3 番目のコマンドは、パイプライン演算子 (|) を使用して $encrypted 変数の値を Set-Content コマンドレットに渡し、コマンドレットは、その値を Encrypted.txt ファイルに保存します。

4 番目のコマンドは、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 パラメーターも含める必要があります。





関連項目

概念

ConvertFrom-SecureString
Read-Host