ARI+ is an enhanced version of the Azure Resource Inventory (ARI) tool. ARI is a robust PowerShell script provided by Microsoft that generates an Excel report of any Azure environment to which you have read access. This tool aims to assist Cloud Administrators and other professionals in creating a comprehensive Excel report of an Azure Environment quickly and easily. ARI+ enhances the original script by capturing additional utilization metrics. This repository is professionally maintained by AWS, focusing exclusively on read-only integrations with Azure API's and Azure Monitor.
ARI+ can be executed in both Azure Cloudshell and PowerShell Desktop environments.
Note: By default, Azure Resource Inventory will attempt to install the necessary PowerShell modules and Azure CLI components, but you need administrator privileges during the script execution.
- PowerShell 7 or Azure CloudShell
- Azure CLI
- Azure CLI Account Extension
- Azure CLI Resource-Graph Extension
Install the required PowerShell module:
Install-Module ImportExcel
- Clone the repository or download the
ResourceInventory.ps1
script.
git clone https://github.com/stefoy/AriPlus
ARI+ uses concurrency to execute commands in parallel, especially when gathering metrics. By default, the concurrency limit is set to 6. To change this, use the -ConcurrencyLimit
option.
- If you are in Azure CloudShell, you're already authenticated. In PowerShell Desktop, you will be redirected to the Azure sign-in page. Ensure you are executing this command from the AriPlus directory
cd AriPlus
./ResourceInventory.ps1 -ConcurrencyLimit 8
- When the script has completed, a zip file of the report will be saved in the folder AriPlusReports.
-
ARI+ will create 4 files and one zip
- Consumption_ResourcesReport_(date).json
- Inventory_ResourcesReport_(date).json
- Metrics_ResourcesReport_(date).json
- ResourcesReport_(date).xlsx
-
These 4 files zipped up automatically and the zip is what is sent back to AWS
- ResourcesReport_(date).zip
-
The following table lists the parameters that can be used with the script:
Parameter | Type | Description |
---|---|---|
$TenantID |
String | Specifies the Tenant ID you want to create a Resource Inventory |
$Appid |
String | Service Principal Authentication ID. |
$SubscriptionID |
String | Specifies the Subscription which will be run for Inventory. |
$Secret |
String | Client Secret of the Service Principal key. |
$ResourceGroup |
String | Specifies the Resource Group. |
$Debug |
Switch | Enable Debug Mode |
$Help |
Switch | A switch to display the help message. |
$SkipConsumption |
Switch | A switch to indicate if consumption metrics should be gathered. |
$DeviceLogin |
Switch | A switch to trigger device login. |
$ConcurrencyLimit |
Integer | Specifies the concurrency limit for parallel command execution. Default value is 6 . |
-
Important: Azure Resource Inventory will not upgrade the current version of the Powershell modules.
-
Important: If you're running the script inside Azure CloudShell, the final Excel will not have auto-fit columns, and you will see warnings during the script execution. This is an issue with the Import-Excel module but it does not affect the inventory which will remain accurate.
- Stephen Foy | [email protected]
- Aidan Keane | [email protected]
- Brad Webber | [email protected]
Special thanks to Doug Finke, the author of the PowerShell ImportExcel Module.