Вопросы

Вывод подсетей Azure со ссылками на присоединенную виртуальную сеть, таблицу маршрутизации и NSG.

В настоящее время я работаю над сценарием, который дает мне выходные данные каждой подсети в подписке Azure со ссылками на виртуальную сеть, NSG и таблицу маршрутов. Имя таблицы маршрутов в настоящее время отсутствует в сценарии, но я хочу сосредоточиться на исправлении NSG прямо сейчас. Вот как выглядит мой скрипт:

$VNets = Get-AzVirtualNetwork
$NSG = Get-AzNetworkSecurityGroup
$VNets | ForEach-Object {
    $VNettemp = $_
    $result = $_.Subnets | Select-Object @{Label="Subnet Name";Expression={$_.Name}},@{Label="Subnet";Expression={$_.AddressPrefix}}
    $_ | ForEach-Object {
        $result | Add-Member -Name "VNet Name" -Value $_.Name -MemberType NoteProperty
    }
    if ($_.Subnets.NetworksecurityGroup -ne "null"){
        $NSG | ForEach-Object{
            if ($VNettemp.Subnets.Id -contains $_.Subnets.Id ){
                $result | Add-Member -Name "NSG Name" -Value $_.name -MemberType NoteProperty -Force
            }
        }

    }
return $result
}

Результат выглядит так:

Subnet Name             Subnet        VNet Name       NSG Name           
-----------             ------        ---------       --------           
default-subnet          10.10.10.0/28 vnet-ine-test   test-nsg           
vnet-ine-test-snet-test 10.10.0.0/24  vnet-ine-test   test-nsg           
default                 10.0.0.0/24   vnet-chn-docker vnet-chn-docker-nsg
vnet-test-subnet        10.0.1.0/24   vnet-chn-docker vnet-chn-docker-nsg

Желаемый результат будет выглядеть так, потому что к ‘default-subnet’ и ‘vnet-test-subnet’ не подключена сеть безопасности сети:

Subnet Name             Subnet        VNet Name       NSG Name
-----------             ------        ---------       --------
default-subnet          10.10.10.0/28 vnet-ine-test           
vnet-ine-test-snet-test 10.10.0.0/24  vnet-ine-test   test-nsg        
default                 10.0.0.0/24   vnet-chn-docker vnet-chn-docker-nsg        
vnet-test-subnet        10.0.1.0/24   vnet-chn-docker         

Кто-нибудь знает, как исправить вывод? Я попробовал это с помощью оператора else, который заполняет пустое значение для имени NSG, но затем имя полностью отменяется для всей виртуальной сети. Спасибо за помощь!

Читать:
Как работает зона доступности Aws ecs fargate?

Похожие записи

Как я могу остановить мой скрипт при нажатии кнопки отмены?

admin

SwiftUI — Как остановить ScrollView, получающий касания за другим представлением

admin

Пользовательский аутентификатор Symfony 4 simple_form не работает

admin

Как предотвратить масштабирование CTRL и колеса прокрутки / трекпада во Flutter Web?

admin

Как я могу обнаружить столкновение этих прямоугольных объектов?

admin

Есть ли более эффективный способ получения пакетов из набора данных hdf5?

admin