我有一个可以在内部网络中执行的功能,但是可以通过DMZ服务器上的WINRM执行。
基本上所有功能都将在Invoke-Command
内部。事实是,我大约有10个参数。
是否有更优雅的方法将参数传递给invoke-command
而不是将它们列出3次?
function foo {
Param(
$a,
$b,
$c,
$d,
$e,
$f
)
Invoke-Command -ComputerName bar -ScriptBlock {
Param(
$a,
$b,
$c,
$d,
$e,
$f
)
<#Stuff#>
} -ArgumentList $a, $b, $c, $d, $e, $f
}
答案 0 :(得分:0)
其他选择是$ using:范围,或引用$ args [0],$ args [1]等。
答案 1 :(得分:0)
您可以通过$PSBoundParameters
function foo {
Param(
$a,
$b
)
Invoke-Command -ScriptBlock {
param(
$z
)
Write-Output $z["a"]
Write-Output $z["b"]
} -ArgumentList $PSBoundParameters
}
Foo -a "TEST Number 1" -b "TEST Number 2"