Skip to content

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 ARI
  • EntraOnly — Entra ID (Azure AD) objects only, skips ARM
  • All — 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 .json for programmatic consumption
  • Markdown (-OutputFormat Markdown or -OutputFormat MD) — GitHub-Flavored Markdown tables
  • AsciiDoc (-OutputFormat AsciiDoc or -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:

Invoke-AzureScout -Category Compute, Networking

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