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-SecureString
と Read-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
変数にはセキュリティで保護された文字列が含まれているため、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 |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
PowerShell 7 以降では、AsPlainText パラメーターを使用する場合、Force パラメーターは不要になりました。 パラメーターは使用されていませんが、以前のバージョンの PowerShell との互換性を提供するために削除されませんでした。
型: | SwitchParameter |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Key
元のセキュリティで保護された文字列を暗号化された標準文字列に変換するために使用する暗号化キーを指定します。 有効なキーの長さは 16 バイト、24 バイト、32 バイトです。
型: | Byte[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SecureKey
元のセキュリティで保護された文字列を暗号化された標準文字列に変換するために使用する暗号化キーを指定します。 キーは、セキュリティで保護された文字列の形式で指定する必要があります。 セキュリティで保護された文字列は、キーとして使用されるバイト配列に変換されます。 有効なセキュア キーの長さは、8、12、16 のコード ポイントです。
型: | SecureString |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-String
セキュリティで保護された文字列に変換する文字列を指定します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
入力
標準の暗号化された文字列をこのコマンドレットにパイプできます。
出力
このコマンドレットは、SecureString オブジェクト 作成されたオブジェクトを返します。
メモ
絵文字などの一部の文字は、それらを含む文字列内のいくつかのコード ポイントに対応します。 これらの文字は、パスワードで使用すると問題や誤解を引き起こす可能性があるため、使用しないでください。
関連リンク
PowerShell