All scripts
Governance 280

Get-AzurePolicyComplianceReport

Summarizes Azure Policy compliance state across the subscription by initiative, showing non compliant resource counts so remediation effort can be prioritized by scale.

Get-AzurePolicyComplianceReport.ps1
<#
.SYNOPSIS
    Summarizes Azure Policy compliance across the subscription.

.DESCRIPTION
    Pulls policy compliance state and groups non compliant resources by
    the policy definition or initiative they are failing, so
    remediation effort can be prioritized by how many resources are
    actually affected rather than by which policy sounds most urgent.

.EXAMPLE
    .\Get-AzurePolicyComplianceReport.ps1

.NOTES
    Requires the Az.PolicyInsights module and an active Connect-AzAccount session.

.AUTHOR
    Shehryar Hassan
#>

$states = Get-AzPolicyState -Filter "ComplianceState eq 'NonCompliant'"

$states | Group-Object PolicyDefinitionName | Sort-Object Count -Descending |
    Select-Object -First 20 Name, Count | Format-Table -AutoSize

Write-Host "$($states.Count) non compliant resource(s) found across all assigned policies" -ForegroundColor Cyan

Read it before you run it, and test in a safe tenant first.