[英]Possible to execute ForEach-Object commands in Parallel
我一直在尝试对通过CSV导入并由ForEach-Object
调用的数据(例如服务器名称列表)执行并行命令。 我发现foreach有一个并行方法,但似乎ForEach-Object
没有。 当我点击多个服务器读取日志数据时,我担心性能良好,并且有以下选项:
1) PowerShell Workflow
2) PowerShell Background Job
3) Invoke-Command
当我尝试选项3时,它失败了,因为我试图通过-ArgumentList发送参数,但它似乎不喜欢我以CSV的形式从CSV推送的变量:
$($_.'CSVColumnValue')
是否可以使用ForEach-Object
并行执行命令,如果是这样,建议的方法是什么?
没有'ForEach-Object -Parallel'这样的东西,因为它是在管道中执行的。 在MSDN第9频道检查Erik Meijer和Jeffrey Snover ; 那些人在PowerShell的管道上获得了很多细节。 它是2008年的视频,持续了一个多小时,但仍然......管道的工作方式非常出色。
'ForEach -Parallel'是一个构造而不是管道cmdlet。 它是Workflow模块的一部分,并在Windows PowerShell 3.0中引入。
相比:
$Items = 1..42
ForEach -Parallel ($Item in $Items) {
$Item
}
附:
1..42 | ForEach-Object -Process { $_ }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.