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

使用PowerShell创建Azure虚拟机时遇安全类型不匹配错误

问题分析与解决

错误的核心原因是你创建的母镜像没有继承原VM的TrustedLaunch安全类型配置,导致新VM设置TrustedLaunch安全类型后,磁盘的安全类型与源镜像不匹配,触发冲突报错。

原镜像创建代码仅复制了OS磁盘ID,但未将原VM的安全配置(SecurityProfile)同步到镜像配置中,生成的镜像默认无安全类型标记,与新VM的TrustedLaunch要求不兼容。

修复步骤

1. 修改镜像创建代码,同步安全配置

在创建$masterImageConfig后,添加Set-AzImageSecurityProfile命令,将原VM的安全类型同步到镜像:

$randomInt = Get-Random -Minimum 1000 -Maximum 9999
$masterVM = Get-AzVM -ResourceGroupName $rgName -Name $masterNameVM
$masterImageName = "MASTER-IMAGE-" + (Get-Date -Format 'dd-MM-yy') + "-" + $randomInt
$masterImageConfig = New-AzImageConfig -Location $location -HyperVgeneration "V2" 

# 新增:同步原VM的安全配置到镜像
$masterImageConfig = Set-AzImageSecurityProfile -Image $masterImageConfig -SecurityType $masterVM.SecurityProfile.SecurityType

$masterImageConfig = Set-AzImageOsDisk -Image $masterImageConfig -OsState "Generalized" -OsType "Windows" -ManagedDiskId $masterVM.StorageProfile.OsDisk.ManagedDisk.Id
$masterImage = New-AzImage -ImageName $masterImageName -ResourceGroupName $rgName -Image $masterImageConfig

2. (可选)简化新VM创建代码

当镜像已包含TrustedLaunch配置时,新VM创建可省略部分重复配置(非必须,但更简洁):

  • 无需手动设置Set-AzVmUefi,镜像的Hyper-V Generation为V2且安全类型为TrustedLaunch时,会自动继承相关UEFI设置
  • 无需手动设置Set-AzVMSecurityProfile,从镜像创建VM时会自动继承安全类型

简化后的新VM创建代码片段:

$tmpConfig = New-AzVMConfig -VMName "$tmpName-Vm" -VMSize $masterVM.HardwareProfile.Vmsize
$tmpConfig = Set-AzVMOperatingSystem -VM $tmpConfig -Windows -ComputerName $tmpName -Credential $creds -ProvisionVMAgent -EnableAutoUpdate
$tmpConfig = Add-AzVMNetworkInterface -VM $tmpConfig -Id $nic.Id
$tmpConfig = Set-AzVMSourceImage -VM $tmpConfig -Id $masterImage.Id
$tmpConfig = Set-AzVMOSDisk -VM $tmpConfig -Name "$tmpName-OsDisk" -Caching "ReadWrite" -CreateOption "FromImage" -Windows

New-AzVM -ResourceGroupName $rgName -Location $location -VM $tmpConfig -Verbose -Zone $masterVM.Zones 

3. 验证修复效果

创建新镜像后,可通过以下命令检查镜像的安全类型是否为TrustedLaunch:

Get-AzImage -ResourceGroupName $rgName -ImageName $masterImageName | Select-Object Name, SecurityProfile

确认镜像安全类型正确后,执行新VM创建脚本即可解决报错。

内容的提问来源于stack exchange,提问作者Sénéchal Julien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:07:12