Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Powershell Core并行处理安装?_Powershell_Parallel Processing_Powershell Core - Fatal编程技术网

如何使用Powershell Core并行处理安装?

如何使用Powershell Core并行处理安装?,powershell,parallel-processing,powershell-core,Powershell,Parallel Processing,Powershell Core,这是我在多个设备上逐个安装固件的脚本 Param( [参数(必需=$true)][string[]]$IPset, [参数(必需=$true)][字符串]$NewFirmwarePath ) $sp=$NewFirmwarePath-拆分“\\” $firmware=$sp[$sp.Length-1] foreach($IPset中的ip) { $uri=“http://”+$ip+“/xat?filename=“+$firmware 尝试 { 调用RestMethod-methodput-

这是我在多个设备上逐个安装固件的脚本

Param(
[参数(必需=$true)][string[]]$IPset,
[参数(必需=$true)][字符串]$NewFirmwarePath
)
$sp=$NewFirmwarePath-拆分“\\”
$firmware=$sp[$sp.Length-1]
foreach($IPset中的ip)
{  
$uri=“http://”+$ip+“/xat?filename=“+$firmware
尝试
{
调用RestMethod-methodput-Uri$Uri-infle$NewFirmwarePath
写入主机“设备IP:$IP”已成功更新”
}
抓住
{
写入主机“设备IP:$IP”更新失败
}
}
但我想让它在多个设备上并行安装固件。看起来Powershell核心不支持工作流(
foreach-parallel
)。所以我尝试了jobs,但是jobs在访问同一个源文件以在多个设备上安装时失败了


请帮助我如何使它并行工作

请使用作业显示您的代码,并描述其如何失败,包括错误消息。另外,不是
$sp=$NewFirmwarePath-split“\”$firmware=$sp[$sp.Length-1]
您只需执行
$firmware=Split Path-Path$NewFirmwarePath-Parent
即可。您可以执行
调用命令comp1、comp2、comp3{install}
,但文件必须在那里。@js2010似乎是通过HTTP将固件文件推送到设备来完成安装的,不是通过在设备本身上执行命令。感谢BACON和js2010的回复。是的,它通过推送tar文件来安装固件。以上脚本工作正常。我想并行运行它,我尝试使用core powershell中不支持的工作流,我尝试在调用cmd之前使用start jobs,它对1个设备成功运行,对其他设备失败。假设我通过了10个设备ip的ip集,rest失败,因为它们都试图访问相同的tar固件文件。您使用的PowerShell Core版本是什么?很明显,它曾经是,但它是一年前修好的。