ConvertTo-SecureString
暗号化された標準文字列を安全な文字列に変換します。 また、プレーンテキストをセキュリティで保護された文字列に変換することもできます。 これは、ConvertFrom-SecureString と Read-Host で使用されます。
構文
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 で暗号化されている場合は、同じキーを ConvertTo-SecureString コマンドレットの Key または SecureKey パラメーターの値として指定する必要があります。
例
例 1: セキュリティで保護された文字列を暗号化された文字列に変換する
PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Secure
System.Security.SecureString PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure
PS C:\> $Encrypted
01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abdae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7
efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b100000008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd
6eb67aae41 PS C:\> $Secure2 = ConvertTo-SecureString -String $Encrypted
PS C:\> $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 変数内の暗号化された標準文字列をセキュリティで保護された文字列に変換し直します。 結果を $Secure 2 変数に保存します。 6 番目のコマンドは、$Secure 2 変数の値を表示します。 SecureString 型は、コマンドが成功したことを示します。
例 2: ファイル内の暗号化された文字列からセキュリティで保護された文字列を作成する
PS C:\> $Secure = Read-Host -AsSecureString
PS C:\> $Encrypted = ConvertFrom-SecureString -SecureString $Secure -Key (1..16)
PS C:\> $Encrypted | Set-Content Encrypted.txt
PS C:\> $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 コマンドレットに送信し、指定されたキーを使用してセキュリティで保護された文字列に変換します。 結果は $Secure 2 変数に保存されます。
例 3: プレーン テキスト文字列をセキュリティで保護された文字列に変換する
PS C:\> $Secure_String_Pwd = ConvertTo-SecureString "P@ssW0rD!" -AsPlainText -Force
このコマンドは、プレーンテキスト文字列をP@ssW0rDに変換します。 を安全な文字列に変換し、結果を $Secure_String_Pwd 変数に格納します。 AsPlainText パラメーターを使用するには、Force パラメーターもコマンドに含める必要があります。
パラメーター
-AsPlainText
セキュリティで保護された文字列に変換するプレーン テキスト文字列を指定します。 セキュリティで保護された文字列コマンドレットは、機密テキストを保護するのに役立ちます。 テキストはプライバシーのために暗号化され、使用後にコンピューター メモリから削除されます。 このパラメーターを使用してプレーン テキストを入力として指定した場合、システムはこの方法でその入力を保護できません。 このパラメーターを使用するには、Force パラメーターも指定する必要があります。
型: | SwitchParameter |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
AsPlainText パラメーターを使用した場合の影響を理解し、引き続き使用することを確認します。
型: | SwitchParameter |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Key
セキュア文字列を暗号化された標準文字列に変換するときに使用する暗号化キーを指定します。 有効なキーの長さは 16、24、32 バイトです。
型: | Byte[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-SecureKey
セキュア文字列を暗号化された標準文字列に変換するときに使用する暗号化キーを指定します。 キーは、セキュリティで保護された文字列の形式で指定する必要があります。 セキュア・ストリングは、キーとして使用される前にバイト配列に変換されます。 有効なキーの長さは 16、24、32 バイトです。
型: | SecureString |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-String
セキュリティで保護された文字列に変換する文字列を指定します。
型: | String |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
入力
標準の暗号化文字列を ConvertTo-SecureString にパイプ処理できます。
出力
ConvertTo-SecureString は SecureString オブジェクトを返します。