如何使用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版本是什么?很明显,它曾经是,但它是一年前修好的。