Examples of vmrun Commands

The command-line examples that follow work on VMware Fusion. Ubuntu16 is the virtual machine example for Linux and Win10 is the virtual machine example for Windows.

Reboot Commands

  • Reboot a virtual machine.
    vmrun reset Win10.vmwarevm/Win10.vmx soft

Snapshot Commands

  • Create a snapshot of a virtual machine
    vmrun snapshot Ubuntu16.vmwarevm/Ubuntu16.vmx mySnapshot
  • List snapshots on the virtual machine, showing the snapshot created in the previous command.
    vmrun listSnapshots Ubuntu16.vmwarevm/Ubuntu16.vmx
  • Revert to the snapshot you made, which suspends the virtual machine, and restart to resume operation.
    vmrun revertToSnapshot Ubuntu16.vmwarevm/Ubuntu16.vmx mySnapshot
    vmrun start Ubuntu16.vmwarevm/Ubuntu16.vmx
  • Delete the snapshot by specifying its name.
    vmrun deleteSnapshot Ubuntu16.vmwarevm/Ubuntu16.vmx mySnapshot

Network Adapter Commands

  • List all network adapters on a virtual machine.
    vmrun listNetworkAdapters Win10.vmwarevm/Win10.vmx
  • Add a NAT network adapter to a virtual machine.
    vmrun addNetworkAdapter Win10.vmwarevm/Win10.vmx nat

Host Network Commands

  • List all networks on the host.
    vmrun listHostNetworks
  • Add a port forwarding on a host network with examples provided of the host network name, protocol, host port, guest IP address, guest port, and description.
    sudo vmrun setPortForwarding vmnet2 tcp 8082 1.1.1.2 88 portforwarding-description

Running Guest Applications

Most
vmrun
guest operations require VMware Tools to be installed on the guest operating system.
  • Start the command tool, minimized, on a Windows guest.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Win10.vmwarevm/Win10.vmx -interactive cmd.exe
  • Start the command tool on a Windows guest as an active window on the desktop.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Win10.vmwarevm/Win10.vmx -activeWindow -interactive cmd.exe
  • Run a script on a Windows guest, with Perl as the script interpreter. Two separate examples follow.
    vmrun -gu guestUser -gp guestPassword runScriptInGuest Win10.vmwarevm/Win10.vmx -interactive "C:\perl\bin\perl.exe" "system('notepad.exe');"
    vmrun -gu guestUser -gp guestPassword runScriptInGuest Win10.vmwarevm/Win10.vmx -interactive "" "C:\perl\perl.exe C:\script.pl"
  • Run a batch script and keep running afterwards. To use
    cmd.exe
    on Windows, you must specify the script interpreter as null.
    vmrun -gu guestUser -gp guestPassword runScriptInGuest Win10.vmwarevm/Win10.vmx "" "cmd.exe /k \"C:\\Program Files\\Microsoft Visual Studio\\VC\\vcvarsall.bat\" x86"
  • Run a Bash shell script file or Perl script on a Linux guest.
    vmrun -gu guestUser -gp guestPassword runScriptInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx -interactive "" "/bin/bash myscript"
    vmrun -gu guestUser -gp guestPassword runScriptInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx -interactive "/usr/bin/perl" "system('firefox');"
  • Start an X clock on a Linux guest, which requires the
    -display
    option to appear on the console.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx /usr/bin/xclock -display :0
  • Run the same X clock command, but return control back to the console immediately.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx -noWait /usr/bin/xclock -display :0
  • Run Firefox.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx /usr/bin/firefox --display=:0
  • Setting the guest environment with the
    guestEnv
    parameter requires root permission on Linux because the change affects subsequent commands issued by other users.
    vmrun -gu guestUser -gp guestPassword writeVariable Ubuntu16.vmwarevm/Ubuntu16.vmx guestEnv SRC tmp.example.com:1666
  • List processes in a Linux guest and end the process numbered 8192.
    vmrun -gu guestUser -gp guestPassword listProcessesInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx
    vmrun -gu guestUser -gp guestPassword killProcessInGuest UUbuntu16.vmwarevm/Ubuntu16.vmx 8192
  • Run a Perl script on a Linux guest to remove DOS-style carriage returns from a file.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx /usr/bin/perl -e "open(FILE, '>/tmp/unix.txt'); while (<>) { s/\r\n/\n/ ; print FILE}" /tmp/dos.txt
  • Run a Perl script on a Windows guest to insert DOS-style carriage returns in a file.
    vmrun -gu guestUser -gp guestPassword runProgramInGuest Win10.vmwarevm/Win10.vmx C:\cygwin\bin\perl.exe -e "open(FILE, ‘>C:\Users\user\dos.txt’); while (<>) { s/\n/\r\n/ ; print FILE}" C:\Users\guestUser\unix.txt

Guest to Host File Operations

  • To copy a file from the host to a guest, the user must have write permission on the destination.
    vmrun -gu guestUser -gp guestPassword copyFileFromHostToGuest Ubuntu16.vmwarevm/Ubuntu16.vmx ~/img.db /tmp/img.db
  • To copy a file from a guest to the host, the user must have read permission on the source file.
    vmrun -gu guestUser -gp guestPassword copyFileFromGuestToHost Ubuntu16.vmwarevm/Ubuntu16.vmx /home/username/addr addr.txt
  • To enable shared folders.
    vmrun enableSharedFolders Ubuntu16.vmwarevm/Ubuntu16.vmx
  • To share a folder on a Mac host with a particular Linux guest.
    Before sharing folders, you must enable them with the
    enabledSharedFolders
    option, or by selecting
    Enable Shared Folders
    in the
    Sharing Settings
    panel of the virtual machine. On Linux guests, the
    /mnt/hgfs
    directory is available for sharing, but you can use a different directory for shared folders.
    vmrun addSharedFolder Ubuntu16.vmwarevm/Ubuntu16.vmx sharedFolderName ~/Share
  • To make a shared folder read‐only or to delete the shared folder.
    Shared folders are writable by default.
    vmrun setSharedFolderState Ubuntu16.vmwarevm/Ubuntu16.vmx sharedFolderName ~/Share readonly
    vmrun removeSharedFolder Ubuntu16.vmwarevm/Ubuntu16.vmx sharedFolderName
    On Windows Vista and Windows 7 or later guests, only the Administrator account can use
    copyFileFromHostToGuest
    and
    deleteFileInGuest
    options to write and delete files in the
    C:\
    and system folders, or use the
    createDirectoryInGuest
    and
    deleteDirectoryInGuest
    options to modify system directories. Regular users, even those with administrator privilege, cannot perform these operations.

Guest Variables and Environment

  • From the host, set a guest variable on the virtual machines.
    vmrun writeVariable Win10.vmwarevm/Win10.vmx guestVar vmstartdate 21April2017
  • On the guest operating systems, read the guest variable that you just set.
    > rpctool.exe "info-get guestinfo.vmstartdate"
    $ vmware-rpctool "info-get guestinfo.vmstartdate"
  • From the host, set a guest environment variable on a Linux virtual machine and verify by writing the environment variables into a temporary file.
    vmrun writeVariable Ubuntu16.vmwarevm/Ubuntu16.vmx guestEnv LD_LIBRARY_PATH /usr/local/lib Guest user: root Guest password:
    vmrun runScriptInGuest Ubuntu16.vmwarevm/Ubuntu16.vmx /bin/bash "/usr/bin/env > /tmp/env.out" Guest user: root Guest password:
    No output is sent to the host when you use the
    runScriptInGuest
    option with the
    vmrun
    command. Find the output of the command in the
    /tmp/env.out
    file on the guest.
  • On a Linux guest, determine the IP address and set it in a guest variable.
    $ ipaddr=`ifconfig eth0 | grep inet.addr` $ vmware-rpctool "info-set guestinfo.theip $ipaddr"
  • From the host, retrieve the IP address that was just set to the guest.
    vmrun readVariable Ubuntu10/Ubuntu10.vmx guestVar theip

General Commands

  • List running virtual machines.
    vmrun list Total running VMs: 2
    Absolute-path-to-virtual-machine
    .vmx
    Absolute-path-to-virtual-machine
    .vmx
  • Prepare to install VMware Tools.
    vmrun installTools Ubuntu16.vmwarevm/Ubuntu16.vmx

The Template Virtual Machine Commands

  • Download a VMware Project Photon operating system virtual machine.
    vmrun
    downloadPhotonVM
    ~