Autenticar no Azure
Connect-AzAccount
Obter todas as assinaturas
$subscriptions = Get-AzSubscription
Inicializar lista de regras
$allRules = @()
Iterar por cada assinatura
foreach ($sub in $subscriptions) {
Select-AzSubscription -SubscriptionId $sub.Id
# Obter todos os NSGs
$nsgs = Get-AzNetworkSecurityGroup
foreach ($nsg in $nsgs) {
foreach ($rule in $nsg.SecurityRules) {
$allRules += [PSCustomObject]@{
SubscriptionName = $sub.Name
ResourceGroupName = $nsg.ResourceGroupName
NSGName = $nsg.Name
RuleName = $rule.Name
Priority = $rule.Priority
Direction = $rule.Direction
Access = $rule.Access
Protocol = $rule.Protocol
SourceAddress = ($rule.SourceAddressPrefix -join ',')
DestinationAddress = ($rule.DestinationAddressPrefix -join ',')
SourcePort = ($rule.SourcePortRange -join ',')
DestinationPort = ($rule.DestinationPortRange -join ',')
}
}
}
}
Exportar para CSV
$allRules | Export-Csv -Path "C:\NSG_Rules.csv" -NoTypeInformation -Encoding UTF8