ArtifactType | Language | Platform | Tags |
---|---|---|---|
Excel spreadsheet with the full Azure environment |
PowerShell |
Windows / Linux / Mac |
PowerShell, Azure, Inventory, Excel Report, Customer Engineer |
- Overview
- Key Features
- What's New in v3.5
- Getting Started
- Usage Guide
- Parameters Reference
- Output Examples
- Important Notes
- Authors & Acknowledgments
- Contributing
- License
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.
- 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
Now available as a standard PowerShell module for easier installation and updates:
Install-Module -Name AzureResourceInventory
The process to run ARI using Automation Accounts is now fully integrated with the new module format:
See the Automation Guide for implementation details.
We've incorporated additional data sources through the Azure REST API, including:
- Azure Support Tickets
- Azure Health Incidents
- Azure Advisor Score Data
- Reservation Recommendations
- 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)
Install the module directly from PowerShell Gallery:
Install-Module -Name AzureResourceInventory
To generate a basic inventory report:
Invoke-ARI
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
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
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> |
Interactive features show resource details on hover:
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.
Tool | Version |
---|---|
Windows | 11 22H2 |
PowerShell | 7.4.4 |
- Default output location:
- Windows:
C:\AzureResourceInventory\
- Linux/CloudShell:
$HOME/AzureResourceInventory/
- Windows:
- 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)
- Claudio Merola (claudio.merola@microsoft.com)
- Renato Gregio
Special thanks to Doug Finke, the author of PowerShell ImportExcel module.
Please read our CONTRIBUTING.md which outlines all policies, procedures, and requirements for contributing to this project.
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.