我正在尝试对某些内容进行多线程处理,并遇到了以下问题: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数组,并且我需要访问为每台机器返回的所有值。我不必使用这个时髦的模块,但需要线程,我认为这是一个不错的选择。如有任何建议,不胜感激。
您似乎在我的模块中发现了一个使用Param()在管道中托管传入数据的错误。幸运的是,只需在脚本块中使用$_
就可以解决这个问题。
@('12.34.56.78')|Start-RSJob -Name {"TEST_$($_)"} -ScriptBlock {
Test-Connection -ComputerName $_ -Quiet
}
get-RSJob|Receive-RSJob
话虽如此,我肯定需要踩掉那个虫子。
编辑:返回$False的问题是接收RSJob中的一个错误($True返回罚款)。我也会解决的。