Nous partons du principe où la connexion existe déjà entre la console PowerCLI et un serveur vCenter (avec la commande Connect-VIServer).
Lister les VM
PS > Get-VM
Name PowerState Num CPUs Memory (MB)
---- ---------- -------- -----------
Quelques cas d’usages

/>
W2K3R2 – 32 bits PoweredOff 1 1024
Ubuntu PoweredOn 1 512
Windows 7 Pro PoweredOn 1 512
W2K8R2DC PoweredOn 1 1024
vCenter PoweredOn 1 2048
La commande Get-VM retourne un tableau d’objets de type VirtualMachine. Get-VM ne retourne par défaut que les propriétés les plus essentielles. Pour connaître la liste des membres (propriétés et méthodes) disponibles, nous pouvons utiliser la commande Get- Member comme ceci :
PS > Get-VM | Get-Member
TypeName: VMware.VimAutomation.Client20.VirtualMachineImpl
Name MemberType Definition
—- ———- ———-
Equals Method bool Equals(System.Object
obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
CDDrives Property VMware.VimAutomation.
Types.CDD…
CustomFields Property System.Collections.Generic.
IDi…
DatastoreIdList Property System.String[] DatastoreIdLis…
Description Property System.String Description
{get…
DrsAutomationLevel Property System.Nullable`1[[VMware.
VimA…
FloppyDrives Property VMware.VimAutomation.
Types.Flo…
FolderId Property System.String FolderId
{get;}
Guest Property VMware.VimAutomation.
Types.VMG…
…
PowerState Property VMware.VimAutomation.
Types.Pow…
ResourcePoolId Property System.String ResourcePoolId
{…
UsbDevices Property VMware.VimAutomation.
Types.Usb…
VMHostId Property System.String VMHostId
{get;}
VMSwapfilePolicy Property System.Nullable`1[[VMware.
VimA…
Comme pour tout objet de type tableau, nous pouvons filtrer son contenu par le biais de la commande Where-Object pour n’obtenir que les résultats qui correspondent à nos critères. Comme par exemple ceux dont la propriété PowerState vaut « PoweredOff ».
Lister les VM arrêtées
PS > Get-VM | Where-Object {$_.PowerState -eq ‘PoweredOff’}
Name PowerState Num CPUs Memory (MB)
—- ———- ——– ———–
W2K3R2 – 32 bits PoweredOff 1 1024
Créer un snapshot sur une VM
Nous pouvons, par exemple, avant l’application d’un Service Pack effectuer un snapshot sur notre serveur vCenter avec la commande suivante :
PS > New-Snapshot -VM vCenter -Name ‘Snapshot avant application
SP’ -Quiesce
Lister les VM qui ont un snapshot
La commande Get-Snapshot nous retourne les noms et la taille de tous les snapshots existant dans notre infrastructure VMware. C’est bien certes, mais cela ne nous dit pas à quelles machines appartiennent ces snapshots, ni la date à laquelle ils ont été créés. Qu’à cela ne tienne, la commande suivante va régler notre « problème » :
PS > Get-Snapshot -VM * | Format-Table
VM,Name,Created,SizeMB
VM Name Created SizeMB
— —- ——- ——
Ubuntu avant mise à jour 23/05/2010 18:50:39 3513,79
vCenter Snapshot avant 24/05/2010 15:16:35 15655,03
application SP
Déterminer l’état des VMware Tools
Connaître l’état des VMware Tools est important notamment pour savoir s’ils sont installés ou non ou s’ils nécessitent une mise à jour. Cependant lorsque l’on regarde leur état avec le VI Client, ce dernier nous retourne également l’état des VMware Tools des VM éteintes et cet état a forcément la valeur « NotRunning ». Pour ne plus avoir ce souci, nous disposons de la commande suivante :
PS > Get-VM | Where {$_.PowerState -eq ‘PoweredOn’} |
Select-Object Name, {$_.Guest.State}
Name $_.Guest.State
—- ————–
Ubuntu Running
Windows 7 Pro NotRunning
W2K8R2DC Running
vCenter Running
Mettre à jour les VMware Tools
Heureusement pour nous, PowerCLI possède pour se faire la commande Update-Tools, ce qui va nous éviter la tendinite au poignet à cause de la multitude de clics droit suivis de Guest/Install-Update VMware Tools qu’il aurait fallu faire lorsque l’on a un grand nombre de VM à mettre à jour.
Cette commande possède le commutateur -NoReboot, qui, s’il est spécifié évite un redémarrage non désiré après la mise à jour. La commande suivante déclenche la mise à jour des outils sur une machine :
PS > Update-Tools -VM ‘Windows 7 Pro’
A présent, nous pourrions déclencher la mise à jour de plusieurs machines de la façon suivante :
PS > Update-Tools -VM ‘Windows 7 Pro’, VM1, VM35, vCenter,
VM52
Création de multiples VM
Un dernier exemple et nous nous arrêterons là, comment créer un ensemble de machines virtuelles en une seule opération pour construire une maquette par exemple. Premièrement essayons d’y aller étape par étape, en observant la syntaxe nécessaire à la création d’une VM unitaire :
PS > New-VM -Name vm1 -GuestId ‘winXPProGuest’ -DiskMB
5000 -MemoryMB 256 -VMHost 192.168.1.5
Cette ligne de commande crée une VM de type Windows XP Professionnel 32 bits avec 256 Mo de RAM et un disque d’une capacité de 5 Go. A présent, ajoutons une simple boucle à notre ligne de commandes et le tour sera joué :
PS > 1..10 | Foreach {
New-VM -Name vm$_ -GuestId ‘winXPProGuest’ -DiskMB 5000
-MemoryMB 256 -VMHost 192.168.1.5 }
Et voilà, nous venons de créer dix machines en une opération. N’est-ce pas fantastique ?
Téléchargez cette ressource

Guide de téléphonie d’entreprise avec Teams
Ajouter un onglet téléphonie à Microsoft Teams pour émettre et recevoir des appels depuis n’importe quel terminal connecté. Découvrez dans ce guide pratique, comment bénéficier des avantages de l’offre TeamsPhony pour faire des économies, gagner en agilité et en simplicité avec une offre de téléphonie dans le cloud.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Delinea : la réponse aux exigences d’accès des entreprises hybrides modernes
- Data, désapprendre pour développer ses compétences en matière de données
- Atos et Eviden : la réponse aux défis cybersécurité et numériques, européens et mondiaux
- Google Cloud : des mécanismes innovants de détection et de réponse
- Vidéo Private Endpoint, « the Game Changer”
