如何让Get-AzureRmResource仅返回Azure门户中存在的资源?
解决Get-AzureRmResource返回已删除资源的问题
Get-AzureRmResource默认会包含处于软删除状态的资源,这类资源在Azure门户中不可见,但后台仍保留一段时间。要仅获取门户中当前存在的资源,可通过过滤资源的ProvisioningState属性实现:
- 通用过滤方法:只保留部署状态为
Succeeded的资源,已删除或部署失败的资源状态通常为Deleted、Failed等:
Get-AzureRmResource | Where-Object { $_.ProvisioningState -eq 'Succeeded' }
- 若遇到特定资源类型(如存储账户)仍有软删除条目,可针对该资源的专属属性过滤(以存储账户为例):
Get-AzureRmStorageAccount | Where-Object { $_.StorageAccountPropertiesDeleteStatus -eq 'NotDeleted' }
注意:AzureRM模块已被官方弃用,建议迁移至Az模块,对应命令为
Get-AzResource,过滤逻辑完全一致:Get-AzResource | Where-Object { $_.ProvisioningState -eq 'Succeeded' }
内容的提问来源于stack exchange,提问作者user961
相关产品推荐
相关产品推荐

