Script de PowerShell para listar recursos de Azure

Me gusta PowerShell, pero reconozco que siempre que tengo que hacer un script con él me cuesta recordar su sintaxis y el paradigma que propone (la línea de comandos orientada a objetos).

Habiendo superado ya la sesión de autoayuda, en este post simplemente quiero mostrar un script (como otro cualquiera, podría hacerse de una forma diferente) que nos devolverá el número y el tipo de los distintos recursos que tenemos en nuestras suscripciones de Azure.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$path = "$($env:USERPROFILE)\resources.csv"
if (Test-Path -Path $path) {
    Remove-Item -Path $path
}
$subscriptions = Get-AzSubscription | Select-Object -ExpandProperty Id
$resources = @()
foreach ($subscription in $subscriptions) {
    Set-AzContext -SubscriptionId $subscription
    $resources += Get-AzResource | Select-Object ResourceType
}
$resources | 
Group-Object -Property ResourceType |
Select-Object Name, Count |
Export-Csv -NoTypeInformation -Delimiter ";" -Path $path

Si quisieramos crear un .ps1 y parametrizar por ejemplo el nombre del fichero, bastaría con algo así:

param(
 [Parameter(Mandatory=$True)]
 [string]
 $path,
)

if (Test-Path -Path $path) {
    ...

De un modo u otro, el script asume que previamente a su ejecución has iniciado sesión con Connect-AzAccount.

Un saludo!


Ver también