如何通过单条命令批量删除Azure Resource Group中的所有Public IP Addresses
批量删除Azure资源组中所有公网IP的单条命令方案
嘿,刚好能帮你解决这个批量删除的需求!不管你用Azure CLI还是Azure PowerShell,都可以用单条命令搞定,不用一个个手动删。下面给你详细的操作方法:
Azure CLI 方案
直接用这条命令,把<你的资源组名称>替换成实际的资源组名就行:
az network public-ip delete --ids $(az network public-ip list --resource-group <你的资源组名称> --query "[].id" -o tsv)
命令拆解:
az network public-ip list --resource-group <你的资源组名称>:列出目标资源组里的所有公网IP资源--query "[].id" -o tsv:只提取每个公网IP的唯一ID,并且用制表符分隔的格式输出,方便后续命令读取$(...):把前面命令的输出作为参数传给az network public-ip delete的--ids选项,实现批量删除
Azure PowerShell 方案
如果你习惯用PowerShell,这条单命令同样可行:
Get-AzPublicIpAddress -ResourceGroupName <你的资源组名称> | Remove-AzPublicIpAddress -Force
命令拆解:
Get-AzPublicIpAddress -ResourceGroupName <你的资源组名称>:获取目标资源组下的所有公网IP对象| Remove-AzPublicIpAddress -Force:通过管道把所有IP对象传给删除命令,-Force参数会跳过确认提示,直接执行删除
重要注意事项
- 先检查依赖关系:如果公网IP还被虚拟机、负载均衡器等资源关联着,直接删除会失败。你可以先用这条命令查看哪些IP有依赖:
# CLI版本 az network public-ip list --resource-group <你的资源组名称> --query "[].{Name:name, AssociatedWith:ipConfiguration.id}" -o table# PowerShell版本 Get-AzPublicIpAddress -ResourceGroupName <你的资源组名称> | Select-Object Name, IpConfiguration - 确认登录与订阅:执行命令前要确保已经登录Azure工具,并且切换到了正确的订阅:
# CLI登录并切换订阅 az login az account set --subscription <订阅ID/名称># PowerShell登录并切换订阅 Connect-AzAccount Set-AzContext -Subscription <订阅ID/名称>
内容的提问来源于stack exchange,提问作者Vatan Bansal
相关产品推荐
相关产品推荐

