1
AESで暗号化されたパスワードを解読する方法を説明する多数のハウツー記事に従ってきました。どのように試しても、パスワードはSystem.Security.SecureStringとして表示される$ passwordで終わります。 Windowsのアクセス許可(ADSI/LDAP)を使用しないコマンドラインユーティリティを呼び出すので、プレーンテキストでエコーするにはパスワードが必要です。ここにスクリプトがあります:AESで暗号化されたパスワードをPowerShellスクリプトのプレーンテキストに復号する
$PasswordFile = "$PSScriptRoot\PowerShell\AESpassword.txt"
$KeyFile = "$PSScriptRoot\PowerShell\AES.key"
$key = Get-Content $KeyFile
$MyPassword = ConvertTo-SecureString (Get-Content $PasswordFile | ConvertTo-SecureString -Key $key) -AsPlainText -Force
$Marshal = [System.Runtime.InteropServices.Marshal]
$BSTR = $Marshal::SecureStringToBSTR($MyPassword)
$password = $Marshal::PtrToStringAuto($BSTR)
なぜConvertTo-SecureStringを2回呼び出すのですか? '$ MyPassword = Get-Content $ PasswordFile | ConvertTo-SecureString -Key $ key'で十分です。 –
ええ、最初に復号化されたパスワードで 'ConvertTo-SecureString'を呼び出し、それが安全な文字列であると訴えますか? –
あなたのご提案$ MyPassword = Get-Content $ PasswordFile | ConvertTo-SecureString - Key $ keyは魅力的に機能しました!どうもありがとうございます!私はあなたのためにそれを信用できるように、答えとしてそのコメントを投稿することを確認してください。 :) – bbcompent1