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

如何从Azure经典VM分离经典NSG?无法分离需删VM吗?

从Azure经典VM分离经典NSG & 删除NSG解决方案

这个问题我之前帮不少用户处理过,经典模式下的NSG和VM关联确实比ARM模式麻烦很多——Portal里甚至找不到直接的分离按钮,只能靠PowerShell或者经典CLI来操作,而且完全不需要删除VM就能搞定NSG的删除问题,别慌!

一、分离经典NSG与VM的操作步骤

经典NSG其实是绑定在VM的**网络接口(NIC)**上的,不是直接关联VM本身,所以我们要操作的核心是NIC:

方法1:使用Azure经典PowerShell模块

先确保你安装了Azure经典PowerShell模块(不是Az模块哦),然后按以下步骤执行:

  1. 登录经典Azure账户:
    Add-AzureAccount
    
  2. 切换到你的目标订阅:
    Select-AzureSubscription -SubscriptionName "你的订阅名称"
    
  3. 获取VM的NIC信息:
    $vm = Get-AzureVM -ServiceName "你的云服务名称" -Name "VM名称"
    $nic = $vm.NetworkInterfaces[0]
    
    如果VM有多个NIC,调整索引数字(比如[1])选对应的那个接口。
  4. 移除NIC上的NSG关联:
    Set-AzureNetworkInterfaceConfig -NetworkInterface $nic -NetworkSecurityGroupName ""
    
  5. 把更改同步到VM:
    Update-AzureVM -ServiceName "你的云服务名称" -Name "VM名称" -VM $vm
    
    执行完这步,NSG就和VM彻底解绑了。

方法2:使用Azure经典CLI

如果你习惯用命令行,切换到经典模式操作:

  1. 登录Azure并切换到经典模式:
    azure login
    azure config mode asm
    
  2. 获取VM的NIC ID(或者名称,通常是VM名称-NIC-0格式):
    azure vm show "云服务名称" "VM名称" --json | grep -o '"id": "[^"]*"'
    
    (没有grep的话直接看输出找networkInterfaces里的id字段即可)
  3. 解除NIC与NSG的关联:
    azure network nic set "NIC名称/ID" --network-security-group ""
    

二、删除经典NSG的注意事项

如果删除NSG时提示“仍与资源关联”,大概率是漏了解绑子网这类关联资源,先检查所有绑定关系:

# PowerShell查看NSG的所有关联资源
Get-AzureNetworkSecurityGroup -Name "NSG名称" | Select-Object -ExpandProperty AssociatedSubnets, AssociatedEndpoints

或者用CLI:

# CLI查看NSG的所有关联资源
azure network nsg show "NSG名称" --json | jq '.associatedSubnets, .associatedEndpoints'

把所有关联的子网、端点都解绑后,就可以正常删除NSG了:

# PowerShell删除NSG
Remove-AzureNetworkSecurityGroup -Name "NSG名称"
# CLI删除NSG
azure network nsg delete "NSG名称"

内容的提问来源于stack exchange,提问作者nicolamarangoni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:16:20