Get-AzConnectedMachineExtension返回enableAutomaticUpgrade为True而非预期Null的问题
关于Azure Arc扩展
enableAutomaticUpgrade属性的问题解答 1. 确认Get-AzConnectedMachineExtension cmdlet的问题
是的,你遇到的现象确实是该cmdlet的问题。根据官方文档定义,IMachineExtension.EnableAutomaticUpgrade的Null值对应Azure门户中的“Not Supported”状态,但当扩展不支持自动升级时,该cmdlet却返回True——这是因为cmdlet内部将该属性默认值设为True,没有正确映射“不支持”对应的Null状态。你提到的Microsoft.Azure.AzureDefenderForServers.MDE.Windows扩展就是典型案例,提交GitHub issue是正确的反馈渠道。
2. 在PowerShell中识别“Not Supported”状态的方法
由于cmdlet返回值存在偏差,你可以通过以下方式准确识别扩展是否支持自动升级:
- 调用Azure ARM REST API获取原始属性:使用
Invoke-AzRestMethod直接调用ARM接口,能获取到未被cmdlet篡改的原始属性值,示例命令如下:$resourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HybridCompute/machines/{machineName}/extensions/{extensionName}" $response = Invoke-AzRestMethod -Method Get -Path $resourceId $extensionData = $response.Content | ConvertFrom-Json # 检查enableAutomaticUpgrade是否为Null if ($null -eq $extensionData.properties.enableAutomaticUpgrade) { Write-Host "该扩展不支持自动升级" } else { Write-Host "自动升级状态: $($extensionData.properties.enableAutomaticUpgrade)" } - 结合扩展类型与版本验证:部分扩展的自动升级支持情况可通过其类型和版本判断,你可以查阅对应扩展的官方文档,确认哪些版本不支持自动升级,再结合
Get-AzConnectedMachineExtension返回的TypeHandlerVersion字段进行筛选。
内容的提问来源于stack exchange,提问作者Yousef Imran
相关产品推荐
相关产品推荐

