Latest Posts


Total Pageviews

Monday, 22 December 2014

Performing common virtual machine-related tasks with command-line utilities (2012964)


This article provides a side-by-side comparison of performing virtual machine-related tasks using different VMware utilities and command line methods.


In these examples:
  • vcenter is your vCenter Server hostname
  • esxhost is your ESX/ESXi hostname
  • datastore is the display name of your datastore
  • path_to_vmx_on_datastore is the path to the virtual machine's vmx file relative to the datastore on which it resides
  • vm_name is the display name of a virtual machine
  • path_to_vmx_file is the full path to a virtual machine's vmx file
  • snapshot_name is the name given to a virtual machine snapshot
  • guest_admin_user is a user account with administrative access within a virtual machine's guest OS
  • guest_admin_password is the password for the account noted by guest_admin_user
Register a VM
New-VM –vmfilepath “[datastore]path_to_vmx_on_datastore” –vmhostesxhost
vmware-cmd --server esxhost –s register path_to_vmx_file
vmware-cmd --server vcenter --vihostesxhost –s register path_to_vmx_file
vim-cmd solo/registervmpath_to_vmx_file
Unregister a VM
Remove-VM vm_name
vmware-cmd --server esxhost –s unregister path_to_vmx_file
vmware-cmd --server vcenter --vihostesxhost –s unregisterpath_to_vmx_file
vmsvc/unregister vmid
Delete a VM
Remove-VM vm_name -deletepermanently
vmware-cmd --server esxhost –s unregister path_to_vmx_file
vmware-cmd --server vcenter --vihostesxhost –s unregisterpath_to_vmx_file vifs --serveresxhost --rm “[datastore]path_to_vmx_on_datastore
vim-cmd vmsvc/destroy vmid
Get a listing of VMs on a host
Get-VM –location esxhost
vmware-cmd –-server esxhost –-username root –l
vmware-cmd --server vcenter –-vihost esxhost -l
esxcli vm process list
vim-cmd vmsvc/getallvms
Determine if a VM has a snapshot
Get-VM –name vm_name | Get-Snapshot
vmware-cmd --server esxhostpath_to_vmx_file hassnapshot
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file hassnapshot
vim-cmd vmsvc/get.snapshotvmid
Take a snapshot of a VM
Get-VM –name vm_name | New-Snapshot –name snapshot_name
vmware-cmd --server esxhostpath_to_vmx_file createsnapshotsnapshot_name
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_filecreatesnapshot snapshot_name
vim-cmd vmsvc/snapshot.create vmidsnapshot_name
Remove a snapshot of a VM
Get-VM –name vm_name | Get-Snapshot –name snapshot_name | Remove-Snapshot
vmware-cmd --server esxhostpath_to_vmx_file removesnapshots
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_fileremovesnapshots
vim-cmd vmsvc/snapshot.remove vmid
Get the current power state of a VM
Get-VM –name vm_name
vmware-cmd --server esxhostpath_to_vmx_file getstate
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file getstate
vim-cmd vmsvc/power.getstate vmid
Get the uptime for a VM
Get-Stat -entity vm_name -stat sys.uptime.latest -MaxSamples 1
vmware-cmd --server esxhostpath_to_vmx_file getuptime
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file getuptime
vim-cmd vmsvc/get.summaryvmid |grep uptimeSeconds
Power on a VM
Start-VM –vm vm_name
vmware-cmd --server esxhostpath_to_vmx_file start
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file start
vim-cmd vmsvc/power.on vmid
Shutdown a VM
Shutdown-VMGuest –vm vm_name
vmware-cmd --server esxhostpath_to_vmx_file stop soft
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file stop soft
vim-cmd vmsvc/power.shutdown vmid
Power off a VM
Stop-VM –vm vm_name
vmware-cmd --server esxhostpath_to_vmx_file stop hard
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file stop hard
esxcli vm process kill –wworld_id
vim-cmd vmsvc/power.offvmid
Reboot a VM
Restart-VMGuest –vm vm_name
vmware-cmd --server esxhostpath_to_vmx_file reset soft
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file reset soft
vim-cmd vmsvc/power.rebootvmid
Reset a VM
Restart-VM –vm vm_name
vmware-cmd --server esxhostpath_to_vmx_file reset hard
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file reset hard
vim-cmd vmsvc/power.resetvmid
Upgrade VMware Tools in a VM
Update-Tools –vm vm_name
vim-cmd vmsvc/tools.upgradevmid
Display the IP address of a VM
Get-VMGuestNetworkInterface –vmvm_name -guestuserguest_admin_user -guestpasswordguest_admin_password
vmware-cmd --server esxhostpath_to_vmx_file getguestinfo ip
vmware-cmd --server vcenter --vihostesxhost path_to_vmx_file getguestinfo ip
vim-cmd vmsvc/get.guestvmid |grep -m 1 "ipAddress = \""

Additional Information

The VMware vCLI can also be used. The commands are almost the same as the vMA commands, but vmware-cmd and vifs are and, respectively.
For more information about VMware scripting solutions, see:
Note : The vim-cmd command is not supported.