有没有办法在脚本块中获取所有远程变量的列表?
请考虑以下事项:
$x = 1
$block = { Write-Host $using:x }
Invoke-Command -Session (New-PSSession) -ScriptBlock $block
在$ block内部,有没有办法获得可用的$ using:scoped变量列表?
$x = 1
$block = { Get-Variable }
Invoke-Command -Session (New-PSSession) -ScriptBlock $block
不会将$ x作为可用变量
答案 0 :(得分:1)
简短的回答是:你做不到。
远程端对变量一无所知。它们被序列化,然后嵌入了反序列化代码和文字序列化XML。
如果您是编写脚本块的人,那么我建议您将每个$Using:
变量分配给scriptblock内的局部变量:
$block = {
$x = $Using:x
$y = $Using:y
}
我在博客上写了关于how $Using:
is implemented的更详细解释,说明如何在DSC脚本资源中使用它。