私は非常に多くの行を持つスクリプトを持っています。このスクリプトは、編集せずに scriptblock パラメーターに簡単に貼り付けることができます (たとえば、スクリプト内の引用符の前にバックスラッシュを置きます)。次に、スクリプトをエンコードして、エンコードされたパラメーターとして powershell に渡すことができます。
$myscript = {
#paste of simplified script
$calc = 6 + 9
echo $calc
}
# Convert script to a string
$command = $carvingScript.ToString()
# Convert string to base64 encoded command
$bytes = [System.Text.Encoding]::Unicode.GetBytes( $command )
$encodedCommand = [Convert]::ToBase64String( $bytes )
base64 に変換されるスクリプトで 1 つのパラメーターを渡すことができるようにしたいと考えています。このような:
$parameter = 9
$myscript = {
$calc = 6 + $parameter
echo $calc
}
これに取り組む方法はありますか?scriptblock に引数を含めることができることはわかっていますが、引数を解析するには、1 つのパラメーターだけでなく、スクリプト全体を解析する必要があります。