Get-AzVM返回两类对象差异及更新VM托管身份类型转换报错问题
问题解决与对象区别说明
错误原因及修复命令
你执行的Get-AzVM命令添加了-Status参数,返回的是PSVirtualMachineInstanceView类型对象,但Update-AzVM要求传入PSVirtualMachine类型对象,因此触发类型转换错误。
修复后的命令:
$Vm = Get-AzVM -Name $vm_name -ResourceGroupName $rg Update-AzVM -ResourceGroupName $rg -VM $vm -IdentityType SystemAssigned
去掉-Status参数后,Get-AzVM默认返回PSVirtualMachine对象,可正常传递给Update-AzVM完成系统分配托管身份的配置。
两个对象的核心区别
- PSVirtualMachine:存储虚拟机的静态配置属性,包含硬件规格、操作系统设置、网络配置、身份信息等可修改的配置项,是用于创建、更新虚拟机的核心操作对象。
- PSVirtualMachineInstanceView:存储虚拟机的实时运行状态,涵盖电源状态、磁盘健康状况、扩展运行状态、最近故障事件等只读的运行数据,仅用于查看虚拟机当前的运行情况,无法用于修改配置。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

