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

Rohan Timalsina 2023年6月21日
  1. Marshal クラスを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する
  2. ConvertFrom-SecureString コマンドレットを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する
  3. NetworkCredential クラスを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する
PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する

セキュリティで保護された文字列のテキストは、PowerShell のメモリで暗号化されます。 可逆暗号化を使用するため、必要に応じてプレーン テキスト文字列に戻すことができます。

ConvertTo-SecureString コマンドレットは、プレーン テキストまたは暗号化された文字列をセキュリティで保護された文字列に変換します。 このチュートリアルでは、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する方法を説明します。

Marshal クラスを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する

次のコマンドは、プレーン テキスト文字列 P0w3rsh311 を安全な文字列に変換し、変数 $securePassword に格納します。

$securePassword = ConvertTo-SecureString "P0w3rsh311" -AsPlainText -Force

次の例では、.NET Framework の Marshal クラスを使用して、セキュリティで保護された文字列をプレーン テキストに変換します。

[System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword))

出力:

P0w3rsh311

ConvertFrom-SecureString コマンドレットを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する

ConvertFrom-SecureString コマンドレットは、セキュリティで保護された文字列を暗号化された標準文字列に変換します。 PowerShell 7.0 から、セキュリティで保護された文字列をプレーン テキスト文字列に変換する新しいパラメーター -AsPlainText が追加されました。

次の例では、PowerShell バージョン 7.0 以降が必要です。

ConvertFrom-SecureString -SecureString $securePassword -AsPlainText

出力:

P0w3rsh311

NetworkCredential クラスを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換する

NetworkCredential クラスを使用して、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換することもできます。

次のコマンドは、ユーザーにパスワードを入力し、安全な文字列として変数 $securePassword に保存するように求めます。

$securePassword = Read-Host "Enter password: " -AsSecureString

出力:

Enter password: **********

次の例では、セキュリティで保護された文字列を出力としてプレーン テキスト文字列に変換します。

[System.Net.NetworkCredential]::new("", $securePassword).Password

出力:

P0w3rsh311

この記事が、PowerShell でセキュリティで保護された文字列をプレーン テキストに変換するさまざまな方法を理解するのに役立つことを願っています。

著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell String