查询虚拟机列表没有统一命令,核心取决于你用的是哪种虚拟化平台:VMware、Hyper-V、KVM还是云服务器,对应各有专属查询方法。本文按平台分类,给出可直接复制的命令、操作路径和工具推荐,帮你用最少时间找到所有虚拟机清单。
命令行查询:最快速、可脚本化的通用方案
命令行是批量查询和自动化管理的首选,尤其在无图形界面的服务器环境中,效率远超鼠标点击。
VMware ESXi 查询虚拟机列表命令
ESXi 是业界占有率较高的企业级虚拟化平台,管理方式主要依赖 vSphere CLI 或 SSH 终端。
- 通过 vSphere CLI 远程查询:在装有 PowerCLI 的 Windows 机器上,连接 vCenter 或 ESXi 主机后执行
Get-VM | Format-Table Name, PowerState, VMHost,这是 VMware 环境下最标准的虚拟机列表查询命令。 - 通过 SSH 登录 ESXi 主机,执行
vim-cmd vmsvc/getallvms,输出会列出虚拟机 ID(VMID)、名称、数据存储路径及操作系统,适合快速确认主机上有哪些虚机。 - 想查询已注册但未开机的虚拟机,命令同样适用,
State列会显示为Off,如果你需要排查异常占用资源的虚拟机,可以先用此命令拿到 VMID,再结合esxtop深入分析。
Hyper-V 查询虚拟机列表命令
Windows Server 和 Windows 10/11 专业版自带的 Hyper-V 平台,最常用的是 PowerShell 的 Hyper-V 模块。
- 管理员身份打开 PowerShell,执行
Get-VM,该命令会返回所有虚拟机,包含名称、状态、CPU 使用率、已分配内存等关键信息。 - 若只想看正在运行的虚拟机,用
Get-VM | Where-Object {$_.State -eq 'Running'},如果需要导出虚拟机列表到 Excel 用于资产盘点,执行Get-VM | Export-Csv -Path D:VMList.csv -NoTypeInformation,这个操作在IT运维场景中比较常用,能直接生成可编辑的报表文件。
KVM / Proxmox 查询虚拟机列表命令
开源虚拟化环境(KVM)通常配合 libvirt 管理,命令风格与商用平台有明显差异。
- 在宿主机终端执行
virsh list --all查看全部虚拟机,--all参数会同时显示运行中和已关闭的实例,单独执行virsh list时只展示活跃域。 - 使用 Proxmox VE 时,通过 SSH 执行
qm list命令,可直观看到 VM ID、名称、状态和开机自启动配置;若是 LXC 容器则需改用pct list,两个命令共同覆盖了 Proxmox 环境下的全部虚拟化实例查询需求。
图形化工具:日常运维与可视化管理路径
命令行虽高效,但排查网络配置或查看资源趋势时,图形界面更直观,也更适合新手操作。
vSphere Client 中的操作路径
登录 vSphere Web Client 或 vSphere Client(HTML5 版)。
- 默认界面左侧导航树选中数据中心或集群,主面板的“虚拟机”选项卡会以列表形式展示所有可见虚机。
- 通过右上角筛选器可以按“电源状态”“文件夹”“资源池”维度过滤,便于在规模较大的环境中锁定目标,若你分配的权限仅限特定文件夹,则只能看到授权范围内的虚拟机列表,这是正常的权限隔离机制。
Hyper-V 管理器中的快速筛选
Windows 管理工具中打开 Hyper-V 管理器,连接到宿主机。
- 中部窗格直接展示虚拟机列表,支持按“状态”“启动时间”排序,右键点击空白处选择“刷新”可获取最新状态。
- 对虚拟机数量较多的宿主机,可使用内置搜索框输入名称关键字进行模糊匹配,避免手动滚动查找。
VirtualBox 本地虚拟机的列表浮现机制
个人开发常用的 Oracle VirtualBox 属于桌面级工具,查询逻辑相对简单。
- 启动 VirtualBox 主程序后,左侧管理器面板会默认列出全部虚拟机。
- 若虚拟机在列表中消失,但虚拟机文件(如 .vbox 文件)仍存在磁盘中,需通过菜单“控制”->“注册”手动添加,之后该虚拟机才会重新出现在列表,这个机制与云平台自动发现不同,属于本地虚拟机的常见问题。
云平台控制台查询:简米云、酷番云等云端虚拟机列表
云服务器(ECS / CVM)本质也是虚拟机,但查询入口完全不同,国内主流云厂商均提供控制台和 API 双重查询方式。
简米云 ECS 控制台查询路径
登录简米云控制台,通过顶部搜索框直接搜索“云服务器 ECS”,进入实例列表页。
- 默认按地域归类实例列表,例如华东1(杭州)、华北2(北京)等地域需分别切换查看,不存在跨地域统一显示功能,这是国内云平台使用体验上的一个特点。
- 实例列表展示名称、实例ID、公网IP、配置、到期时间等信息,若想导出全量清单,点击列表右上角“导出实例”按钮,系统会生成一份 CSV 文件,行业共识认为,定期导出实例列表用于成本核算和资源审计是规范的运维习惯。
酷番云 CVM 查询与筛选
酷番云控制台的 CVM 列表页面支持多维度筛选。
- 通过搜索框使用资源 ID 或名称精确查找,也可以按“可用区”和“项目”分组查看,云平台均默认要求用户关注地域及可用区的选择,因为跨地域查询或迁移会产生额外成本。
- 需要查询 API 时,调用
DescribeInstances接口,结合Offset和Limit参数可实现分页拉取全量云服务器实例,该接口返回的数据结构中包含虚拟机状态、规格、计费方式等字段,适合编写自动化运维脚本时使用。
工具对比与选择建议:哪个方案适合你的场景?
为方便你快速决策,以下将主流查询方式按适用场景、操作门槛、效率三个维度进行对比。
| 查询方式 | 适用平台 | 效率等级 | 操作门槛 | 适用场景 |
|---|---|---|---|---|
| SSH + vim-cmd | VMware | 中高 | 中 | 无 vCenter 的小规模集群 |
| PowerCLI / Get-VM | Hyper-V、VMware | 高 | 中高 | 批量操作与自动化报表 |
| virsh list / qm list | KVM / Proxmox | 中高 | 中 | Linux 运维工程师日常排查 |
| 控制台 Web 界面 | 简米云 / 酷番云 | 低 | 低 | 非技术人员的快速查看 |
| OpenStack API | 私有云环境 | 高 | 高 | 开发人员对接云平台 |
如果你的需求是快速出结果,直接使用各平台的命令行工具或控制台是最稳妥的方式。如果你需要周期性统计,则建议优先学习 PowerCLI 或云厂商 API,尽管初次配置成本稍高,但后续自动化收益明显。
常见问题解答:虚拟机列表查询中的典型困惑
为什么命令行查不到某个正在使用的虚拟机?
通常有两种原因,该虚拟机可能运行在另一台宿主机上,尤其使用 vCenter 或集群时,需先确认连接的物理主机是否正确,部分云平台(如简米云)的实例列表具有地域属性,切换地域后列表会发生变化,需确保身处目标地域的控制台视图下。
如何查询虚拟机的 IP 地址信息?
基于 VMware 平台,在 vSphere 客户端的虚拟机摘要页可找到已安装客户机工具(VMware Tools)反馈的 IP 地址,若客户机工具缺失,该字段通常为空,基于 Hyper-V,PowerShell 中执行 Get-VM | Get-VMNetworkAdapter | Select-Object VMName, IPAddresses 可精确获取网卡 IP,云平台则直接在实例详情页展示公网 IP 与内网 IP,无需登录虚拟机内部即可获取。
怎样定时自动生成虚拟机清单文件?
Windows 环境下,使用任务计划程序调用 PowerShell 脚本,脚本内容包含 Get-VM 及 Export-Csv 命令,设定每日或每周执行频率,即可实现自动化资产清单导出,Linux 宿主机则可借助 Crontab 定时执行 virsh list --all 并将输出重定向至日志文件,行文至此,虚拟机查询的核心方法已从命令行、图形界面到云端控制台完成了全场景覆盖。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/623305.html





