①で予め暗号化したファイルを作成しておく、③のバッチから②のPowerShellを呼び出して複合化する場合の例
①【暗号化パスワードのファイル作成コマンド】PowerShell -command "[byte[]] $Enc_KEY = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43);$Cred = Get-Credential;$Cred.Password | ConvertFrom-SecureString -key $Enc_KEY | Set-Content .\Password.dat"
②## 【複合化パワーシェル(関数)】
## AES用バイト配列
[byte[]] $Enc_KEY = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,43)
## 暗号化されたパスワードを複合化する
$Get_Param = Get-Content $Args[0] | ConvertTo-SecureString -key $Enc_KEY
$SSTstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Get_Param)
$PTSstr = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($SSTstr)
$Return_Param = $PTSstr
## 戻り値を返す
return $Return_Param③【バッチからパワーシェルを呼び出して結果を取得する】@echo off
set PS_Args=Password.dat
REM ## echo パラメータ %PS_Args%
REM ## パスワードを取得する
FOR /F "usebackq" %%p IN (`powershell -executionpolicy bypass -File PW_File.ps1 %PS_Args%`) DO SET PS_VALUE=%%p
echo 複合化したパスワード = %PS_VALUE%
pause
PR