[Mise à jour : Le développement de VMware Server a été interrompu. Veuillez désormais utiliser VMware Player]
Je vous propose de voir comment arrêter ou démarrer une ou plusieurs machines virtuelles en ligne de commande depuis un serveur VMware Server. C’est très simple mais surtout très pratique puisqu’il suffit de créer 2 fichiers .BAT afin de lancer en 1 seul clic l’arrêt ou le démarrage des VMs !
Nous allons pour cela utiliser la commande vmware-cmd que l’on trouve par défaut dans le répertoire C:\Program Files\VMware\VMware Server d’un serveur VMware.
Voici d’ailleurs toutes les options disponibles pour cette commande:
C:\Program Files\VMware\VMware Server>vmware-cmd /? Usage: C:\Program Files\VMware\VMware Server\vmware-cmd <options> <vm-cfg-path><vm-action> <arguments> C:\Program Files\VMware\VMware Server\vmware-cmd -s <options> <server-action> <arguments>Options: Connection Options: -H <host> specifies an alternative host (if set, -U and -P must also be set) -O <port> specifies an alternative port -U <username> specifies a user -P <password> specifies a password General Options: -h More detailed help. -q Quiet. Minimal output -v Verbose. Server Operations: C:\Program Files\VMware\VMware Server\vmware-cmd -l C:\Program Files\VMware\VMware Server\vmware-cmd -s register <config_file_path> C:\Program Files\VMware\VMware Server\vmware-cmd -s unregister <config_file_path> C:\Program Files\VMware\VMware Server\vmware-cmd -s getresource <variable> C:\Program Files\VMware\VMware Server\vmware-cmd -s setresource <variable> <value> VM Operations: C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getconnectedusers C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getstate C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> start <powerop_mode> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> stop <powerop_mode> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> reset <powerop_mode> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> suspend <powerop_mode> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> setconfig <variable><value> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getconfig <variable> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> setguestinfo <variable> <value> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getguestinfo <variable> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getid C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getpid C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getproductinfo <prodinfo> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> connectdevice <device_name> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> disconnectdevice <device_name> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getconfigfile C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getheartbeat C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getuptime C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getremoteconnections C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> gettoolslastactive C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getresource <variable> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> setresource <variable> <value> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> setrunasuser <username> <password> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getrunasuser C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> getcapabilities C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> addredo <disk_device_name> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> commit <disk_device_name> <level> <freeze> <wait> C:\Program Files\VMware\VMware Server\vmware-cmd <cfg> answer C:\Program Files\VMware\VMware Server>
Démarrer une machine avec vmware-cmd
Je créé sur mon serveur VMware un nouveau fichier avec l’extension .BAT dans le quel je copie le code suivant:
C: cd "\Program Files\VMWare\VMware Server" call vmware-cmd "D:\Virtual Machines\W2000\Windows 2000.vmx" start call vmware-cmd "D:\Virtual Machines\W2003\Windows 2003.vmx" start call vmware-cmd "D:\Virtual Machines\W2008\Windows 2008.vmx" start cd \
Il me suffit alors de lancer mon script .BAT pour démarrer les 3 machines virtuelles nommées respectivement : Windows 2000, Windows 2003 et Windows 2008.
Arrêter une machine avec vmware-cmd
De la même manière le script suivant me permet de stopper les 3 mêmes machines virtuelles:
C: cd "\Program Files\VMWare\VMware Server" call vmware-cmd "D:\Virtual Machines\W2000\Windows 2000.vmx" stop call vmware-cmd "D:\Virtual Machines\W2003\Windows 2003.vmx" stop call vmware-cmd "D:\Virtual Machines\W2008\Windows 2008.vmx" stop cd \