相关疑难解决方法(0)

在带参数的函数上使用Invoke-Command -ScriptBlock

我正在编写一个PowerShell脚本,它将使用Invoke-Command及其-ScriptBlock参数在远程主机上执行命令.例如,

function Foo {
    ...
    return "foo"
}
$rv = Invoke-Command --Credential $c --ComputerName $fqdn -ScriptBlock ${function:Foo}
Run Code Online (Sandbox Code Playgroud)

这很好用.我现在要做的是同样的事情,但用本地参数调用函数.例如,

function Bar {
    param( [String] $a, [Int] $b )
    ...
    return "foo"
}
[String] $x = "abc"
[Int] $y = 123
$rv = Invoke-Command --Credential $c --ComputerName $fqdn -ScriptBlock ${function:Foo($x,$y)}
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

Invoke-Command:无法验证参数'ScriptBlock'的参数.参数为null.提供非null参数并再次尝试该命令.

如何使用-ScriptBlock带有参数的本地函数的Invoke-Command ?

我意识到我可以将整个函数和参数包装在一个大的代码块中,但在我看来,这并不是一种干净的方式.

powershell powershell-2.0

28
推荐指数
2
解决办法
6万
查看次数

如何同时(并行)在远程计算机上调用-命令相同的功能

我正在编写一个脚本,它有几个函数需要时间在不同的远程计算机上执行。有什么办法可以同时以并行方式调用-命令它们吗?一个例子将不胜感激。谢谢

powershell multithreading

3
推荐指数
1
解决办法
5461
查看次数