我正在尝试多线程并遇到这个问题: http://learn-powershell.net/2015/03/31/introducing-poshrsjob-as-an-alternative-to-powershell-jobs/
尝试使用但却遇到错误而无法访问我需要的数据。让我解释。我在这里有一个非常简单的例子:
@('12.34.56.78')|Start-RSJob -Name {"TEST_$($_)"} -ScriptBlock {
Param($Computername)
Test-Connection -ComputerName $Computername -Quiet
}
get-RSJob|Receive-RSJob
这实际上是错误,说computername为null。我在这里放置的任何类型的命令都出现相同的错误,称computername为null。如何摆脱这个以及如何访问应该返回的布尔值。 这会在命令行中返回true或false,但在此脚本中运行时无法访问此值。
最终需要采用一系列IP,我需要访问每台机器返回的所有值。我不必使用这个豪华模块,但需要线程并认为这是一个不错的选择。任何建议都值得赞赏。
答案 0 :(得分:1)
看起来你在我的模块中发现了一个错误,它使用Param()来管理传入数据。幸运的是,您可以通过在scriptblock中使用$_
来解决这个问题。
@('12.34.56.78')|Start-RSJob -Name {"TEST_$($_)"} -ScriptBlock {
Test-Connection -ComputerName $_ -Quiet
}
get-RSJob|Receive-RSJob
话虽这么说,我肯定需要踩那个错误。
编辑:返回$ False的问题是Receive-RSJob中的错误($ True返回正常)。我也会解决这个问题。