次の方法で共有


ConvertTo-SecureString

プレーン テキストまたは暗号化された文字列をセキュリティで保護された文字列に変換します。

構文

ConvertTo-SecureString
              [-String] <String>
              [[-SecureKey] <SecureString>]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-AsPlainText]
              [-Force]
              [<CommonParameters>]
ConvertTo-SecureString
              [-String] <String>
              [-Key <Byte[]>]
              [<CommonParameters>]

説明

コマンドレットは ConvertTo-SecureString 、暗号化された標準文字列をセキュリティで保護された文字列に変換します。 プレーンテキストをセキュリティで保護された文字列に変換することもできます。 と でConvertFrom-SecureStringRead-Host使用されます。 コマンドレットによって作成されたセキュリティで保護された文字列は、 SecureString 型のパラメーターを必要とするコマンドレットまたは関数と共に使用できます。 セキュリティで保護された文字列は、 コマンドレットを使用して暗号化された標準文字列に ConvertFrom-SecureString 変換できます。 この文字列は、後で使用できるようにファイルに格納されます。

変換される標準文字列が指定したキーを使用して暗号化されている ConvertFrom-SecureString 場合は、コマンドレットの Key または SecureKey パラメーターの値として同じキーを指定する ConvertTo-SecureString 必要があります。

注意

DotNet ごとに、SecureString の内容は Windows 以外のシステムでは暗号化されないことに注意してください。

例 1: セキュリティで保護された文字列を暗号化された文字列に変換する

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

PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae98000000000
02000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7efa79820000000004800000a000
000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d1400
0000e6b7bf46a9d485ff211b9b2a2df3bd6eb67aae41
PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $Secure2
System.Security.SecureString

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

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

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

4 番目のコマンドは、暗号化された文字列を変数の値に $Encrypted 表示します。

5 番目のコマンドでは、 コマンドレットを ConvertTo-SecureString 使用して、変数内の暗号化された標準文字列を $Encrypted セキュリティで保護された文字列に変換します。 結果が変数に $Secure2 保存されます。 6 番目のコマンドは、変数の値を $Secure2 表示します。 SecureString 型は、コマンドが成功したことを示します。

例 2: ファイル内の暗号化された文字列からセキュリティで保護された文字列をCreateする

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

$Secure = Read-Host -AsSecureString
$Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
$Encrypted | Set-Content Encrypted.txt
$Secure2 = Get-Content Encrypted.txt | ConvertTo-SecureString -Key (1..16)

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

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

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

4 番目のコマンドでは、 コマンドレットを Get-Content 使用して、Encrypted.txt ファイル内の暗号化された標準文字列を取得します。 コマンドは、パイプライン演算子を使用して、暗号化された文字列をコマンドレットに ConvertTo-SecureString 送信します。これにより、指定したキーを使用してセキュリティで保護された文字列に変換されます。 結果は 変数に $Secure2 保存されます。

例 3: プレーン テキスト文字列をセキュリティで保護された文字列に変換する

このコマンドは、プレーン テキスト文字列 P@ssW0rD! をセキュリティで保護された文字列に変換し、結果を変数に $Secure_String_Pwd 格納します。

PowerShell 7 以降では、AsPlainText パラメーターを使用する場合、Force パラメーターは必要ありません。 ただし、 Force パラメーターを含めると、ステートメントが以前のバージョンと互換性があることを確認できます。

$Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force

注意事項

スクリプトまたはコマンド ラインのプレーンテキスト文字列を使用しないようにする必要があります。 プレーン テキストは、イベント ログとコマンド履歴ログに表示されます。

パラメーター

-AsPlainText

セキュリティで保護された文字列に変換するプレーンテキスト文字列を指定します。 セキュリティで保護された文字列コマンドレットは、秘密情報テキストを保護できます。 テキストはプライバシー保護のために暗号化され、使用後にコンピューターのメモリから削除されます。 このパラメーターを使用してプレーンテキストを入力として提供すると、システムはこの方法でその入力を保護することはできません。

Type:SwitchParameter
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

PowerShell 7 以降では、AsPlainText パラメーターを使用するときに Force パラメーターは不要になりました。 パラメーターは使用されていませんが、以前のバージョンの PowerShell との互換性を提供するために削除されませんでした。

Type:SwitchParameter
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Key

元のセキュリティで保護された文字列を暗号化された標準文字列に変換するために使用される暗号化キーを指定します。 有効なキー長は 16、24、32 バイトです。

Type:Byte[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureKey

元のセキュリティで保護された文字列を暗号化された標準文字列に変換するために使用される暗号化キーを指定します。 セキュリティで保護された文字列の形式で、キーを指定する必要があります。 セキュリティで保護された文字列は、キーとして使用されるバイト配列に変換されます。 有効なセキュア キーの長さは、8、12、16 のコード ポイントです。

Type:SecureString
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-String

セキュリティで保護された文字列に変換する文字列を指定します。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

入力

String

標準の暗号化された文字列をこのコマンドレットにパイプできます。

出力

SecureString

このコマンドレットは、作成された SecureString オブジェクトを返します。

メモ

絵文字などの一部の文字は、それらを含む文字列内のいくつかのコード ポイントに対応しています。 これらの文字は、パスワードで使用すると問題や誤解を引き起こす可能性があるため、使用しないでください。