
Azure Quick Review (azqr) is a powerful command-line interface (CLI) tool that specializes in analyzing Azure resources to ensure compliance with Azure's best practices and recommendations. Its main objective is to offer users a comprehensive overview of their Azure resources, allowing them to easily identify any non-compliant configurations or areas for improvement.
Azure Quick Review (azqr) scans your resources with 2 types of recommendations:
To learn more about the recommendations used by Azure Quick Review (azqr), you can refer to the documentation available here.
The output generated by Azure Quick Review (azqr) is written by default to an Excel file, which contains the following sheets:
--stages -advisor.--stages -defender.--stages defender-recommendations.--stages policy.--stages arc.--stages cost.By default, Azure Quick Review (azqr) obfuscates the Subscription Ids in the output to ensure the protection of sensitive information and maintain data privacy and security. If you want to display the Subscription Ids without obfuscation, you can use the
--mask=falseflag when executing the tool.Azure Quick Review can also generate an csv files with the same information as the excel. To generate the csv files, you can use the
--csvflag when running the tool.
Click to expand supported services (70+ resource types)
| Abbreviation | Resource Type |
|---|---|
| aa | Microsoft.Automation/automationAccounts |
| adf | Microsoft.DataFactory/factories |
| afd | Microsoft.Cdn/profiles |
| afw | Microsoft.Network/azureFirewalls |
| afw | Microsoft.Network/ipGroups |
| agw | Microsoft.Network/applicationGateways |
| aif | Microsoft.CognitiveServices/accounts |
| aks | Microsoft.ContainerService/managedClusters |
| amg | Microsoft.Dashboard/grafana |
| apim | Microsoft.ApiManagement/service |
| appcs | Microsoft.AppConfiguration/configurationStores |
| appi | Microsoft.Insights/components |
| appi | Microsoft.Insights/activityLogAlerts |
| arc | Microsoft.AzureArcData/sqlServerInstances |
| as | Microsoft.AnalysisServices/servers |
| asa | Microsoft.StreamAnalytics/streamingJobs |
| asp | Microsoft.Web/serverFarms |
| asp | Microsoft.Web/sites |
| asp | Microsoft.Web/connections |
| asp | Microsoft.Web/certificates |
| avail | Microsoft.Compute/availabilitySets |
| avd | Specialized.Workload/AVD |
| avs | Microsoft.AVS/privateClouds |
| avs | Specialized.Workload/AVS |
| ba | Microsoft.Batch/batchAccounts |
| bastion | Microsoft.Network/bastionHosts |
| ca | Microsoft.App/containerApps |
| cae | Microsoft.App/managedenvironments |
| ci | Microsoft.ContainerInstance/containerGroups |
| con | Microsoft.Network/connections |
| cosmos | Microsoft.DocumentDB/databaseAccounts |
| cr | Microsoft.ContainerRegistry/registries |
| dbw | Microsoft.Databricks/workspaces |
| ddos | Microsoft.Network/ddosProtectionPlans |
| dec | Microsoft.Kusto/clusters |
| disk | Microsoft.Compute/disks |
| dnsres | Microsoft.Network/dnsResolvers |
| dnsz | Microsoft.Network/dnsZones |
| domain | Microsoft.AAD/domainServices |
| erc | Microsoft.Network/expressRouteCircuits |
| erc | Microsoft.Network/ExpressRoutePorts |
| erc | Microsoft.Network/expressRouteGateways |
| evgd | Microsoft.EventGrid/domains |
| evgt | Microsoft.EventGrid/topics |
| evh | Microsoft.EventHub/namespaces |
| fabric | Microsoft.Fabric/capacities |
| fdfp | Microsoft.Network/frontdoorWebApplicationFirewallPolicies |
| gal | Microsoft.Compute/galleries |
| hpc | Specialized.Workload/HPC |
| hub | Microsoft.MachineLearningServices/workspaces |
| hub | Microsoft.MachineLearningServices/registries |
| iot | Microsoft.Devices/IotHubs |
| it | Microsoft.VirtualMachineImages/imageTemplates |
| kv | Microsoft.KeyVault/vaults |
| lb | Microsoft.Network/loadBalancers |
| log | Microsoft.OperationalInsights/workspaces |
| logic | Microsoft.Logic/workflows |
| mysql | Microsoft.DBforMySQL/servers |
| mysql | Microsoft.DBforMySQL/flexibleServers |
| netapp | Microsoft.NetApp/netAppAccounts |
| ng | Microsoft.Network/natGateways |
| nic | Microsoft.Network/networkInterfaces |
| nsg | Microsoft.Network/networkSecurityGroups |
| ntc | Microsoft.NetworkFunction/azureTrafficCollectors |
| nw | Microsoft.Network/networkWatchers |
| odb | Oracle.Database/cloudExadataInfrastructures |
| odb | Oracle.Database/cloudVmClusters |
| p2svpng | Microsoft.Network/p2sVpnGateways |
| pdnsz | Microsoft.Network/privateDnsZones |
| pep | Microsoft.Network/privateEndpoints |
| pip | Microsoft.Network/publicIPAddresses |
| psql | Microsoft.DBforPostgreSQL/servers |
| psql | Microsoft.DBforPostgreSQL/flexibleServers |
| redis | Microsoft.Cache/Redis |
| redis | Microsoft.Cache/redisEnterprise |
| resource | Microsoft.Resources |
| rg | Microsoft.Resources/resourceGroups |
| rsv | Microsoft.RecoveryServices/vaults |
| rt | Microsoft.Network/routeTables |
| sap | Specialized.Workload/SAP |
| sb | Microsoft.ServiceBus/namespaces |
| sigr | Microsoft.SignalRService/SignalR |
| sql | Microsoft.Sql/servers |
| sql | Microsoft.Sql/servers/databases |
| sql | Microsoft.Sql/servers/elasticPools |
| sqlmi | Microsoft.Sql/managedInstances |
| srch | Microsoft.Search/searchServices |
| st | Microsoft.Storage/storageAccounts |
| sub | Microsoft.Subscription/subscriptions |
| synw | Microsoft.Synapse/workspaces |
| synw | Microsoft.Synapse/workspaces/bigDataPools |
| synw | Microsoft.Synapse/workspaces/sqlPools |
| traf | Microsoft.Network/trafficManagerProfiles |
| vdpool | Microsoft.DesktopVirtualization/hostPools |
| vdpool | Microsoft.DesktopVirtualization/scalingPlans |
| vdpool | Microsoft.DesktopVirtualization/workspaces |
| vgw | Microsoft.Network/virtualNetworkGateways |
| vhub | Microsoft.Network/virtualHubs |
| vm | Microsoft.Compute/virtualMachines |
| vmss | Microsoft.Compute/virtualMachineScaleSets |
| vnet | Microsoft.Network/virtualNetworks |
| vnet | Microsoft.Network/virtualNetworks/subnets |
| vpng | Microsoft.Network/vpnGateways |
| vpns | Microsoft.Network/vpnSites |
| vrouter | Microsoft.Network/virtualRouters |
| vwan | Microsoft.Network/virtualWans |
| wps | Microsoft.SignalRService/webPubSub |
For the full list of resource type abbreviations used in filters, see the Overview documentation.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/azure/azqr/main/scripts/install.sh)"
winget install azqr
Or via PowerShell:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/azure/azqr/main/scripts/install.ps1'))
brew install azqr
Or download the latest release from the releases page.
# 1. Login to Azure
az login
# 2. Run a scan (scans all accessible subscriptions)
azqr scan
# 3. View results in interactive dashboard
azqr show -f azqr_action_plan_*.xlsx --open
The scan generates an Excel report with recommendations, impacted resources, and an action plan.
Azure Quick Review (azqr) supports the following authentication methods:
Azure Quick Review (azqr) uses the Azure SDK's DefaultAzureCredential which automatically selects the most appropriate credential based on your environment. By default, it tries credentials in order: environment variables, workload identity, managed identity, Azure CLI, and Azure Developer CLI.
You can customize this behavior by setting the AZURE_TOKEN_CREDENTIALS environment variable:
dev - Prioritize Azure CLI (az) or Azure Developer CLI (azd) credentials (recommended for local development)prod - Prioritize environment variables, workload identity, or managed identity (recommended for CI/CD and production)Azure Quick Review (azqr) requires the following permissions:
Azure Quick Review (azqr) supports scanning resources in different Azure cloud environments including Azure Public Cloud, Azure Government, Azure China, and custom cloud configurations.
You can configure the target cloud using environment variables such as AZURE_CLOUD, AZURE_AUTHORITY_HOST, AZURE_RESOURCE_MANAGER_ENDPOINT, and AZURE_RESOURCE_MANAGER_AUDIENCE.
For detailed cloud configuration options and examples, see the Usage section in the documentation.
To find your subscription ID, run az account list --output table.
# Scan all accessible subscriptions
azqr scan
# Scan a specific subscription
azqr scan --subscription-id <subscription_id>
# Scan a management group
azqr scan --management-group-id <management_group_id>
# Scan specific resource group(s)
azqr scan --subscription-id <sub_id> --resource-group <rg_name>
# Scan multiple subscriptions
azqr scan --subscription-id <sub_1> --subscription-id <sub_2>
# Custom output filename
azqr scan --output-name my-report
# Output as JSON or CSV
azqr scan --json
azqr scan --csv
Run azqr -h for all available commands and options.
You can explore your scan results with a lightweight embedded web UI using the show command. The dashboard supports both Excel and JSON report formats:
# Excel format (default)
azqr scan --subscription-id <subscription_id> --output-name report
# JSON format
azqr scan --subscription-id <subscription_id> --output-name report --json
# With Excel file
azqr show -f report.xlsx --open
# With JSON file
azqr show -f report.json --open
Azure Quick Review allows you to control which scan stages are executed. By default, diagnostics, advisor, and defender stages are enabled.
# Enable specific stages (replaces defaults)
azqr scan --stages cost --stages policy
# Disable specific stages (keeps other defaults)
azqr scan --stages -diagnostics
# Enable all stages
azqr scan --stages advisor --stages defender --stages defender-recommendations --stages arc --stages policy --stages cost --stages diagnostics
# Disable cost stage only (if you lack permissions)
azqr scan --stages -cost
Azure Quick Review includes optional internal plugins that provide advanced analytics beyond standard recommendations. Plugins can be run as standalone commands for faster execution or integrated with full scans.
Monitors Azure OpenAI and Cognitive Services accounts for throttling (HTTP 429 errors) to identify capacity constraints.
Use Cases: Capacity