次の方法で共有


ConvertTo-SecureString

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

構文

Secure (既定)

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

PlainText

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

Open

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

説明

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

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

SecureString データ保護についての詳細は、「SecureString はどのくらい安全ですか? 」を参照してください。.

例 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

最初のコマンドでは、 コマンドレットの 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: ファイル内の暗号化された文字列からセキュリティで保護された文字列を作成する

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

$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)

最初のコマンドでは、 コマンドレットの 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

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

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

PlainText
配置:1
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Force

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

パラメーターのプロパティ

型:SwitchParameter
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

PlainText
配置:2
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Key

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

パラメーターのプロパティ

型:

Byte[]

規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

Open
配置:Named
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-SecureKey

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

パラメーターのプロパティ

型:SecureString
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

Secure
配置:1
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-String

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

パラメーターのプロパティ

型:String
規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

(All)
配置:0
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

String

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

出力

SecureString

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

メモ

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