J'ai un abonnement Azure et j'essaie d'écrire un script PowerShell pour obtenir automatiquement une liste de toutes les ressources (ordinateurs virtuels, comptes de stockage, bases de données, etc.) actuellement inscrites dans mon abonnement. Existe-t-il un moyen de le faire à l'aide de l'API de gestion Azure REST ou des applets de commande Azure?
Si vous utilisez le nouveau modèle Resource Manager (introduit en 2014), vous pouvez utiliser le script PowerShell suivant.
Login-AzureRmAccount
Get-AzureRmResource | Export-Csv "c:\Azure Resources.csv"
Pour utiliser les commandes Resource Manager PowerShell, vous avez besoin du module AzureRM PowerShell ( https://docs.Microsoft.com/en-us/powershell/Azure/install-azurerm-ps ).
Install-Module AzureRM
Pour plus d'informations sur la différence entre les modèles Resource Manager et Classic, voir https://docs.Microsoft.com/en-us/Azure/azure-resource-manager/resource-manager-deployment-model .
Pour les utilisateurs ayant plusieurs abonnements: Si vous souhaitez générer le contenu de plusieurs abonnements, vous devez appeler Select-AzureRmSubscription pour passer à un autre abonnement avant d'appeler Get-AzureRmResource.
Je ne pense pas qu'il existe une seule fonction (ou une applet de commande PS) pour extraire toutes ces informations. Cependant, chacun de ceux-ci peut être récupéré via Windows Azure Service Management REST API
ainsi que Window Azure PowerShell Cmdlets
.
Gestion de services Windows Azure REST API : http://msdn.Microsoft.com/en-us/library/windowsazure/ee460799.aspx . Par exemple, si vous souhaitez répertorier les comptes de stockage dans votre abonnement, vous devez utiliser ceci: http://msdn.Microsoft.com/en-us/library/windowsazure/ee460787.aspx
Cmdlets Windows Azure PowerShell : http://msdn.Microsoft.com/en-us/library/jj554330.aspx . Encore une fois, si vous souhaitez répertorier les comptes de stockage dans votre abonnement, vous devez utiliser ceci: http://msdn.Microsoft.com/en-us/library/dn205168.aspx .
eh bien, Vous pouvez mettre à jour la version de votre AzurePowershell et exécuter cette commande.
Get-AzureResource
Dans la sortie, vous pouvez rechercher "ResourceType". Il contient des informations sur le type de ressource creatd sur Azure.
Cet exemple montre comment obtenir automatiquement une liste de toutes les ressources (ordinateurs virtuels, comptes de stockage, bases de données, services d'application) et de leur statut via Powershell par authentification par certificat.
https://gallery.technet.Microsoft.com/Access-Azure-resource-data-ca9cc9f7
Ajout à la réponse de @ Gaurav (et liée à votre commentaire sur l'énumération de bases de données SQL): Vous pouvez énumérer toutes vos bases de données, serveur par serveur, en quelques étapes simples.
Commencez par énumérer tous les serveurs de base de données SQL de votre abonnement:
Ensuite, pour chaque serveur, créez un contexte de connexion et énumérez les bases de données. Notez qu'avec l'applet de commande Get-Credentials, il m'a été demandé de saisir un nom d'utilisateur et un mot de passe via une fenêtre contextuelle, ce que je ne montre pas ici. À des fins de démonstration, j'ai créé un nouveau serveur, avec uniquement une base de données master, pour montrer à quoi ressemble le résultat:
Puisque vous avez dit PowerShell "de préférence" , je suppose que d’autres options sont toujours utiles. Vous pouvez aller à http://manage.windowsazure.com , et cliquer sur Tous les éléments. Ensuite, vous pouvez copier/coller le tableau dans Excel. Vous devrez le faire une fois par page, mais cela reste plus rapide et plus complet que de devoir exécuter diverses applets de commande. Cela suppose que vous avez au moins quelques types de ressources et pas plus de quelques pages de ressources.
Vous devez prendre 30 secondes pour effectuer un petit nettoyage dans Excel, mais ce que j'essaie de faire maintenant est sans aucun doute la solution la plus rapide et la meilleure. J'espère que cela vous sera utile (ou à quelqu'un d'autre) également.