0

私は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 } 
       
}

また、一部の NSG がサブネットに割り当てられ、他の NSG が NIC に割り当てられるため、スクリプトが NIC/サブネットの null 値を無視するようにします。 ('/')[-1] 最後のエントリだけでなく、Subnets.Id または NetworkInterfaces.Id の複数のエントリに対して部分的に機能しますか?

ありがとう

4

1 に答える 1