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
必要があります。
Note
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: ファイル内の暗号化された文字列からセキュリティで保護された文字列を作成する
この例では、ファイルに保存されている暗号化された標準文字列からセキュリティで保護された文字列を作成する方法を示します。
$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 |
入力
標準の暗号化された文字列をこのコマンドレットにパイプできます。
出力
このコマンドレットは、作成 された SecureString オブジェクトを返します。
メモ
絵文字などの一部の文字は、それらを含む文字列内のいくつかのコード ポイントに対応します。 これらの文字は、パスワードで使用すると問題や誤解を引き起こす可能性があるため、使用しないでください。
関連リンク
PowerShell