Performing common virtual machine-related tasks with command-line utilities
search cancel

Performing common virtual machine-related tasks with command-line utilities

book

Article ID: 308360

calendar_today

Updated On:

Products

VMware vCenter Server VMware vSphere ESXi

Issue/Introduction

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


Environment

VMware vSphere ESXi 5.0
VMware vSphere Management Assistant 5.5
VMware vSphere CLI 4.1
VMware vCenter Server 5.0.x
VMware vSphere PowerCLI 5.0
VMware vCenter Server Appliance 5.0.x

Resolution

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
 
PowerCLI
vMA
cli
Register a VM
New-VM –vmfilepath “[datastore] path_to_vmx_on_datastore” –vmhost esxhost
vmware-cmd --server esxhost –s register path_to_vmx_file
vmware-cmd --server vcenter --vihost esxhost –s register path_to_vmx_file
vim-cmd solo/registervm path_to_vmx_file
Unregister a VM
Remove-VM vm_name
vmware-cmd --server esxhost –s unregister path_to_vmx_file
vmware-cmd --server vcenter --vihost esxhost –s unregister path_to_vmx_file
vim-cmd
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 --vihost esxhost –s unregister path_to_vmx_file vifs --server esxhost --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 esxhost path_to_vmx_file hassnapshot
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file hassnapshot
vim-cmd vmsvc/get.snapshot vmid
Take a snapshot of a VM
Get-VM –name vm_name | New-Snapshot –name snapshot_name
vmware-cmd --server esxhost path_to_vmx_file createsnapshot snapshot_name
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file createsnapshot snapshot_name
vim-cmd vmsvc/snapshot.create vmid snapshot_name
Remove a snapshot of a VM
Get-VM –name vm_name | Get-Snapshot –name snapshot_name | Remove-Snapshot
vmware-cmd --server esxhost path_to_vmx_file removesnapshots
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file removesnapshots
vim-cmd vmsvc/snapshot.remove vmid
Get the current power state of a VM
Get-VM –name vm_name
vmware-cmd --server esxhost path_to_vmx_file getstate
vmware-cmd --server vcenter --vihost esxhost 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 esxhost path_to_vmx_file getuptime
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file getuptime
vim-cmd vmsvc/get.summary vmid |grep uptimeSeconds
Power on a VM
Start-VM –vm vm_name
vmware-cmd --server esxhost path_to_vmx_file start
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file start
vim-cmd vmsvc/power.on vmid
Shutdown a VM
Shutdown-VMGuest –vm vm_name
vmware-cmd --server esxhost path_to_vmx_file stop soft
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file stop soft
vim-cmd vmsvc/power.shutdown vmid
Power off a VM
Stop-VM –vm vm_name
vmware-cmd --server esxhost path_to_vmx_file stop hard
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file stop hard
esxcli vm process kill –w world_id
vim-cmd vmsvc/power.off vmid
Reboot a VM
Restart-VMGuest –vm vm_name
vmware-cmd --server esxhost path_to_vmx_file reset soft
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file reset soft
vim-cmd vmsvc/power.reboot vmid
Reset a VM
Restart-VM –vm vm_name
vmware-cmd --server esxhost path_to_vmx_file reset hard
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file reset hard
vim-cmd vmsvc/power.reset vmid
Upgrade VMware Tools in a VM
Update-Tools –vm vm_name
N/A
vim-cmd vmsvc/tools.upgrade vmid
Display the IP address of a VM
Get-VMGuestNetworkInterface –vm vm_name -guestuser guest_admin_user -guestpassword guest_admin_password
vmware-cmd --server esxhost path_to_vmx_file getguestinfo ip
vmware-cmd --server vcenter --vihost esxhost path_to_vmx_file getguestinfo ip
vim-cmd vmsvc/get.guest vmid |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 vmware-cmd.pl and vifs.pl, respectively.

For more information about VMware scripting solutions, see:

使用命令行实用程序执行常见的与虚拟机相关的任务
コマンドライン ユーティリティを使用した一般的な仮想マシン関連タスクの実行