azure - 如何列出 Azure 网络安全组
问题描述
我创建了一个 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 和子网。
解决方案
我解决了上面的问题。请找到相同的脚本。
############# 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
}
}
}
推荐阅读
- c# - 如何从asp.net中的Web服务调用一些参数
- python - 当字符串以 .(dot) 和边界线结尾时,Pandas str.contains 不给出有效结果
- python - 如何通过 Python 运行 CANoe 测试模块?
- flutter - 在 iOS 中使用 SafeArea 抖动状态栏颜色
- c - 如何制作atoi大数证明?
- c# - 访问从 docker 容器复制到输出的文件
- dockerfile - 将不同的程序、python 代码、其他 dockerfile 添加到一个 dockerfile
- python - 导入包含数千行的 excel 文件时出现问题 - ValueError: Passed header=1 but only 1 lines in file
- networking - 通过 Websocket 或 HTTP 连接到在 VPS 上运行的 BSC 节点
- flutter - 在颤动中如何只显示一次底页