Differences from Azure Resource Inventory (ARI)¶
Important
AzureScout is a fork of Azure Resource Inventory (ARI) v3.6.11, created by Claudio Merola and Renato Gregio at Microsoft. Everything listed on this page describes how AzureScout diverges from ARI — not a criticism of the original project. We encourage you to evaluate both projects and choose the one that fits your needs.
What AzureScout Inherits from ARI¶
AzureScout would not exist without the foundation laid by ARI. The following core capabilities come directly from the original project:
| Area | What We Inherited |
|---|---|
| ARM Resource Extraction | The fundamental pattern of using Azure Resource Graph and ARM APIs to enumerate resources across subscriptions. |
| Draw.io Diagram Engine | All network topology diagram generation — VNets, subnets, peerings, NSGs, load balancers, and resource layout logic. |
| Excel Report Pipeline | The ImportExcel-based pipeline that turns resource data into formatted .xlsx workbooks with conditional formatting. |
| 171 ARM Resource Modules | Every inventory module in Modules/Public/InventoryModules/ descends from ARI's original module set. AzureScout has added new modules and enhanced existing ones, but the pattern and many files trace back to ARI. |
| Orchestration Pattern | The extraction → processing → reporting three-phase orchestration that powers the main pipeline. |
| Automation Account Mode | The concept of running inside an Azure Automation Account with a Managed Identity (though AzureScout has not yet documented or validated this path — see roadmap). |
Renamed Identifiers¶
The most visible change is the rebranding from ARI to AzureScout. This affects every public-facing name in the module.
| What | ARI Name | AzureScout Name |
|---|---|---|
| PowerShell Module | AzureResourceInventory |
AzureScout |
| Main Entry Point | Invoke-ARI |
Invoke-AzureScout |
| Exported Function Prefix | *-ARI* |
*-AZSC* |
| Internal Function Prefix | *-ARI* |
*-AZSC* |
| Module Manifest | AzureResourceInventory.psd1 |
AzureScout.psd1 |
| Root Module File | AzureResourceInventory.psm1 |
AzureScout.psm1 |
All function definitions inside the .ps1 files have been renamed to AZSC, but many file names on disk still use an intermediate AZTI prefix (e.g., Start-AZTIAdvisoryJob.ps1 contains function Start-AZSCAdvisoryJob). Renaming the file names is tracked as tech debt.
New Capabilities¶
These features do not exist in ARI v3.6.11 and were built specifically for AzureScout.
Entra ID Inventory (15 Modules)¶
ARI focuses exclusively on ARM resources. AzureScout adds 15 Microsoft Graph-based modules that inventory Entra ID (Azure AD) objects:
- Users, Groups, Service Principals, App Registrations
- Conditional Access Policies, Named Locations
- Administrative Units, Directory Roles, Role Assignments
- Identity Providers, Security Defaults
- Managed Identities, Enterprise Applications
- Authentication Methods, Password Policies
These are extracted via Start-AZSCEntraExtraction using a dedicated Graph API token.
Permission Audit (-PermissionAudit)¶
A pre-flight capability that checks whether the running identity has the ARM and Graph permissions needed for a complete inventory before starting extraction.
-PermissionAudit— checks ARM permissions only (default)-PermissionAudit -Scope All— checks both ARM and Graph permissions- Outputs results to Console, Markdown, AsciiDoc, or JSON
Execution Scope (-Scope)¶
ARI always inventories ARM resources across every subscription the identity can see.
AzureScout adds a -Scope parameter that controls what types of objects are inventoried:
ArmOnly(default) — ARM resources only, same scope as ARIEntraOnly— Entra ID (Azure AD) objects only, skips ARMAll— both ARM resources and Entra ID objects
This is separate from the -SubscriptionID parameter (inherited from ARI) that targets a specific subscription.
Multi-Format Output (-OutputFormat)¶
ARI outputs Excel (.xlsx) and Draw.io (.drawio) files.
AzureScout adds:
- JSON (
-OutputFormat JSON) — raw cache data as.jsonfor programmatic consumption - Markdown (
-OutputFormat Markdownor-OutputFormat MD) — GitHub-Flavored Markdown tables - AsciiDoc (
-OutputFormat AsciiDocor-OutputFormat Adoc) — Antora/Confluence-compatible AsciiDoc tables - All (
-OutputFormat All) — every format at once
Category Filtering (-Category)¶
Lets you limit extraction and reporting to specific Azure resource categories:
Supports both short folder names (Compute) and long Azure portal names (AI + machine learning).
Modules declare their category via a .CATEGORY comment header, enabling cross-category placement.
Specialized Excel Tabs¶
AzureScout adds purpose-built Excel worksheets that aggregate data across resource types:
- Cost Management — VM cost estimates, Arc ESU costs, reservation recommendations
- Security Overview — Defender secure score, high/critical assessments, active alerts, plan pricing
- Azure Update Manager — Patch compliance across VMs and Arc servers
- Azure Monitor — Action groups, DCRs, DCEs, App Insights, alert rules, autoscale settings
Resource Enrichment¶
Virtual Machine and Arc Server modules now pull supplementary data from multiple APIs:
- Azure Monitor Metrics — 7-day average CPU and memory usage
- Azure Site Recovery — DR replication status, target region, replication health
- Cost Management — Estimated monthly cost (USD)
- PolicyInsights — Policy assignment count and compliance state (Arc)
Dependency Bootstrap¶
ARI requires modules to be pre-installed (declared in RequiredModules).
AzureScout auto-installs missing dependencies on first import:
ImportExcel,Az.Accounts,Az.ResourceGraph,Az.Storage,Az.Compute,Az.Authorization,Az.Resources
Structural Changes¶
Documentation¶
| ARI | AzureScout |
|---|---|
| README-only docs | MkDocs Material documentation site (docs/ folder) with navigation, search, and cross-references |
| No API/architecture docs | Dedicated pages for category filtering, coverage tables, category-to-folder mapping |
| Inline examples only | 4 structured .EXAMPLE blocks on Invoke-AzureScout |
Testing¶
| ARI | AzureScout |
|---|---|
| No test suite | 25+ Pester test files covering public functions, private functions, inventory modules, output formats, and category filtering |
| No synthetic data | New-SyntheticSampleReport.ps1 generates test data for offline validation |
Folder Reorganization¶
ARI's Modules/Private/ uses numbered folders (1.ExtractionFunctions/, 2.ProcessingFunctions/, etc.).
AzureScout replaces these with descriptive names:
| ARI Path | AzureScout Path |
|---|---|
Modules/Private/1.ExtractionFunctions/ |
Modules/Private/Extraction/ |
Modules/Private/2.ProcessingFunctions/ |
Modules/Private/Processing/ |
Modules/Private/3.ReportingFunctions/ |
Modules/Private/Reporting/ |
Modules/Private/4.RAMPFunctions/ |
(removed) |
Removed from ARI¶
The following ARI features were intentionally removed:
| Feature | Reason |
|---|---|
| RAMP Functions | Invoke-AzureRAMPInventory and the 4.RAMPFunctions/ folder were removed. RAMP (Risk Assessment & Mitigation Program) is an internal Microsoft program not broadly applicable. |
| Auto-Update Logic | ARI calls Update-Module to self-update. AzureScout removes this — module updates should be a conscious decision by the operator, not automatic. |
| Remove-ARIExcelProcess | ARI included a function that kills Excel processes to prevent file-lock issues. AzureScout removes this aggressive behavior. |
| RequiredModules hard dependency | Replaced with runtime bootstrap (see Dependency Bootstrap). |
Not Yet in AzureScout¶
These ARI features or ecosystem elements have not been ported or replicated:
| Feature | Status |
|---|---|
| GitHub Actions CI | ARI has CI workflows for automated testing and publishing. AzureScout does not yet have CI — tracked in the project roadmap. |
| PSGallery Publishing | ARI is published to the PowerShell Gallery. AzureScout is GitHub-only for now. |
| Automation Account Documentation | ARI has an 8-step guide for running in Azure Automation. AzureScout has the plumbing but no docs — tracked as Issue #32. |
| Containerized Execution | ARI documents Docker-based execution. AzureScout has not validated container support. |
Version Lineage¶
ARI v3.6.11 (microsoft/ARI)
└── Fork ──→ AzureScout v1.0.0 (thisismydemo/azure-scout)
├── Rebranding (ARI → AZSC function prefix)
├── +15 Entra ID modules
├── +30 new ARM modules (Phases 7–17)
├── Permission Audit system
├── Multi-format output (JSON, Markdown, AsciiDoc)
├── Category filtering
├── Specialized Excel tabs
├── Resource enrichment (metrics, DR, cost)
├── MkDocs Material documentation
└── Pester test suite
Further Reading¶
- Credits & Attribution — full list of original authors and contributors
- AzureScout Documentation Home
- ARI on GitHub — the original project
- AzureScout on GitHub — this fork