日常中很多时候需要用到虚拟机,vbox和vmware都是windows系统下不错的虚

拟机软件,但是因为vbox的虚拟网络参数比较难调一些,所以我选择了使用vmware

虚拟机,在使用中遇到了一些不便,每次开机之后我都要手动打开虚拟机,感

觉很麻烦,于是从网上搜索了一下,通过命令行使用vmware.exe和vmrun.exe这

两个工具,都能实现从命令行启动虚拟机。

我自己使用的是vmrun工具来启动虚拟机的。vmrun的具体操作参数如下:

----------------------------------------------------------------------------

 

Usage: vmrun [AUTHENTICATION-FLAGS] COMMAND [PARAMETERS]

 

 

 

AUTHENTICATION-FLAGS

--------------------

These must appear before the command and any command parameters.

 

   -h <hostName>  (not needed for Workstation)

   -P <hostPort>  (not needed for Workstation)

   -T <hostType> (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 ws-shared' for VMware Workstation (shared mode)

                  use '-T esx' for VMware ESX

                  use '-T vc' for VMware vCenter Server

   -u <userName in host OS>  (not needed for Workstation)

   -p <password in host OS>  (not needed for Workstation)

   -vp <password for encrypted virtual machine>

   -gu <userName in guest OS>

   -gp <password in guest OS>

 

 

 

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

 

 

 

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

 

directoryExistsInGuest   Path to vmx file     Check if a directory exists in Gue

st OS

                         Path to directory 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|guestVar]

                         variable name

                         variable value

 

readVariable             Path to vmx file     Read a variable in the VM state

                         [runtimeConfig|guestEnv|guestVar]

                         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 "[sto

rage1] vm/myVM.vmx"

 

 

Running a program in a virtual machine with Workstation on a Windows host with W

indows 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 gu

est

   vmrun -T server -h https://myHost.com:8333/sdk -u hostUser -p hostPassword -g

u guestUser -gp guestPassword runProgramInGuest "[standard] vm/myVM.vmx" /usr/bi

n/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"

--------------------------------------------------------------------------

其中的常用参数:

list  显示当前正在运行的虚拟机列表

-T (ws|server|server1|fusion|esx|vc|player)  指定虚拟机的类型

start 启动虚拟机

suspend 暂停虚拟机

 

使用示例:

前台启动脚本

--------------------------------------------------------------------------

cd /d H:\Installed-soft\VMware Workstation

vmrun -T ws start "h:\virtual machines\nagios_32\nagios_32.vmx"

--------------------------------------------------------------------------

后台启动脚本(使用nogui参数实现)

--------------------------------------------------------------------------

cd /d H:\Installed-soft\VMware Workstation

vmrun -T ws start "h:\virtual machines\nagios_32\nagios_32.vmx" nogui

--------------------------------------------------------------------------

虚拟机暂停脚本(适用于vm8.0)

--------------------------------------------------------------------------cd /d H:\Installed-soft\VMware Workstation

vmrun suspend "h:\virtual machines\nagios_32\nagios_32.vmx"

--------------------------------------------------------------------------

以上的内容,适用于vmware8.0,其他的版本请自行测试。

后续的脚本,会不定时更新。