> Tech > Inventaire des machines virtuelles avec Windows PowerShell

Inventaire des machines virtuelles avec Windows PowerShell

Tech - Par iTPro - Publié le 21 octobre 2011
email


Récupérer l’état des machines virtuelles ou des hôtes est quelque chose de fréquent, surtout si l’on souhaite générer des rapports de nuit sur l’état de santé de son infrastructure de virtualisation.

Pour cela, les commandes Get-VM et Get-VMHost vont nous être utiles.

Exemple 1 : Lister toutes les VM ainsi que leur statut de fonctionnement
(voir tableau 1 ci-dessous)

PS > Get-VM |Sort Virt* |FT Name,Memory,VirtualizationPlatform,Status

Afin que la ligne de commandes tienne sur une seule ligne, j’ai volontairement utilisé les alias Sort pour Sort-Object et FT pour Format-Table. Sort-Object permet de trier le résultat sur une propriété donnée ; ici sur la propriété qui commence par « Virt ». Le résultat est ensuite renvoyé sous forme de table mais le fait de spécifier le nom de propriétés nous permet de les restreindre. En effet, une machine virtuelle possède des dizaines de propriétés et celles qui nous intéressent plus particulièrement pour cet exemple sont : Name, Memory, VirtualizationPlatform et Status.

Les plus attentifs d’entre vous auront remarqué que des VM de type VMWareESX sont également de la partie. Cela est ainsi car je possède sur ma plateforme un serveur VMWare ESX ainsi qu’un serveur VMWare Virtual Center. SCVMM étant capable de piloter un serveur de type Virtual Center, j’ai donc utilisé cette fonctionnalité. Cette dernière se configure très facilement via l’interface graphique de SCVMM mais également, et bien évidemment, avec PowerShell. Cela se fait via la commande Add-VirtualizationManager et les autres issues de cette même famille que sont : Get-VirtualizationManager, Set-VirtualizationManager, et Remove-VirtualizationManager.

Exemple 2 : Lister uniquement les VM en cours d’exécution
(voir tableau 2 ci-dessous)

PS > Get-VM | Where {$_.Status -eq 'Running'} | FT Name,Virtuali*,Location

Dans ce second exemple, j’ai délibérément choisi de changer les propriétés à afficher. En effet, la propriété Status n’a que peu d’intérêt dans la mesure où c’est sur cette dernière que porte notre commande. Quant à la propriété Location, celle-ci indique l’emplacement des fichiers où sont stockées les machines virtuelles.

Tableau 1 :
 

Name

Windows Server 2003
Windows 2008 R2 DC
Windows 7 x64
vCenter
W2K8R2DC
Ubuntu
W2K3R2 – 32 bits
Windows 7 Pro

Memory

512
512
512
2048
1024
512
1024
512

VirtualizationPlatform

HyperV
HyperV
HyperV
VMWare ESX
VMWare ESX
VMWare ESX
VMWare ESX
VMWare ESX

Status

Running
Running
PowerOff
Checkpoint Failed
Running
Running
Migration Failed
PowerOff


Tableau 2 :
 

Name

Windows 2008 R2 DC
Windows Server 2003
Ubuntu
W2K8R2DC

Virtualization Platform

HyperV
HyperV
VMWare ESX
VMWare ESX

Location

D:\VMs-HyperV\Windows 2008 R2 DC
D:\VMs-HyperV\Windows Server 2003
[datastore1]\Ubuntu
[datastore1]\W2K8R2DC

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 21 octobre 2011