【问题标题】:How to List Azure Network Security Group如何列出 Azure 网络安全组
【发布时间】:2021-04-25 15:17:45
【问题描述】:

我创建了一个 Powershell 脚本,该脚本在所有订阅中提供所有可用的 Azure 网络安全组。 脚本是这样的:

############# List All Azure Network Security Groups #############
$subs = Get-AzSubscription

foreach ($sub in $subs) {
    Select-AzSubscription -SubscriptionId $sub.Id
    $nsgs = Get-AzNetworkSecurityGroup

    Foreach ($nsg in $nsgs) {
        $nsgRules = $nsg.SecurityRules

        foreach ($nsgRule in $nsgRules) {
            $nsgRule | Select-Object @{Name='SubscriptionName';Expression={$sub.Name}},
                @{Name='ResourceGroupName';Expression={$nsg.ResourceGroupName}},
                @{Name='NetworkSecurityGroupName';e={$nsg.Name}},
                Name,Description,Priority,
                @{Name='SourceAddressPrefix';Expression={[string]::join(",", ($_.SourceAddressPrefix))}},
                @{Name='SourcePortRange';Expression={[string]::join(",", ($_.SourcePortRange))}},
                @{Name='DestinationAddressPrefix';Expression={[string]::join(",", ($_.DestinationAddressPrefix))}},
                @{Name='DestinationPortRange';Expression={[string]::join(",", ($_.DestinationPortRange))}},
                Protocol,Access,Direction,
                @{Name='NetworkInterfaceName';Expression={$nsg.NetworkInterfacesText}},
                @{Name='SubnetName';Expression={$nsg.SubnetsText}} |
                    Export-Csv "C:\Users\admin-vishal.singh\Desktop\Test\nsg\NSG-C10.csv" -NoTypeInformation -Encoding ASCII -Append        
        }
    }
}

它提供如下输出:

正如您在上面的输出中看到的,它为连接到哪些 NIC 和子网的 NSG 返回一个空白值。

我也尝试了一些类似的代码更改

@{Name='NetworkInterfaceName';Expression={$nsg.NetworkInterfaces}},
@{Name='SubnetName';Expression={$nsg.Subnets}} 

但也给出一个空白列作为输出。

我正在尝试获取 NSG 链接到的 NIC 和子网。

【问题讨论】:

    标签: azure powershell azure-powershell azure-virtual-network azure-security


    【解决方案1】:

    我解决了上述问题。 请找到相同的脚本。

    ############# List All Azure Network Security Groups #############
    $subs = Get-AzSubscription
    
    foreach ($sub in $subs) {
        Select-AzSubscription -SubscriptionId $sub.Id
        $nsgs = Get-AzNetworkSecurityGroup
    
        Foreach ($nsg in $nsgs) {
            $nsgRules = $nsg.SecurityRules
    
            foreach ($nsgRule in $nsgRules) {
                $nsgRule | Select-Object @{Name='SubscriptionName';Expression={$sub.Name}},
                    @{Name='ResourceGroupName';Expression={$nsg.ResourceGroupName}},
                    @{Name='NetworkSecurityGroupName';e={$nsg.Name}},
                    Name,Description,Priority,
                    @{Name='SourceAddressPrefix';Expression={[string]::join(",", ($_.SourceAddressPrefix))}},
                    @{Name='SourcePortRange';Expression={[string]::join(",", ($_.SourcePortRange))}},
                    @{Name='DestinationAddressPrefix';Expression={[string]::join(",", ($_.DestinationAddressPrefix))}},
                    @{Name='DestinationPortRange';Expression={[string]::join(",", ($_.DestinationPortRange))}},
                    Protocol,Access,Direction,
                    @{Name='NetworkInterfaceName';Expression={$nsg.NetworkInterfaces.Id.Split('/')[-1]}},
                    @{Name='SubnetName';Expression={$nsg.Subnets.Id.Split('/')[-1]}} |
                        Export-Csv "C:\Users\admin-vishal.singh\Desktop\Test\nsg\NSG-C100.csv" -NoTypeInformation -Encoding ASCII -Append        
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2016-12-12
      • 2021-06-02
      • 2021-06-10
      • 2020-04-21
      • 2021-01-19
      • 1970-01-01
      相关资源
      最近更新 更多