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-descriptioin
    

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.

    Note:

    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.

    Note:

    Shared folders are writable by default.

    vmrun setSharedFolderState Ubuntu16.vmwarevm/Ubuntu16.vmx sharedFolderName ~/Share readonly
    
    vmrun removeSharedFolder Ubuntu16.vmwarevm/Ubuntu16.vmx sharedFolderName
    Note:

    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:
    Note:

    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 ~