Invoke-Expression の使い方について、サンプルコードを用いて説明します。
スクリプトブロックを実行 (引数なし)
$cmd = {Get-ChildItem} $cmd.Invoke()
スクリプトブロックを実行 (引数あり)
$cmd = {Write-Host $args} $cmd.Invoke(1,2,3)
スクリプトブロックを実行 (引数あり)
$cmd = {Write-Host $args[0]} $cmd.Invoke(1)
スクリプトブロックを実行 (引数あり)
[ScriptBlock]$cmd = {Get-ChildItem} Invoke-Command $cmd
スクリプトブロックを実行 (引数あり)
$cmd = {Write-Host $args[0] $args[1]} &$cmd "Hello,", "World!"
PARAM を使用して、名前付き引数を処理
$cmd = {PARAM ([string]$Name, [int]$ID) "Name = $Name, ID= $ID"} &$cmd -Name "Yamada" -ID 1234
スクリプトブロックを実行
$cmd = {Get-ChildItem} &$cmd