使用PowerShell脚本启用Azure预留实例自动续订的技术求助
Azure预留实例自动续订PowerShell脚本及配置步骤
问题分析
你之前的脚本失效,核心原因是Set-AzReservation cmdlet并不支持直接通过-Renew参数启用自动续订,Azure预留实例的自动续订需要通过更新预留的属性配置来实现。
可用脚本示例
以下是可批量检查并启用所有预留实例自动续订的PowerShell脚本:
# 登录Azure账户(未登录时执行) Connect-AzAccount # 获取当前订阅下的所有预留实例 $reservations = Get-AzReservation foreach ($reservation in $reservations) { $reservationId = $reservation.Id $reservationName = $reservation.Name # 获取预留实例的详细配置,包含自动续订状态 $reservationDetails = Get-AzReservation -ReservationId $reservationId $currentAutoRenew = $reservationDetails.Properties.RenewProperties.IsAutoRenew if ($currentAutoRenew -eq $true) { Write-Host "[$reservationName] 自动续订已启用,无需操作" continue } # 构建自动续订配置 $renewConfig = @{ IsAutoRenew = $true # 可选:自定义续订期限,默认与原预留一致,可选值为P1Y(1年)/P3Y(3年) # Term = "P1Y" } # 更新预留实例的自动续订设置 try { Set-AzReservation -ReservationId $reservationId -Properties $renewConfig Write-Host "[$reservationName] 自动续订已成功启用" } catch { Write-Host "[$reservationName] 启用自动续订失败:$($_.Exception.Message)" } }
使用步骤
- 步骤1:安装并导入Azure预留模块
确保已安装最新版Az.Reservations模块:Install-Module -Name Az.Reservations -Force -AllowClobber Import-Module Az.Reservations - 步骤2:登录Azure账户
运行Connect-AzAccount,按提示完成登录,确保账户拥有Reservation Contributor或更高权限。 - 步骤3:执行脚本
直接运行上述脚本,脚本会自动遍历所有预留实例,检查并启用自动续订。 - 步骤4:验证配置结果
可通过以下命令查看所有预留的自动续订状态:Get-AzReservation | Select-Object Name, @{Name="AutoRenewStatus"; Expression={$_.Properties.RenewProperties.IsAutoRenew}}
注意事项
- 自动续订默认沿用原预留的计费方式、实例数量和期限,如需修改可在
$renewConfig中添加对应参数。 - 跨订阅操作需先切换目标订阅:
Set-AzContext -SubscriptionId <目标订阅ID>。 - 若遇到权限报错,需检查账户是否被授予对应订阅的预留管理权限。
内容的提问来源于stack exchange,提问作者niket singh
相关产品推荐
相关产品推荐

