Bicep脚本中已弃用Windows Server镜像的解决及镜像查看方法
解决Azure平台镜像弃用问题(ImageVersionDeprecated)
你遇到的是Windows Server 2019 Datacenter旧版本镜像弃用的问题,下面是具体的解决步骤:
一、验证指定区域的镜像可用性
要确认uksouth区域是否有可用的Windows Server 2019 Datacenter镜像,以及获取最新版本号,可以用Azure CLI或PowerShell执行以下命令:
Azure CLI命令
获取该镜像SKU的所有可用版本:
az vm image list --location uksouth --publisher MicrosoftWindowsServer --offer WindowsServer --sku 2019-Datacenter --output table
直接获取最新版本:
az vm image list --location uksouth --publisher MicrosoftWindowsServer --offer WindowsServer --sku 2019-Datacenter --latest --output table
PowerShell命令
Get-AzVMImage -Location uksouth -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2019-Datacenter
执行后会返回该区域内所有可用的镜像版本,包括最新版的版本号和ID。
二、修正Bicep脚本中的镜像引用
方案1:使用latest版本(自动获取最新可用镜像)
你尝试用latest替换具体版本号的方法是有效的,Azure会自动将latest解析为当前该SKU在指定区域的最新可用版本。修正后的imageReference部分如下:
imageReference: { id: '/Subscriptions/xxx/Providers/Microsoft.Compute/Locations/uksouth/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2019-Datacenter/Versions/latest' }
注意:使用latest会让每次部署都用最新版本,如果你需要固定版本以确保部署一致性,建议用方案2。
方案2:使用具体的最新版本号
将第一步获取到的最新版本号替换到镜像ID中,比如假设最新版本是17763.5329.240216,则:
imageReference: { id: '/Subscriptions/xxx/Providers/Microsoft.Compute/Locations/uksouth/Publishers/MicrosoftWindowsServer/ArtifactTypes/VMImage/Offers/WindowsServer/Skus/2019-Datacenter/Versions/17763.5329.240216' }
另外注意:你的脚本中diskState设为'Attached'可能会导致创建失败,因为创建磁盘时默认应该是'Unattached',待磁盘创建完成后再附加到VM,建议将该字段改为'Unattached'。
三、创建自定义镜像(如果需要保留原有VM环境)
如果你的需求是复刻原有VM的系统环境,而不是用全新的官方镜像,可以从现有VM创建自定义镜像:
- 对现有VM执行sysprep通用化操作(Windows系统);
- 在Azure门户或用CLI/PowerShell捕获该VM为自定义镜像;
- 在Bicep中引用自定义镜像的ID,示例:
imageReference: { id: '/subscriptions/xxx/resourceGroups/my-rg/providers/Microsoft.Compute/images/my-custom-win2019-image' }
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

