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

使用New-AzConfigurationAssignment设置Azure更新管理器订阅级动态范围失败求助

解决PowerShell创建订阅级VM维护配置动态范围分配失败的问题

问题重现

尝试为VM的InGuestPatching维护配置设置订阅级动态范围分配时,执行New-AzConfigurationAssignment cmdlet失败。原代码如下:

原代码

Import-Module Az.Accounts
Import-Module Az.Resources
Import-Module Az.Compute
Import-Module Az.Automation
Import-Module Az.Storage
Import-Module Az.KeyVault
Import-Module Az.Maintenance
Import-Module Az.Compute  

Set-AzContext -Subscription ""

$maintenanceconfig =  New-AzMaintenanceConfiguration -ResourceGroup $RGName -Name $configName -MaintenanceScope $scope -Location $location -StartDateTime $startDateTime -TimeZone $timeZone -Duration $duration -RecurEvery $recurEvery -WindowParameterClassificationToInclude $WindowsParameterClassificationToInclude -InstallPatchRebootSetting $RebootOption -ExtensionProperty @{"InGuestPatchMode"="User"}     

New-AzConfigurationAssignment -ConfigurationAssignmentName $maintenanceconfig.Name -MaintenanceConfigurationId $maintenanceconfig.Id -ProviderName Microsoft.Compute -ResourceType virtualMachines -FilterLocation eastus2 -FilterOsType Windows -FilterOperator "Any" -FilterTag '{"network_environment" : ["sb"]}'

核心错误原因

  1. 未指定订阅级范围:New-AzConfigurationAssignment默认针对资源组级资源,订阅级分配必须显式声明-Scope参数。
  2. FilterTag格式错误:cmdlet要求传入哈希表数组而非JSON字符串,原格式无法被正确解析。
  3. 重复模块导入:重复导入Az.Compute可能引发潜在冲突。

修正后的完整代码

# 导入必要模块(移除重复导入)
Import-Module Az.Accounts, Az.Resources, Az.Compute, Az.Automation, Az.Storage, Az.KeyVault, Az.Maintenance

# 设置目标订阅(替换为你的订阅ID)
$subscriptionId = "your-subscription-id"
Set-AzContext -Subscription $subscriptionId

# 创建维护配置(保留原有逻辑,确保变量已正确赋值)
$maintenanceconfig = New-AzMaintenanceConfiguration -ResourceGroup $RGName -Name $configName `
    -MaintenanceScope $scope -Location $location -StartDateTime $startDateTime `
    -TimeZone $timeZone -Duration $duration -RecurEvery $recurEvery `
    -WindowParameterClassificationToInclude $WindowsParameterClassificationToInclude `
    -InstallPatchRebootSetting $RebootOption `
    -ExtensionProperty @{"InGuestPatchMode"="User"}

# 创建订阅级动态范围配置分配
New-AzConfigurationAssignment -Scope "/subscriptions/$subscriptionId" `
    -ConfigurationAssignmentName $maintenanceconfig.Name `
    -MaintenanceConfigurationId $maintenanceconfig.Id `
    -ProviderName "Microsoft.Compute" `
    -ResourceType "virtualMachines" `
    -FilterLocation "eastus2" `
    -FilterOsType "Windows" `
    -FilterOperator "Any" `
    -FilterTag @(@{Name="network_environment"; Values=@("sb")})

关键参数说明

  • -Scope "/subscriptions/$subscriptionId":明确指定订阅级范围,是创建跨资源组动态分配的必填项。
  • -FilterTag @(@{Name="network_environment"; Values=@("sb")}):改用PowerShell原生哈希表数组格式,符合cmdlet参数校验要求。
  • 确保所有占位变量(如$RGName、$configName)已提前赋值且有效。

验证步骤

  1. 执行Get-AzMaintenanceConfiguration -ResourceGroup $RGName -Name $configName确认维护配置存在。
  2. 检查账号权限:确保拥有Microsoft.Maintenance/configurationAssignments/write订阅级权限。
  3. 验证过滤条件:确认订阅内存在符合区域、系统、标签要求的VM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 07:27:36