核心命令:vmware-cmd
这是最基础、最直接的 VMware 命令行工具,通常安装在 ESXi 主机或 Workstation/Player 的 Linux 虚拟机中。

(图片来源网络,侵删)
基本语法
vmware-cmd <vm_config_file_path> <command> [options]
<vm_config_file_path>: 虚拟机配置文件的绝对路径,/vmfs/volumes/datastore1/MyVM/MyVM.vmx。<command>: 要执行的操作命令。[options]: 可选参数。
常用命令
A. 虚拟机状态查询
# 查看虚拟机电源状态 (on, off, suspended) vmware-cmd /path/to/vm.vmx getstate # 检查虚拟机是否正在运行 vmware-cmd /path/to/vm/vmx checkpowerstate on # 获取虚拟机所有配置信息 vmware-cmd /path/to/vm/vmx getallinfo
B. 虚拟机电源管理
# 开机 vmware-cmd /path/to/vm/vmx start # 关机 (正常关机) vmware-cmd /path/to/vm/vmx stop hard # 强制关机 (等同于拔电源) vmware-cmd /path/to/vm/vmx stop soft # 挂起 (保存当前状态到文件) vmware-cmd /path/to/vm/vmx suspend # 从挂起状态恢复 vmware-cmd /path/to/vm/vmx resume
C. 虚拟机快照管理
# 创建快照 (需要指定名称) vmware-cmd /path/to/vm/vmx snapshot create "My Snapshot" # 列出所有快照 vmware-cmd /path/to/vm/vmx snapshot list # 删除指定名称的快照 vmware-cmd /path/to/vm/vmx snapshot remove "My Snapshot" # 回滚到指定名称的快照 vmware-cmd /path/to/vm/vmx snapshot revert "My Snapshot"
D. 其他实用命令

(图片来源网络,侵删)
# 重置虚拟机 (相当于强制重启) vmware-cmd /path/to/vm/vmx reset # 在虚拟机中执行命令 (需要 VMware Tools 安装并运行) vmware-cmd /path/to/vm/vmx run "command_in_guest" # 检查虚拟机是否响应 vmware-cmd /path/to/vm/vmx checktoolsstate
现代命令行工具:govc (强烈推荐)
govc 是 vSphere Management SDK 的一部分,是一个功能更强大、更现代、跨平台的 Go 语言工具,它取代了旧的 vSphere CLI,如果你在使用 vCenter Server 或 ESXi 6.0+,强烈建议使用 govc。
安装和配置
首先需要下载并安装 govc,然后需要配置连接信息。
# 设置 ESXi 主机或 vCenter 的 IP/域名 export GOVC_URL=esxi_host_or_vcenter_ip # 设置用户名和密码 export GOVC_USERNAME=root export GOVC_PASSWORD=your_password # (可选) 设置默认的数据中心、数据存储、网络等 export GOVC_DATACENTER=ha-datacenter export GOVC_DATASTORE=datastore1 export GOVC_NETWORK="VM Network"
常用命令
A. 虚拟机查找和列表
# 列出所有虚拟机 govc ls /ha-datacenter/vm # 使用通配符查找虚拟机 govc ls /ha-datacenter/vm/*web* # 查找特定虚拟机 govc find / -type m -name "MyVM"
B. 虚拟机信息

(图片来源网络,侵删)
# 获取虚拟机的配置文件路径 govc object.info -L /ha-datacenter/vm/MyVM # 获取虚拟机的电源状态 govc vm.info MyVM | grep "Power state" # 获取虚拟机的 IP 地址 (需要 VMware Tools) govc vm.ip MyVM
C. 虚拟机电源管理
# 开机 govc vm.power -on MyVM # 关机 (正常关机) govc vm.power -off MyVM # 强制关机 govc vm.power -forceoff MyVM # 重启 govc vm.power -reset MyVM
D. 虚拟机生命周期管理
# 克隆虚拟机 (从模板或现有 VM) govc vm.clone -template=true -on=false -vm=template-ubuntu my-new-vm # 部署 OVF/OVA 文件 govc import.ovf my-app.ova my-new-vm-from-ova # 删除虚拟机 (会弹出确认) govc vm.destroy MyVM # 注册虚拟机 (将 .vmx 文件添加到 vCenter) govc vm.register /path/to/vm/vmx
E. 快照管理
# 创建快照 govc snapshot.create -n "backup-snapshot" -d "Before patching" MyVM # 列出快照树 govc snapshot.tree MyVM # 删除快照 govc snapshot.remove MyVM backup-snapshot # 回滚快照 govc snapshot.revert MyVM backup-snapshot
F. 资源管理
# 虚拟机磁盘操作 govc disk.create -s 100G -a lsilogic -t thin MyVM new_disk.vmdk # 添加网络适配器 govc device.add -net pcnet32 MyVM # 移除设备 govc device.remove -vm MyVM disk-2000
vCenter Server 特有命令
如果你使用的是 vCenter,还可以使用 vifs 命令,它专门用于在 vCenter 和 ESXi 主机之间进行文件传输,类似于 scp 或 sftp。
vifs 命令示例
# 将本地文件上传到 ESXi 主机的数据存储 vifs --server <esxi_ip> --username root put /local/path/file.txt /vmfs/volumes/datastore1/file.txt # 从 ESXi 主机下载文件到本地 vifs --server <esxi_ip> --username root get /vmfs/volumes/datastore1/file.txt /local/path/file.txt # 列出数据存储中的文件 vifs --server <esxi_ip> --username root ls /vmfs/volumes/datastore1/
工作台/玩家版命令 (VMware Workstation/Player)
对于桌面版的 VMware,命令行支持相对较少,但也有一些实用工具。
vmrun
vmrun 是用于自动化 Workstation 和 Player 的核心工具。
基本语法:
vmrun -T <host_type> <command> <vm_path> [args]
-T <host_type>: 指定主机类型,如ws(Workstation),player(Player),esx(ESXi),vcenter(vCenter)。
常用命令:
# 启动虚拟机 vmrun -T ws start "C:\VMs\Win10\Win10.vmx" # 关闭虚拟机 vmrun -T ws stop "C:\VMs\Win10\Win10.vmx" soft # 获取虚拟机状态 vmrun -T ws getstate "C:\VMs\Win10\Win10.vmx" # 在虚拟机中执行命令 (需要安装 VMware Tools) vmrun -T ws runProgramInGuest "C:\VMs\Win10\Win10.vmx" -interactive "cmd.exe" /c "echo hello > C:\test.txt"
总结与对比
| 工具名称 | 主要用途 | 使用环境 | 特点 |
|---|---|---|---|
vmware-cmd |
ESXi 主机级别的虚拟机管理 | ESXi Shell, vCenter CLI | 基础、直接,功能相对有限 |
govc |
vCenter/ESXi 的现代管理工具 | 任何有 Go 的平台 (Linux, macOS, Windows) | 功能强大、跨平台、API 风格、推荐使用 |
vifs |
vCenter/ESXi 之间的文件传输 | vCenter CLI, ESXi Shell | 专为文件操作设计,类似 scp |
vmrun |
Workstation/Player 自动化 | Workstation/Player 安装目录 | 主要用于桌面虚拟化环境 |
建议:
- 如果你正在管理 vCenter 或现代 ESXi,请优先学习和使用
govc。 - 如果你需要快速在 ESXi Shell 中执行一个简单操作,
vmware-cmd仍然很方便。 - 如果你使用的是 VMware Workstation/Player,
vmrun是你的不二之选。
