如何命令行关闭虚拟机系统?

vmrun 命令
适用于VMware Workstation、Fusion及vSphere环境(需安装vCLI或PowerCLI)。

操作步骤:

  1. 打开命令行终端

    • Windows:cmdPowerShell
    • Linux/macOS:Terminal
  2. 定位到VMware安装目录(仅限本地环境)

    cd "C:\Program Files (x86)\VMware\VMware Workstation"  # Windows示例
    cd /Applications/VMware\ Fusion.app/Contents/Library/  # macOS示例
  3. 执行关机命令

    vmrun -T ws stop "虚拟机完整路径.vmx" [soft|hard]
    • -T ws:指定类型为Workstation/Fusion(vSphere用 -T server
    • stop:关机指令
    • 虚拟机路径:如 "D:\VMs\Ubuntu\Ubuntu.vmx"
    • 关机模式(可选):
      • soft(默认):优雅关机(需VMware Tools)
      • hard:强制断电(类似拔电源,仅限紧急情况

关键要求:

  • VMware Tools必须安装:否则 soft 模式失效,等同于 hard
  • 权限验证:vSphere需先通过 govc loginConnect-VIServer 认证。

ESXi主机命令行关机

方法1:SSH远程登录(高危操作,需谨慎)

  1. 启用ESXi Shell:

    在vSphere Client中:主机 → 操作 → 服务 → 启用SSH

  2. 连接ESXi主机:
    ssh root@esxi_host_ip
  3. 优雅关机序列
    esxcli system maintenanceMode set --enable true  # 进入维护模式
    esxcli system shutdown poweroff --reason "Planned maintenance" # 关机

方法2:vSphere CLI(推荐)
使用 govcPowerCLI 远程操作:

govc host.shutdown -host 192.168.1.100 -reason "安全关机"  # govc示例
Stop-VMHost -Name "esxi01" -Confirm:$false              # PowerCLI示例

安全操作规范与注意事项

  1. 优先级顺序

    graph LR
    A[虚拟机] -->|首选| B(guest OS内部关机)
    B -->|失败| C(vmrun soft)
    C -->|失败| D(vmrun hard)
    D -->|ESXi维护| E[主机关机]
  2. 风险警示

    • 🔴 hard 模式:可能导致数据损坏,仅当系统无响应时使用。
    • 🔴 ESXi直接关机:必须确保所有虚拟机已关闭或迁移。
    • 🔴 生产环境:操作前需完成备份与业务审批。
  3. 自动化脚本示例(Linux虚拟机优雅关机)

    #!/bin/bash
    VM_PATH="/vmfs/volumes/datastore1/centos/centos.vmx"
    if vmrun -T esx stop "$VM_PATH" soft; then
      echo "虚拟机已安全关闭"
    else
      echo "优雅关机失败,尝试强制操作"
      vmrun -T esx stop "$VM_PATH" hard
    fi

常见问题解决

  • Q:vmrun 报错 “File was not found”
    → 检查虚拟机路径是否正确,Windows路径用双引号包裹。

  • Q:ESXi关机提示”Resource is busy”
    → 确认无虚拟机运行:esxcli vm process list

  • Q:虚拟机拒绝关机(VMware Tools未响应)
    → 在guest OS内部执行停止命令:

      shutdown /s /t 0        # Windows
      sudo shutdown -h now    # Linux

引用说明
本文操作指南基于VMware官方文档(kb.vmware.com/s/article/205、kb.vmware.com/s/article/1009)及vSphere 8.0/Workstation 17最佳实践,强制关机操作规范参照《VMware vSphere安全加固指南》(2025版),自动化脚本需结合实际环境测试后部署。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6929.html

(0)
酷番叔酷番叔
上一篇 2025年7月10日 05:48
下一篇 2025年7月10日 06:07

相关推荐

  • 如何正确使用归档模式保留属性并递归复制?

    归档模式下的-a选项用于递归复制文件并保留所有原始属性(如权限、时间戳等),确保数据完整性与结构一致性。

    2025年6月12日
    9900
  • ASP如何安全访问粘贴板?

    在Web开发中,实现ASP访问粘贴板功能可以显著提升用户体验,特别是在需要处理文本复制、粘贴等交互场景时,本文将详细介绍ASP访问粘贴板的技术原理、实现方法及注意事项,帮助开发者更好地应用这一功能,ASP访问粘贴板的技术原理粘贴板(Clipboard)是操作系统提供的临时存储区域,用于在不同应用程序间传递数据……

    2025年11月24日
    4300
  • 如何自动生成唯一ASP订单号?

    在电商系统和业务管理平台中,订单号是唯一标识每一笔交易的关键信息,其生成机制直接影响系统的稳定性和用户体验,ASP(Active Server Pages)作为一种经典的Web开发技术,通过内置对象和脚本逻辑可实现订单号的自动生成,满足业务场景对唯一性、可读性和安全性的需求,本文将详细介绍ASP自动生成订单号的……

    2026年1月5日
    3800
  • asp选择框如何设置默认选中项?

    在Web开发中,ASP(Active Server Pages)选择框(即<select>元素)的默认选中功能是一个常见且重要的需求,无论是用于表单数据的回显、用户偏好的保存,还是多级联动菜单的初始化,合理设置默认选中项都能显著提升用户体验和数据处理的效率,本文将围绕“ASP选择框默认选中”这一核心……

    2025年11月28日
    5200
  • ASP统计数组数量,用UBound函数吗?

    在ASP开发中,统计数组数量是一项基础且常见的操作,无论是处理用户提交的表单数据,还是从数据库中检索记录,数组都扮演着重要角色,掌握如何准确、高效地统计数组数量,对于优化代码逻辑和提升程序性能至关重要,本文将详细介绍在ASP中统计数组数量的多种方法,并分析其适用场景和注意事项,使用UBound和LBound函数……

    2025年12月12日
    5000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信