我是 PS 的新手......试图在给定的订阅中获取 NSG(一旦这对所有订阅都有效)以显示以下属性(NSG 名称、位置、资源组、子网、NIC)。
我正在使用获取 NSG 列表和相应的子网或 NIC 中的以下脚本,但它为每个 NSG 列出相同的信息多次等于订阅中 NSG 的数量,因此脚本中一定有问题
$azNsgs = Get-AzNetworkSecurityGroup
foreach ( $azNsg in $azNsgs ) {
if ($azNsg.Subnets.Id -ne $null) {
$NsgSubnets = $azNsg.Subnets.Id.Split('/')[-1]
}
Get-AzNetworkSecurityGroup | `
Select-Object `
@{name = 'NSG Name'; expression = {$azNsg.Name} }, `
@{name = 'Location'; expression = {$azNsg.Location} }, `
@{name = 'Resource Group Name'; expression = {$azNsg.ResourceGroupName} }, `
@{name = 'Subnets'; expression = $NsgSubnets }
}
还希望脚本忽略 NIC/子网的空值,因为一些 NSG 将分配给子网,而其他 NSG 将分配给 NIC 最后一个 NSG 可以分配给多个子网/NIC,所以我如何获得 $azNsg.Subnets.Id.Split ('/')[-1] 部分适用于 Subnets.Id 或 NetworkInterfaces.Id 中的多个条目,而不仅仅是最后一个?
谢谢