15/11/2024

AzurePowerShell

Comment obtenir l’état d’une VM Azure avec PowerShell ?

I. Présentation

Dans ce tutoriel, nous allons voir comment une simple commande PowerShell peut nous permettre d'obtenir l'état d'une VM Azure, afin de savoir si elle est en cours d'exécution, arrêtée, voire même arrêtée et libérée.

Pour obtenir l'état de la machine virtuelle, il faut interagir directement avec le tenant et la souscription Azure où se situe vos ressources Cloud.

II. Utilisation de Get-AzVM

A. Comment utiliser Get-AzVM ?

La commande Get-AzVM doit être utilisée pour obtenir l'état d'une machine virtuelle Azure en ligne de commande, à l'aide de PowerShell. Cette commande est accessible directement à partir d'Azure Cloud Shell (avec un navigateur sur le portail Azure, voire même depuis Windows Terminal), d'une console PowerShell ou de votre éditeur de code préféré.

Pour une utilisation en local, via une console Windows PowerShell par exemple, il faudra au préalable installer le module "Az.Compute" de PowerShell dont fait partie cette commande.

Install-Module -Name Az.Compute

Ensuite, il faut établir une connexion au tenant Azure et s'authentifier afin d'avoir accès aux différentes ressources. Plusieurs façons de faire, la plus simple étant de saisir les identifiants dans un navigateur :

Connect-AzAccount

Si vous souhaitez plus d'informations sur les différentes méthodes de connexion, vous pouvez lire ce tutoriel :

B. Récupérer le statut d'une VM avec Get-AzVM

Donc, une fois que la connexion est établie, on peut requêter notre tenant pour obtenir l'état de la machine virtuelle avec Get-AzVM. Nous pouvons essayer de récupérer l'état de la VM nommée "SRV-WSUS" présente sur mon tenant Azure. Pour obtenir l'information, il suffit de spécifier le nom de la VM et d'ajouter le paramètre -Status.

Get-AzVM -Name "SRV-WSUS" -Status

Ici, la commande retourne une colonne nommée "PowerState" avec la valeur "VM running". Nous pouvons en déduire que la VM est en cours d'exécution.

Get-AzVM avec l'option -Status

La valeur pourrait être différente :

  • VM deallocated : signifie que la VM est arrêtée et libérée
  • VM stopped : signifie que la VM est arrêtée (et non libérée)

Si l'on ne précise pas le nom d'une machine virtuelle, on peut obtenir le statut de toutes les VM :

Get-AzVM -Status

Il est également possible de filtrer par région Azure (ou par groupe de ressources), sans oublier à chaque fois le paramètre -Status afin d'avoir la colonne "PowerState" :

Get-AzVM -Location francecentral -Status

Je vais terminer cet article par un dernier exemple : comment obtenir la liste de toutes les VM Azure éteintes ? Tout simplement, en ajoutant un filtre sur la propriété PowerState, comme ceci :

Get-AzVM -Status | Where{ $_.PowerState -eq "VM Stopped" }

Bien sûr, vous pouvez modifier la valeur du filtre pour obtenir la liste des machines virtuelles arrêtées et libérées, par exemple. Vous n'oublierez pas de déconnecter la session Azure après avoir joué avec PowerShell :

Disconnect-AzAccount

Pour plus d'informations sur la commande Get-AzVM :

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.