You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Azure PowerShell并行重启VM时的会话未初始化错误

解决PowerShell Workflow并行重启Azure VM时的会话初始化错误

错误原因

PowerShell Workflow的Foreach -Parallel会为每个并行任务创建独立的运行空间,外部通过Connect-AzAccount建立的Azure会话不会自动同步到这些子运行空间里,导致并行块内没有有效的Azure上下文,从而触发该错误。

解决方案

方案1:在Workflow并行块内传递并设置Azure上下文

把外部的Azure上下文传递到Workflow中,在每个并行任务里重新设置上下文:

Workflow TestParallel {
    param(
        [Parameter(Mandatory=$true)]
        [string[]]$VmNames,
        [Parameter(Mandatory=$true)]
        [Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext]$AzContext
    )

    Foreach -Parallel ($vm in $VmNames) {
        # 确保并行运行空间加载Az.Compute模块
        Import-Module Az.Compute -ErrorAction Stop
        # 传入并设置Azure上下文
        Set-AzContext -Context $AzContext -ErrorAction Stop
        # 执行VM重启
        Restart-AzVM -Name $vm -ResourceGroupName "你的资源组名称" -Force
    }
}

# 外部初始化流程
Connect-AzAccount -Subscription "你的订阅ID或名称"
$currentAzContext = Get-AzContext
# 从Excel加载VM列表(示例,根据你的实际读取方式调整)
$vmList = (Import-Csv -Path "VM列表.csv").VMName 

# 调用Workflow执行并行重启
TestParallel -VmNames $vmList -AzContext $currentAzContext

方案2:改用PowerShell 7+的ForEach-Object -Parallel(推荐)

PowerShell Workflow是旧有技术,PowerShell 7及以上版本的ForEach-Object -Parallel更简洁,上下文传递更顺畅:

# 初始化Azure会话
Connect-AzAccount -Subscription "你的订阅ID或名称"
$currentAzContext = Get-AzContext

# 从Excel加载VM列表(这里用ImportExcel模块,需先安装:Install-Module -Name ImportExcel -Scope CurrentUser)
$vmList = Import-Excel -Path "VM数据.xlsx" | Select-Object -ExpandProperty VMName

# 并行执行VM重启,控制并发数避免API限流
$vmList | ForEach-Object -Parallel {
    # 通过$using:关键字引用外部的上下文变量
    $azContext = $using:currentAzContext
    Set-AzContext -Context $azContext -ErrorAction Stop
    Restart-AzVM -Name $_ -ResourceGroupName "你的资源组名称" -Force
} -ThrottleLimit 10

注意事项

  • 确保Az模块是最新版本:执行Update-Module -Name Az更新
  • 并行任务的ThrottleLimit不要设置过高,建议10-20之间,避免触发Azure API请求限制
  • 如果读取Excel遇到问题,可根据实际情况用Import-Csv(将Excel另存为CSV)或ImportExcel模块

内容的提问来源于stack exchange,提问作者akhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:45:37