我怎么知道我是否在虚拟机上工作?


Answers:



65

在CMD窗口中键入:

SYSTEMINFO

您会发现一行包含以下文字(或类似文字)的文字:

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform

3
如果使用Hyper V,您将获得:系统制造商:Microsoft Corporation系统模型:虚拟机
Gayan Dasanayake

16

如果由VMware处理,那么目前还不太困难。将来可能会改变。

# dmidecode -s system-manufacturer
VMware, Inc.

我在Windows 7和10 ESXi 6.0 VM上均未将“ dmidecode”识别为内部或外部命令。
安德鲁S

dmidecode是用于获取有关硬件信息的linux命令。在Windows上不起作用。
Jaime

对于linuxOS,这是检测硬件与虚拟机的最佳选择
。– Satish


8

在Windows上,从CMD:

Systeminfo | findstr /i model

返回类似:

System Model:              VMware Virtual Platform
                           [01]: Intel64 Family 6 Model 26 Stepping 5 GenuineInt

7

在Linux上,运行以下命令:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM

4
对于Linux,请键入dmesg |grep DMI虚拟机:[root @ myhost〜]#dmesg | grep DMI <br> DMI 2.3存在。DMI:Microsoft Corporation虚拟机/虚拟机,BIOS 090006 05/23/2012 [root @ myhost〜]#dmesg | grep -i virtual DMI:Microsoft Corporation虚拟机/虚拟机,BIOS 090006 2012/05/23引导半虚拟化内核在裸机输入上:Macintosh鼠标按钮仿真为/ devices / virtual / input / input1 scsi 0:0:0:0:Direct-Access Msft虚拟磁盘1.0 PQ:0 ANSI:4输入:Microsoft Vmbus HID兼容鼠标为/设备/虚拟/输入/输入4物理:[root @ backdev1
user215983 2014年

这对我有用。dmidecode返回permission denied !
Alok Mishra '18

4

castrocra所述,如果您使用的是Windows,则可以在cmd shell内运行systeminfo命令,然后查找“ BIOS版本”。

这些可能是真实的机器:

BIOS Version:              Dell Inc. A03, 06/12/2010
BIOS Version:              Phoenix Technologies, LTD MS7254 1.08, 08/03/2007

另一方面,这几乎可以肯定是虚拟机:

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012

1
现代的虚拟机管理程序可以在此处提供任意字符串,因此这不是很可靠的检查。
迈克尔·汉普顿

2
不幸的是,这是不可靠的。我正在运行虚拟机,但我的BIOS显示为:“ Phoenix Technologies LTD 6.00,16/08/2013”
Gavin Ward

VMWare与Phoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh

3

已经回答了,但是FWIW您可以在powershell中执行此操作:

gwmi -q "select * from win32_computersystem"

如果是虚拟机,则“制造商”将为“ Microsoft Corporation”,而“型号”将为“虚拟机”,否则将显示常规制造商详细信息,例如“ Dell Inc.”。和“ PowerEdge R210 II”。


滑稽。我的 Windows VM表示制造商和型号都是“ Bochs”。
迈克尔·汉普顿

1
或在cmd中:wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare。它比systeminfo基于解决方案的解决方案要快。
atzz 2015年

@MichaelHampton您在使用VM吗?哪个平台-HyperV,VMWare或其他平台?似乎VM可能正在Bochs模拟器中运行或类似的东西。
理查德·豪尔



0

一种(相对)简单的检测关键虚拟化信息的方法是通过WMI / WBEM。您可以使用root \ CIM2命名空间并访问Baseboard类(包含有趣的BIOS信息)来获取“物理”系统的描述。此类通常包括有关主板和机箱的信息-制造,型号,序列号等。

从命令提示符或PowerShell会话运行以下命令:

wmic baseboard get manufacturer, product, Serialnumber, version

0

更简单-WMIC /节点:BIOS获取序列号

返回Dell样式的序列号的任何内容都是物理的。

如果它是虚拟机,还将返回“ VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89”。


-2

我遇到了同样的问题,发现有很多进程使用名称中的“ VM”运行,例如VMWareTray.exe


7
是的,但仅在安装了VMware工具包的情况下。
jscott 2012年

-2

nbtstat -a结果将告诉您,因为VM具有特定的前缀,即00-50-56-XX-XX-XX。它也使用了另一个前缀,但我不记得在脑海中,但我记得Vcenter使用00-50-56-XX-XX-XX,所以此ios仅由我检查。

我个人认为这是最好的方法。


3
...除了有人手动将MAC地址设置为其他地址外
Rex 2014年

或在PV情况下从现有硬件克隆它
Rowan Hawkins
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.