securestringからパスワードを一括抽出しようとしています。securestringからのパスワードをバッチで抽出します。
これはPSである:
Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Temp\Password.txt"
$pass = Get-Content "C:\Temp\Password.txt" | ConvertTo-SecureString
$stringValue = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass));
期待どおりに動作します。
私はバッチで上記のコードを変換しています:
powershell -Command "& {Read-Host "Enter Password" -AsSecureString | ConvertFrom-SecureString | Out-File "C:\Temp\Password.txt"}"
powershell -command "& {$pass = Get-Content "C:\Temp\Password.txt" | ConvertTo-SecureString;^
$stringValue = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))}"
FOR /F "usebackq delims=" %v IN (`stringValue`) DO set "d=%v"
echo %d%
私が間違っているものを、私は唯一のエコー%D%の "たpowershell.exe -encodedCommand $ encodedCommand" を得ればわかりません、平文のパスワードではありません。
PowerShellの変数は魔法のようになることはありませんバッチ変数。バックチックの内部でPowerShellコードを実行し、そこに復号化されたパスワードをエコーする必要があります。 –
私はそれを試しました。私は同じ結果を得る。 – Prasu
なぜバッチファイルを使用するのですか? PowerShellを使用するだけで、苦しい曲げのほとんどを避けることができます。 –