使用 PowerShell 刪除虛擬網路閘道
如果您想要刪除 VPN 閘道組態的虛擬網路閘道,您可以採取幾種不同的方法。
如果您想要刪除所有內容並重頭開始 (例如使用測試環境的情況),您可以刪除資源群組。 刪除資源群組時,會一併刪除群組內的所有資源。 只有在您不想保留資源群組中的任何資源時,才建議使用此方法。 您無法使用這種方法,選擇性地只刪除一些資源。
如果您想要保留資源群組中的部分資源,刪除虛擬網路閘道會變得稍微複雜一點。 您必須先刪除任何相依於閘道的資源,才可以刪除虛擬網路閘道。 您遵循的步驟取決於您所建立的連線類型以及每個連線的相依資源。
刪除站對站 VPN 閘道
若要刪除 S2S 組態的虛擬網路閘道,您必須先刪除虛擬網路閘道的每個相關資源。 由於相依性,您必須依照特定順序刪除資源。 在下面的範例中,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰
- VNet 名稱︰VNet1
- 資源群組名稱:TestRG1
- 虛擬網路閘道名稱:VNet1GW
取得您想要刪除的虛擬網路閘道。
$GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
查看虛擬網路閘道是否有任何連線。
get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id} $Conns=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
刪除所有連線。 系統可能會提示您確認刪除每個連線。
$Conns | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName}
刪除虛擬網路閘道。 系統可能會提示您確認刪除閘道。 如果除了 S2S 組態,您還擁有此 VNet 適用的 P2S 組態,刪除虛擬網路閘道將自動中斷連接所有的 P2S 用戶端,而不會發出任何警告。
Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。
若要刪除區域網路閘道,請先取得對應區域網路閘道的清單。
$LNG=Get-AzLocalNetworkGateway -ResourceGroupName "TestRG1" | where-object {$_.Id -In $Conns.LocalNetworkGateway2.Id}
接下來,刪除區域網路閘道。 系統可能會提示您確認刪除每個區域網路閘道。
$LNG | ForEach-Object {Remove-AzLocalNetworkGateway -Name $_.Name -ResourceGroupName $_.ResourceGroupName}
若要刪除公用 IP 位址資源,請先取得虛擬網路閘道的 IP 組態。
$GWIpConfigs = $Gateway.IpConfigurations
接下來,取得用於此虛擬網路閘道的公用 IP 位址資源清單。 如果虛擬網路閘道為主動-主動,您會看到兩個公用 IP 位址。
$PubIP=Get-AzPublicIpAddress | where-object {$_.Id -In $GWIpConfigs.PublicIpAddress.Id}
刪除公用 IP 資源。
$PubIP | foreach-object {remove-AzpublicIpAddress -Name $_.Name -ResourceGroupName "TestRG1"}
刪除閘道子網路並設定組態。
$GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" Set-AzVirtualNetwork -VirtualNetwork $GWSub
刪除 VNet 對 VNet VPN 閘道
若要刪除 V2V 組態的虛擬網路閘道,您必須先刪除虛擬網路閘道的每個相關資源。 由於相依性,您必須依照特定順序刪除資源。 在下面的範例中,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰
- VNet 名稱︰VNet1
- 資源群組名稱:TestRG1
- 虛擬網路閘道名稱:VNet1GW
取得您想要刪除的虛擬網路閘道。
$GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
查看虛擬網路閘道是否有任何連線。
get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
可能屬於不同的資源群組的其他連線至虛擬網路閘道。 檢查其他每個資源群組中的其他連線。 在此範例中,我們會檢查來自 RG2 的連線。 針對可能連線至虛擬網路閘道的每個資源群組,執行此作業。
get-Azvirtualnetworkgatewayconnection -ResourceGroupName "RG2" | where-object {$_.VirtualNetworkGateway2.Id -eq $GW.Id}
取得雙向連線清單。 因為這是 VNet 對 VNet 組態,所以您需要雙向連線清單。
$ConnsL=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
在此範例中,我們會檢查來自 RG2 的連線。 針對可能連線至虛擬網路閘道的每個資源群組,執行此作業。
$ConnsR=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "<NameOfResourceGroup2>" | where-object {$_.VirtualNetworkGateway2.Id -eq $GW.Id}
刪除所有連線。 系統可能會提示您確認刪除每個連線。
$ConnsL | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName} $ConnsR | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName}
刪除虛擬網路閘道。 系統可能會提示您確認刪除虛擬網路閘道。 如果除了 V2V 組態,您還擁有您 VNet 適用的 P2S 組態,刪除虛擬網路閘道將自動中斷連接所有的 P2S 用戶端,而不會發出任何警告。
Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。
若要刪除公用 IP 位址資源,請取得虛擬網路閘道的 IP 組態。
$GWIpConfigs = $Gateway.IpConfigurations
接下來,取得用於此虛擬網路閘道的公用 IP 位址資源清單。 如果虛擬網路閘道為主動-主動,您會看到兩個公用 IP 位址。
$PubIP=Get-AzPublicIpAddress | where-object {$_.Id -In $GWIpConfigs.PublicIpAddress.Id}
刪除公用 IP 資源。 系統可能會提示您確認刪除公用 IP。
$PubIP | foreach-object {remove-AzpublicIpAddress -Name $_.Name -ResourceGroupName "<NameOfResourceGroup1>"}
刪除閘道子網路並設定組態。
$GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" Set-AzVirtualNetwork -VirtualNetwork $GWSub
刪除點對站 VPN 閘道
若要刪除 P2S 組態的虛擬網路閘道,您必須先刪除每個與虛擬網路閘道相關的資源。 由於相依性,您必須依照特定順序刪除資源。 當您使用下面的範例時,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰
- VNet 名稱︰VNet1
- 資源群組名稱:TestRG1
- 虛擬網路閘道名稱:VNet1GW
注意
當您刪除 VPN 閘道時,將中斷所有已連接用戶端與 VNet 的連接,而不會發出任何警告。
取得您想要刪除的虛擬網路閘道。
GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
刪除虛擬網路閘道。 系統可能會提示您確認刪除虛擬網路閘道。
Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。
若要刪除公用 IP 位址資源,請先取得虛擬網路閘道的 IP 組態。
$GWIpConfigs = $Gateway.IpConfigurations
接下來,取得用於此虛擬網路閘道的公用 IP 位址清單。 如果虛擬網路閘道為主動-主動,您會看到兩個公用 IP 位址。
$PubIP=Get-AzPublicIpAddress | where-object {$_.Id -In $GWIpConfigs.PublicIpAddress.Id}
刪除公用 IP。 系統可能會提示您確認刪除公用 IP。
$PubIP | foreach-object {remove-AzpublicIpAddress -Name $_.Name -ResourceGroupName "<NameOfResourceGroup1>"}
刪除閘道子網路並設定組態。
$GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" Set-AzVirtualNetwork -VirtualNetwork $GWSub
藉由刪除資源群組來刪除 VPN 閘道
如果您不在乎保留資源群組中任何資源,而只想要從頭開始,您可以刪除整個資源群組。 這是移除所有項目的快速方法。
取得訂用帳戶中的所有資源群組。
Get-AzResourceGroup
找出您想要刪除的資源群組。
找出您想要刪除的資源群組,並檢視該資源群組中的資源清單。 在此範例中,資源群組的名稱為 TestRG1。 修改範例,以擷取所有資源的清單。
Find-AzResource -ResourceGroupNameContains TestRG1
確認清單中的資源。
清單傳回後,請加以檢閱,確認您想要刪除資源群組中的所有資源,以及資源群組本身。 如果您想要保留資源群組中的某些資源,請使用本文先前小節中的步驟來刪除您的閘道。
刪除資源群組和資源。 若要刪除資源群組和資源群組內含的所有資源,請修改範例並執行。
Remove-AzResourceGroup -Name TestRG1
檢查狀態。 Azure 需花一些時間刪除所有資源。 您可以使用 Cmdlet 檢查資源群組的狀態。
Get-AzResourceGroup -ResourceGroupName TestRG1
傳回的結果顯示「成功」。
ResourceGroupName : TestRG1 Location : eastus ProvisioningState : Succeeded
下一步
如需常見問題資訊,請參閱 Azure VPN 閘道常見問題集。