共用方式為


使用 PowerShell 刪除虛擬網路閘道

如果您想要刪除 VPN 閘道組態的虛擬網路閘道,您可以採取幾種不同的方法。

  • 如果您想要刪除所有內容並重頭開始 (例如使用測試環境的情況),您可以刪除資源群組。 刪除資源群組時,會一併刪除群組內的所有資源。 只有在您不想保留資源群組中的任何資源時,才建議使用此方法。 您無法使用這種方法,選擇性地只刪除一些資源。

  • 如果您想要保留資源群組中的部分資源,刪除虛擬網路閘道會變得稍微複雜一點。 您必須先刪除任何相依於閘道的資源,才可以刪除虛擬網路閘道。 您遵循的步驟取決於您所建立的連線類型以及每個連線的相依資源。

刪除站對站 VPN 閘道

若要刪除 S2S 組態的虛擬網路閘道,您必須先刪除虛擬網路閘道的每個相關資源。 由於相依性,您必須依照特定順序刪除資源。 在下面的範例中,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰

  • VNet 名稱︰VNet1
  • 資源群組名稱:TestRG1
  • 虛擬網路閘道名稱:VNet1GW
  1. 取得您想要刪除的虛擬網路閘道。

    $GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. 查看虛擬網路閘道是否有任何連線。

    get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
    $Conns=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
    
  3. 刪除所有連線。 系統可能會提示您確認刪除每個連線。

    $Conns | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName}
    
  4. 刪除虛擬網路閘道。 系統可能會提示您確認刪除閘道。 如果除了 S2S 組態,您還擁有此 VNet 適用的 P2S 組態,刪除虛擬網路閘道將自動中斷連接所有的 P2S 用戶端,而不會發出任何警告。

    Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    

    此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。

  5. 若要刪除區域網路閘道,請先取得對應區域網路閘道的清單。

    $LNG=Get-AzLocalNetworkGateway -ResourceGroupName "TestRG1" | where-object {$_.Id -In $Conns.LocalNetworkGateway2.Id}
    

    接下來,刪除區域網路閘道。 系統可能會提示您確認刪除每個區域網路閘道。

    $LNG | ForEach-Object {Remove-AzLocalNetworkGateway -Name $_.Name -ResourceGroupName $_.ResourceGroupName}
    
  6. 若要刪除公用 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"}
    
  7. 刪除閘道子網路並設定組態。

    $GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet"
    Set-AzVirtualNetwork -VirtualNetwork $GWSub
    

刪除 VNet 對 VNet VPN 閘道

若要刪除 V2V 組態的虛擬網路閘道,您必須先刪除虛擬網路閘道的每個相關資源。 由於相依性,您必須依照特定順序刪除資源。 在下面的範例中,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰

  • VNet 名稱︰VNet1
  • 資源群組名稱:TestRG1
  • 虛擬網路閘道名稱:VNet1GW
  1. 取得您想要刪除的虛擬網路閘道。

    $GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. 查看虛擬網路閘道是否有任何連線。

    get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
    
  3. 可能屬於不同的資源群組的其他連線至虛擬網路閘道。 檢查其他每個資源群組中的其他連線。 在此範例中,我們會檢查來自 RG2 的連線。 針對可能連線至虛擬網路閘道的每個資源群組,執行此作業。

    get-Azvirtualnetworkgatewayconnection -ResourceGroupName "RG2" | where-object {$_.VirtualNetworkGateway2.Id -eq $GW.Id}
    
  4. 取得雙向連線清單。 因為這是 VNet 對 VNet 組態,所以您需要雙向連線清單。

    $ConnsL=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "TestRG1" | where-object {$_.VirtualNetworkGateway1.Id -eq $GW.Id}
    
  5. 在此範例中,我們會檢查來自 RG2 的連線。 針對可能連線至虛擬網路閘道的每個資源群組,執行此作業。

     $ConnsR=get-Azvirtualnetworkgatewayconnection -ResourceGroupName "<NameOfResourceGroup2>" | where-object {$_.VirtualNetworkGateway2.Id -eq $GW.Id}
    
  6. 刪除所有連線。 系統可能會提示您確認刪除每個連線。

    $ConnsL | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName}
    $ConnsR | ForEach-Object {Remove-AzVirtualNetworkGatewayConnection -Name $_.name -ResourceGroupName $_.ResourceGroupName}
    
  7. 刪除虛擬網路閘道。 系統可能會提示您確認刪除虛擬網路閘道。 如果除了 V2V 組態,您還擁有您 VNet 適用的 P2S 組態,刪除虛擬網路閘道將自動中斷連接所有的 P2S 用戶端,而不會發出任何警告。

    Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    

    此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。

  8. 若要刪除公用 IP 位址資源,請取得虛擬網路閘道的 IP 組態。

    $GWIpConfigs = $Gateway.IpConfigurations
    
  9. 接下來,取得用於此虛擬網路閘道的公用 IP 位址資源清單。 如果虛擬網路閘道為主動-主動,您會看到兩個公用 IP 位址。

    $PubIP=Get-AzPublicIpAddress | where-object {$_.Id -In $GWIpConfigs.PublicIpAddress.Id}
    
  10. 刪除公用 IP 資源。 系統可能會提示您確認刪除公用 IP。

    $PubIP | foreach-object {remove-AzpublicIpAddress -Name $_.Name -ResourceGroupName "<NameOfResourceGroup1>"}
    
  11. 刪除閘道子網路並設定組態。

    $GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet"
    Set-AzVirtualNetwork -VirtualNetwork $GWSub
    

刪除點對站 VPN 閘道

若要刪除 P2S 組態的虛擬網路閘道,您必須先刪除每個與虛擬網路閘道相關的資源。 由於相依性,您必須依照特定順序刪除資源。 當您使用下面的範例時,某些值必須特別指定,而其他值則為輸出結果。 我們在範例中使用下列特定值,做為示範之用︰

  • VNet 名稱︰VNet1
  • 資源群組名稱:TestRG1
  • 虛擬網路閘道名稱:VNet1GW

注意

當您刪除 VPN 閘道時,將中斷所有已連接用戶端與 VNet 的連接,而不會發出任何警告。

  1. 取得您想要刪除的虛擬網路閘道。

    GW=get-Azvirtualnetworkgateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    
  2. 刪除虛擬網路閘道。 系統可能會提示您確認刪除虛擬網路閘道。

    Remove-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1"
    

    此時,虛擬網路閘道已經刪除。 您可以使用後續步驟來刪除不再使用的任何資源。

  3. 若要刪除公用 IP 位址資源,請先取得虛擬網路閘道的 IP 組態。

    $GWIpConfigs = $Gateway.IpConfigurations
    

    接下來,取得用於此虛擬網路閘道的公用 IP 位址清單。 如果虛擬網路閘道為主動-主動,您會看到兩個公用 IP 位址。

    $PubIP=Get-AzPublicIpAddress | where-object {$_.Id -In $GWIpConfigs.PublicIpAddress.Id}
    
  4. 刪除公用 IP。 系統可能會提示您確認刪除公用 IP。

    $PubIP | foreach-object {remove-AzpublicIpAddress -Name $_.Name -ResourceGroupName "<NameOfResourceGroup1>"}
    
  5. 刪除閘道子網路並設定組態。

    $GWSub = Get-AzVirtualNetwork -ResourceGroupName "TestRG1" -Name "VNet1" | Remove-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet"
    Set-AzVirtualNetwork -VirtualNetwork $GWSub
    

藉由刪除資源群組來刪除 VPN 閘道

如果您不在乎保留資源群組中任何資源,而只想要從頭開始,您可以刪除整個資源群組。 這是移除所有項目的快速方法。

  1. 取得訂用帳戶中的所有資源群組。

    Get-AzResourceGroup
    
  2. 找出您想要刪除的資源群組。

    找出您想要刪除的資源群組,並檢視該資源群組中的資源清單。 在此範例中,資源群組的名稱為 TestRG1。 修改範例,以擷取所有資源的清單。

    Find-AzResource -ResourceGroupNameContains TestRG1
    
  3. 確認清單中的資源。

    清單傳回後,請加以檢閱,確認您想要刪除資源群組中的所有資源,以及資源群組本身。 如果您想要保留資源群組中的某些資源,請使用本文先前小節中的步驟來刪除您的閘道。

  4. 刪除資源群組和資源。 若要刪除資源群組和資源群組內含的所有資源,請修改範例並執行。

    Remove-AzResourceGroup -Name TestRG1
    
  5. 檢查狀態。 Azure 需花一些時間刪除所有資源。 您可以使用 Cmdlet 檢查資源群組的狀態。

    Get-AzResourceGroup -ResourceGroupName TestRG1
    

    傳回的結果顯示「成功」。

    ResourceGroupName : TestRG1
    Location          : eastus
    ProvisioningState : Succeeded
    

下一步

如需常見問題資訊,請參閱 Azure VPN 閘道常見問題集