Scripter l’arrêt ou le démarrage d’une machine virtuelle sur VMware Server

[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 \

Laisser un commentaire

Cliquez ici pour révoquer votre décision.