Поделиться через


Удаление шлюза виртуальной сети с помощью PowerShell

Существует несколько различных подходов, которые можно предпринять при удалении шлюза виртуальной сети для конфигурации VPN-шлюза.

  • Если вы хотите удалить все и начать, как в случае тестовой среды, можно удалить группу ресурсов. При удалении группы ресурсов удаляются все ресурсы в этой группе. Этот метод рекомендуется использовать только в том случае, если вы не хотите хранить какие-либо ресурсы в группе ресурсов. При таком подходе невозможно выборочно удалить только некоторые из ресурсов.

  • Если вы хотите сохранить некоторые ресурсы в группе ресурсов, то удаление шлюза виртуальной сети немного усложняется. Прежде чем удалить шлюз виртуальной сети, необходимо удалить все ресурсы, зависящие от него. Выполняемые действия зависят от типа подключений, которые были созданы, и зависимых ресурсов для каждого подключения.

Удалить межсетевой VPN-шлюз

Чтобы удалить шлюз виртуальной сети для конфигурации S2S, необходимо сначала удалить каждый ресурс, относящийся к шлюзу виртуальной сети. Ресурсы должны быть удалены в определенном порядке из-за зависимостей. В следующих примерах необходимо указать некоторые значения, а другие значения являются результатом вывода. Для демонстрационных целей мы используем следующие конкретные значения в примерах:

  • Имя виртуальной сети: 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, в этой виртуальной сети есть конфигурация 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
    

Удаление VPN-шлюза между виртуальными сетями

Чтобы удалить шлюз виртуальной сети для конфигурации V2V, необходимо сначала удалить каждый ресурс, относящийся к шлюзу виртуальной сети. Ресурсы должны быть удалены в определенном порядке из-за зависимостей. В следующих примерах необходимо указать некоторые значения, а другие значения являются результатом вывода. Для демонстрационных целей мы используем следующие конкретные значения в примерах:

  • Имя виртуальной сети: 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. Получение списка подключений в обоих направлениях. Так как это конфигурация виртуальной сети — виртуальная сеть, вам потребуется список подключений в обоих направлениях.

    $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. Удалите шлюз виртуальной сети. Возможно, вам будет предложено подтвердить удаление шлюза виртуальной сети. Если у вас есть конфигурации P2S в виртуальных сетях в дополнение к конфигурации V2V, удаление шлюзов виртуальной сети автоматически отключит все клиенты 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, необходимо сначала удалить каждый ресурс, относящийся к шлюзу виртуальной сети. Ресурсы должны быть удалены в определенном порядке из-за зависимостей. При работе с приведенными ниже примерами необходимо указать некоторые значения, а другие значения являются результатом вывода. Для демонстрационных целей мы используем следующие конкретные значения в примерах:

  • Имя виртуальной сети: VNet1
  • Имя группы ресурсов: TestRG1
  • Имя шлюза виртуальной сети: VNet1GW

Примечание.

При удалении VPN-шлюза все подключенные клиенты будут отключены от виртуальной сети без предупреждения.

  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 потребуется некоторое время. Вы можете проверить состояние группы ресурсов с помощью этого командлета.

    Get-AzResourceGroup -ResourceGroupName TestRG1
    

    Результат, возвращенный, показывает "Успешно".

    ResourceGroupName : TestRG1
    Location          : eastus
    ProvisioningState : Succeeded
    

Дальнейшие действия

Для получения информации из раздела часто задаваемых вопросов см. Часто задаваемые вопросы о VPN-шлюзе Azure.