VMWare : Utilisation de PowerCLI
https://www.nakivo.com/blog/basic-powercli-scripting-vmware-vsphere/
Le récupérer
Depuis le site
Il faut commencer par s'inscrire sur le site de VMware pour pouvoir DL l'éxecutable :
Ensuite, il faut l'installer. Enfin, on peut le lancer à part en cherchant directement "PowerCLI" dans Windows.
Comme module PS
La première méthode n'est pas terrible, car on ne peut ouvrir le module directement dans PowerShell. Pour cela, il faut passer par PSgallery :
Dans une console en admin :
PS C:\WINDOWS\system32> find-module -Name VMWare.PowerCLI Version Name Repository Description ------- ---- ---------- ----------- 11.3.0.... VMware.PowerCLI PSGallery This Windows PowerShell module contains VMware.P... PS C:\WINDOWS\system32> Install-Module -Name VMWare.PowerCLI
Lors de l'installation, on pourrait rajouter -Scope CurrentUser, ce qui permettrait de ne l'installer que pour soi et donc de ne pas avoir besoin de passer en admin à chaque fois (mais dans mon cas, je ne peux installer quoi que ce soit sans passer en admin...).
Le téléchargement doit se lancer. Si PowerCLI avait déjà été installé par la première méthode, le désinstaller.
L'utiliser
Pour L'ouvrir, c'est simple :
PS C:\WINDOWS\system32> Import-Module VMWare.PowerCLI Welcome to VMware PowerCLI! Log in to a vCenter Server or ESX host: Connect-VIServer To find out what commands are available, type: Get-VICommand To show searchable help for all PowerCLI commands: Get-PowerCLIHelp Once you've connected, display all virtual machines: Get-VM If you need more help, visit the PowerCLI community: Get-PowerCLICommunity Copyright (C) VMware, Inc. All rights reserved.
Ensuite, je ne vais pas passer toutes les commandes en revue, mais :
Connection
- connect-viserver –server 〈yourserver〉
Opérations sur les VMs
- Get-VM - The get-vm commandlet lists VMs running on the connected host
- Get-VM | fl
- Get-VM | where-object {$_.PowerState –eq “PoweredOff”}
- Get-VM | where-object {$_.PowerState –eq “PoweredOff”} | Start-VM
- Get-VM 〈yourvm〉 | Stop-VMguest
- Get-VM | where-object {$_.NumCpu –gt 1 }