I’m working on scripting a shutdown/logoff script for my host machine that will suspend any running virtual machines as the host powers off, then restart them when the host restarts (or when a specific user logs in).
VMware provides a hand command line utility, vmrun, to send commands to VMware Workstation or VMware Server. The power options are:
- start – Powers on a virtual machine. The virtual machine may be started without a VMware user interface by passing the nogui parameter.
- stop – Powers off a virtual machine. The guest OS can be made aware of the shutdown by passing the soft parameter, or the power can be abruptly cut by passing the hard parameter.
- reset – Restarts a virtual machine. The guest OS can be made aware of the restart by passing the soft parameter, or the power can be abruptly cut by passing the hard parameter.
- suspend – Suspends a virtual machine. The guest OS can be made aware of the suspend command by passing the soft parameter, allowing it to sleep/hibernate (if supported).
- pause – Pauses a virtual machine.
- unpause – Resumes a paused virtual machine.
For power commands that support the soft parameter, specifying soft sends instructions to the guest OS to allow it to gracefully power down, sleep, hibernate, etc. This also allows scripts to run in VMware Tools, or in the guest OS itself.
The pause and unpause commands are instructions to VMware Workstation or VMware Server and are invisible to the guest OS.
The vmrun utility does much more than start and stop virtual machines. The official manual from VMware for Workstation 6.5 and Server 2.0 can be found at http://www.vmware.com/products/beta/ws/vmrunCommand.pdf.
The help screen for vmrun is below.
vmrun version 7.1.5 build-491717 Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS] AUTHENTICATION-FLAGS -------------------- These must appear before the command and any command parameters. -h(not needed for Workstation) -P (not needed for Workstation) -T (ws|server|server1|fusion|esx|vc|player) for example, use '-T server' for VMware Server 2.0 use '-T server1' for VMware Server 1.0 use '-T ws' for VMware Workstation use '-T esx' for VMware ESX use '-T vc' for VMware vCenter Server -u (not needed for Workstation) -p (not needed for Workstation) -vp -gu -gp POWER COMMANDS PARAMETERS DESCRIPTION -------------- ---------- ----------- start Path to vmx file Start a VM or Team [gui|nogui] stop Path to vmx file Stop a VM or Team [hard|soft] reset Path to vmx file Reset a VM or Team [hard|soft] suspend Path to vmx file Suspend a VM or Team [hard|soft] pause Path to vmx file Pause a VM unpause Path to vmx file Unpause a VM SNAPSHOT COMMANDS PARAMETERS DESCRIPTION ----------------- ---------- ----------- listSnapshots Path to vmx file List all snapshots in a VM [showTree] snapshot Path to vmx file Create a snapshot of a VM Snapshot name deleteSnapshot Path to vmx file Remove a snapshot from a VM Snapshot name [andDeleteChildren] revertToSnapshot Path to vmx file Set VM state to a snapshot Snapshot name RECORD/REPLAY COMMANDS PARAMETERS DESCRIPTION ---------------------- ---------- ----------- beginRecording Path to vmx file Begin recording a VM Snapshot name endRecording Path to vmx file End recording a VM beginReplay Path to vmx file Begin replaying a VM Snapshot name endReplay Path to vmx file End replaying a VM GUEST OS COMMANDS PARAMETERS DESCRIPTION ----------------- ---------- ----------- runProgramInGuest Path to vmx file Run a program in Guest OS [-noWait] [-activeWindow] [-interactive] Complete-Path-To-Program [Program arguments] fileExistsInGuest Path to vmx file Check if a file exists in Guest OS Path to file in guest setSharedFolderState Path to vmx file Modify a Host-Guest shared folder Share name Host path writable | readonly addSharedFolder Path to vmx file Add a Host-Guest shared folder Share name New host path removeSharedFolder Path to vmx file Remove a Host-Guest shared folder Share name enableSharedFolders Path to vmx file Enable shared folders in Guest [runtime] disableSharedFolders Path to vmx file Disable shared folders in Guest [runtime] listProcessesInGuest Path to vmx file List running processes in Guest OS killProcessInGuest Path to vmx file Kill a process in Guest OS process id runScriptInGuest Path to vmx file Run a script in Guest OS [-noWait] [-activeWindow] [-interactive] Interpreter path Script text deleteFileInGuest Path to vmx file Delete a file in Guest OS Path in guest createDirectoryInGuest Path to vmx file Create a directory in Guest OS Directory path in guest deleteDirectoryInGuest Path to vmx file Delete a directory in Guest OS Directory path in guest listDirectoryInGuest Path to vmx file List a directory in Guest OS Directory path in guest CopyFileFromHostToGuest Path to vmx file Copy a file from host OS to guest OS Path on host Path in guest CopyFileFromGuestToHost Path to vmx file Copy a file from guest OS to host OS Path in guest Path on host renameFileInGuest Path to vmx file Rename a file in Guest OS Original name New name captureScreen Path to vmx file Capture the screen of the VM to a local file Path on host writeVariable Path to vmx file Write a variable in the VM state [runtimeConfig|guestEnv] variable name variable value readVariable Path to vmx file Read a variable in the VM state [runtimeConfig|guestEnv] variable name VPROBE COMMANDS PARAMETERS DESCRIPTION --------------- ---------- ----------- vprobeVersion Path to vmx file List VP version vprobeLoad Path to vmx file Load VP script 'VP script text' vprobeLoadFile Path to vmx file Load VP file Path to VP file vprobeReset Path to vmx file Disable all vprobes vprobeListProbes Path to vmx file List probes vprobeListGlobals Path to vmx file List global variables GENERAL COMMANDS PARAMETERS DESCRIPTION ---------------- ---------- ----------- list List all running VMs upgradevm Path to vmx file Upgrade VM file format, virtual hw installTools Path to vmx file Install Tools in Guest register Path to vmx file Register a VM unregister Path to vmx file Unregister a VM listRegisteredVM List registered VMs deleteVM Path to vmx file Delete a VM clone Path to vmx file Create a copy of the VM Path to destination vmx file full|linked [Snapshot name] Examples: Starting a virtual machine with Workstation on a Windows host vmrun -T ws start "c:\my VMs\myVM.vmx" Stopping a virtual machine on an ESX host vmrun -T esx -h https://myHost.com/sdk -u hostUser -p hostPassword stop "[storage1] vm/myVM.vmx" Running a program in a virtual machine with Workstation on a Windows host with Windows guest vmrun -T ws -gu guestUser -gp guestPassword runProgramInGuest "c:\my VMs\myVM.vmx" "c:\Program Files\myProgram.exe" Running a program in a virtual machine with Server on a Linux host with Linux guest vmrun -T server -h https://myHost.com:8333/sdk -u hostUser -p hostPassword -gu guestUser -gp guestPassword runProgramInGuest "[standard] vm/myVM.vmx" /usr/bin/X11/xclock -display :0 Creating a snapshot of a virtual machine with Workstation on a Windows host vmrun -T ws snapshot "c:\my VMs\myVM.vmx" mySnapshot Reverting to a snapshot with Workstation on a Windows host vmrun -T ws revertToSnapshot "c:\my VMs\myVM.vmx" mySnapshot Deleting a snapshot with Workstation on a Windows host vmrun -T ws deleteSnapshot "c:\my VMs\myVM.vmx" mySnapshot Enabling Shared Folders with Workstation on a Windows host vmrun -T ws enableSharedFolders "c:\my VMs\myVM.vmx"
Additional resources: http://www.virtuatopia.com/index.php/Controlling_VMware_Virtual_Machines_from_the_Command_Line_with_vmrun
hi, I cannot find the “beginRecording” in the help of vmrun, when I execute this command, faced with error : ‘unrecognized command : Beginrecording’
what is the problem?