1

有没有办法在脚本块中获取所有远程变量的列表?

考虑以下:

$x = 1
$block = { Write-Host $using:x }
Invoke-Command -Session (New-PSSession) -ScriptBlock $block

在 $block 内部,有没有办法获取可用的 $using: 范围变量列表?

$x = 1
$block = { Get-Variable }
Invoke-Command -Session (New-PSSession) -ScriptBlock $block

不产生 $x 作为可用变量

4

1 回答 1

1

简短的回答是:你不能。

远程端对变量一无所知。它们被序列化,然后嵌入反序列化代码和文字序列化 XML。

如果您是编写脚本块的人,那么我建议您只需将每个$Using:变量分配给脚本块内的局部变量:

$block = {
    $x = $Using:x
    $y = $Using:y
}

我在我的博客上写了一个更详细的解释,说明如何$Using:在 DSC 脚本资源中使用它。

于 2016-04-13T18:23:08.887 回答