Skip to content
/ ARI Public

Azure Resource Inventory - It's a Powerful tool to create EXCEL inventory from Azure Resources with low effort

License

Notifications You must be signed in to change notification settings

microsoft/ARI

Repository files navigation

ArtifactType Language Platform Tags
Excel spreadsheet with the full Azure environment
PowerShell
Windows / Linux / Mac
PowerShell, Azure, Inventory, Excel Report, Customer Engineer

Azure Resource Inventory (ARI)

A powerful PowerShell module for generating comprehensive Azure environment reports

GitHub GitHub repo size GitHub last commit GitHub top language Azure

πŸ“‹ Table of Contents

πŸ” Overview

Azure Resource Inventory (ARI) is a comprehensive PowerShell module that generates detailed Excel reports of any Azure environment you have read access to. It is designed for Cloud Administrators and technical professionals who need an easy and fast way to document their Azure environments.

✨ Key Features

  • Complete Resource Documentation: Detailed inventory of all Azure resources
  • Interactive Excel Reports: Well-formatted spreadsheets with resources organized by type
  • Visual Network Diagrams: Generate interactive topology maps of your Azure environment
  • Security Analysis: Integration with Azure Security Center (optional)
  • Cross-Platform Support: Works on Windows, Linux, Mac, and Azure Cloud Shell
  • Automation-Ready: Can be deployed via Azure Automation Accounts
  • Low-Impact: Read-only operations with no changes to your environment

πŸš€ What's New in v3.5

PowerShell Module Installation

Now available as a standard PowerShell module for easier installation and updates:

Install-Module -Name AzureResourceInventory

Full Automation Account Integration

The process to run ARI using Automation Accounts is now fully integrated with the new module format:

See the Automation Guide for implementation details.

Azure REST API Integration

We've incorporated additional data sources through the Azure REST API, including:

  • Azure Support Tickets
  • Azure Health Incidents
  • Azure Advisor Score Data
  • Reservation Recommendations

🏁 Getting Started

Prerequisites

  • PowerShell 7.0+ (recommended) or PowerShell 5.1
  • Azure Account with read access to resources you want to inventory
  • Administrator privileges during script execution (for module installation)

Installation

Install the module directly from PowerShell Gallery:

Install-Module -Name AzureResourceInventory

Quick Start

To generate a basic inventory report:

Invoke-ARI

πŸ“– Usage Guide

Basic Commands

Run ARI with specific tenant:

Invoke-ARI -TenantID <Azure-Tenant-ID>

Scope to specific subscription:

Invoke-ARI -TenantID <Azure-Tenant-ID> -SubscriptionID <Subscription-ID>

Include resource tags in the report:

Invoke-ARI -TenantID <Azure-Tenant-ID> -IncludeTags

Common Scenarios

Run in Azure Cloud Shell:

Invoke-ARI -Debug

Include Security Center Data:

Invoke-ARI -TenantID <Azure-Tenant-ID> -SubscriptionID <Subscription-ID> -SecurityCenter

Skip Azure Advisor Data Collection:

Invoke-ARI -TenantID <Azure-Tenant-ID> -SubscriptionID <Subscription-ID> -SkipAdvisory

Skip Network Diagram Generation:

Invoke-ARI -TenantID <Azure-Tenant-ID> -SkipDiagram

πŸ“ Parameters Reference

Parameter Description Usage
Core Parameters
TenantID Specify the tenant ID for inventory -TenantID <ID>
SubscriptionID Specify subscription(s) to inventory -SubscriptionID <ID>
ResourceGroup Limit inventory to specific resource group(s) -ResourceGroup <NAME>
Authentication
AppId Application ID for service principal auth -AppId <ID>
Secret Secret for service principal authentication -Secret <VALUE>
CertificatePath Certificate path for service principal -CertificatePath <PATH>
DeviceLogin Use device login authentication -DeviceLogin
Scope Control
ManagementGroup Inventory all subscriptions in management group -ManagementGroup <ID>
TagKey Filter resources by tag key -TagKey <NAME>
TagValue Filter resources by tag value -TagValue <NAME>
Content Options
SecurityCenter Include Security Center data -SecurityCenter
IncludeTags Include resource tags -IncludeTags
QuotaUsage Include quota usage information -QuotaUsage
SkipAdvisory Skip Azure Advisory collection -SkipAdvisory
Output Options
ReportName Custom report filename -ReportName <NAME>
ReportDir Custom directory for report -ReportDir "<Path>"
Lite Use lightweight Excel generation (no charts) -Lite
Diagram Options
Diagram Create Draw.IO diagram -Diagram
SkipDiagram Skip diagram creation -SkipDiagram
DiagramFullEnvironment Include all network components in diagram -DiagramFullEnvironment
Other Options
Debug Run in debug mode -Debug
AzureEnvironment Specify Azure cloud environment -AzureEnvironment <NAME>
Automation Run using Automation Account -Automation
StorageAccount Storage account for automation output -StorageAccount <NAME>
StorageContainer Storage container for automation output -StorageContainer <NAME>

πŸ“Š Output Examples

Excel Report

Network Topology View

Interactive features show resource details on hover:

Organization View

Resources View

⚠️ Important Notes

Very Important: ARI will not upgrade existing PowerShell modules. Ensure you have the required modules installed.

CloudShell Limitation: When running in Azure CloudShell, the Excel output will not have auto-fit columns and you may see warnings during execution. The inventory results will still be correct.

Our Test Environment

Tool Version
Windows 11 22H2
PowerShell 7.4.4

Output Details

  • Default output location:
    • Windows: C:\AzureResourceInventory\
    • Linux/CloudShell: $HOME/AzureResourceInventory/
  • Output filename format: AzureResourceInventory_Report_yyyy-MM-dd_HH_mm.xlsx
  • Diagram filename format: AzureResourceInventory_Diagram_yyyy-MM-dd_HH_mm.xml (Draw.io format)

πŸ‘₯ Authors & Acknowledgments

Special thanks to Doug Finke, the author of PowerShell ImportExcel module.

🀝 Contributing

Please read our CONTRIBUTING.md which outlines all policies, procedures, and requirements for contributing to this project.

πŸ“œ License

Copyright (c) 2025 Microsoft Corporation. All rights reserved.

Licensed under the MIT License - see the LICENSE file for details.


This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.