Category Filtering
Overview
The -Category parameter allows you to limit an AZSC inventory run to specific Azure resource categories. This is especially useful when you need a targeted scan rather than a full-tenant inventory.
TIP
Category filtering can reduce run time by 70-90% for large tenants when you only need data from a specific service area.
Supported Categories
-Category Value | Azure Portal Label | Key Resource Types |
|---|---|---|
AI | AI + Machine Learning | Cognitive Services, OpenAI, ML Workspaces, Bot Services, AI Foundry |
Analytics | Analytics | Synapse, Databricks, Data Factory, Event Hub, Purview |
Compute | Compute | Virtual Machines, VMSS, Managed Disks, AVD |
Containers | Containers | AKS, ARO, Container Apps, Container Registry |
Databases | Databases | SQL Server, PostgreSQL flexible server, MySQL, Cosmos DB, Redis Cache |
DevOps | DevOps | Chaos Studio, Dev Box, Dev centers, DevTest Labs, Load Testing, App Configuration |
General | General | Support tickets, reservations and recommendations, VM quotas |
Hybrid | Hybrid + multicloud | Arc Servers, Arc Kubernetes, Azure Local Clusters, Arc Gateways |
Identity | Identity | Users, Groups, App Registrations, PIM, Conditional Access |
Integration | Integration | API Management, Service Bus, Event Hubs, Logic Apps |
IoT | Internet of Things | IoT Hub, IoT DPS |
Management | Management and governance | Subscriptions, Policy, Backup, Automation, Recovery Vault |
Migration | Migration | Azure Migrate projects/assessments, Database Migration Service, Data Box, Azure Stack Edge |
Monitor | Monitor | App Insights, DCRs, Action Groups, Alert Rules, Log Analytics |
Networking | Networking | VNets, NSGs, Load Balancers, VPN Gateways, Azure Firewall, Front Door |
Security | Security | Defender Assessments, Alerts, Secure Score, Key Vault |
Storage | Storage | Storage Accounts, Azure NetApp Files |
Web | Web & Mobile | App Service Plans, App Services, Function Apps |
Compute/CloudServices (classic/ASM cloud services) and Storage/DataLakeStoreGen1 were retired 2026-07-31 — both targeted resource types Azure no longer has. Databases/POSTGRE (PostgreSQL Single Server) was retired the same day; only the flexible-server type remains, and it is already covered above.
Alias Support
Long-form names displayed in the Azure portal are automatically normalized to their short equivalents:
# These are equivalent:
Invoke-AzureScout -TenantID $tid -Category 'IoT'
Invoke-AzureScout -TenantID $tid -Category 'Internet of Things'
Invoke-AzureScout -TenantID $tid -Category 'Monitor'
Invoke-AzureScout -TenantID $tid -Category 'Monitoring'
Invoke-AzureScout -TenantID $tid -Category 'Management'
Invoke-AzureScout -TenantID $tid -Category 'Management and governance'Usage Examples
Single Category
# Inventory only Virtual Machines and related Compute resources
Invoke-AzureScout -TenantID <tenant-id> -Category ComputeMultiple Categories
# Inventory Compute and Networking together (common combination for network topology reviews)
Invoke-AzureScout -TenantID <tenant-id> -Category Compute,Networking
# Security audit: inventory Security + Identity
Invoke-AzureScout -TenantID <tenant-id> -Category Security,Identity
# Data platform review
Invoke-AzureScout -TenantID <tenant-id> -Category Databases,Analytics,AICombine with Output Format
# Targeted scan with JSON output only (fastest)
Invoke-AzureScout -TenantID <tenant-id> -Category Networking -OutputFormat Json
# Generate the self-contained React report for Compute only
Invoke-AzureScout -TenantID <tenant-id> -Category Compute -OutputFormat ReactFull Inventory (Default)
# -Category defaults to 'All' — all categories included
Invoke-AzureScout -TenantID <tenant-id>
# Explicit equivalent
Invoke-AzureScout -TenantID <tenant-id> -Category AllHow Category Filtering Works
INFO
Category filtering is applied at the module discovery stage, before any Azure API calls are made. Only the selected category folders are loaded, which means Resource Graph queries are also restricted to the resource types defined in those modules.
Execution flow with -Category Compute:
graph TD
A[Invoke-AzureScout] --> B{Category specified?}
B -- Yes --> C[Normalize aliases]
C --> D[Load only Compute/*.ps1 modules]
D --> E[Execute Processing blocks]
E --> F[Azure Resource Graph query - Compute types only]
F --> G[Execute Reporting blocks]
G --> H[Write React report / JSON data]
B -- No / All --> I[Load ALL category modules]
I --> EAdding New Categories
To add a new category to AZSC:
- Create a folder under
manifests/collectors/<CategoryName>/ - Add the folder name to the
[ValidateSet]for-CategoryinInvoke-AzureScout.ps1 - Optionally add alias entries to
$_categoryAliasMapfor common name variants - Update Category Structure with the new mapping
- Create one or more
.ps1module files using the module template inmanifests/collectors/