¿Cómo sé si estoy trabajando en una máquina virtual o no?

Respuestas:

37

Si es Windows, solo eche un vistazo a las pantallas de hardware. Tendrá mil millones y cinco dispositivos virtuales con la marca VMWare.

Oli
fuente
Convenido. Dado que el OP mencionó RDP, es muy probable que sea Windows, así que ahí lo tienes.
mfinni
+1 por no asumir que es Linux como lo hice yo
Matt Simmons
3
Mirar los controladores también funciona para Linux. lsmod probablemente le devolverá la información que necesita.
Seamus Connor
@Seamus: ¡Es cierto!
Oli
3
Corrección: mil millones y seis.
Get-HomeByFiveOClock
65

En la ventana CMD, escriba:

SYSTEMINFO

Encontrará una línea con el siguiente texto (o similar):

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
castrocra
fuente
3
Si se usa Hyper V, obtienes: Fabricante del sistema: Microsoft Corporation Modelo del sistema: Máquina virtual
Gayan Dasanayake
16

Si VMware lo maneja, no es demasiado difícil en este momento. Esto podría cambiar en el futuro.

# dmidecode -s system-manufacturer
VMware, Inc.
Matt Simmons
fuente
Obtengo 'dmidecode' no se reconoce como un comando interno o externo en las máquinas virtuales Windows 7 y 10 ESXi 6.0.
Andrew S
dmidecodees un comando de Linux utilizado para obtener información sobre el hardware. No funciona en Windows.
Jaime
para el linuxsistema operativo, esta es la mejor opción para detectar hardware frente a una máquina virtual ...
Satish
8

En Windows, desde CMD:

Systeminfo | findstr /i model

devuelve algo como:

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

En Linux, ejecute esto:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM
Arash
fuente
44
para Linux, escriba dmesg |grep DMIMáquinas virtuales: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 presente. DMI: máquina virtual / máquina virtual de Microsoft Corporation, BIOS 090006 23/05/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: máquina virtual / máquina virtual de Microsoft Corporation, BIOS 090006 23/05/2012 Arranque del núcleo paravirtualizado en entrada de hardware simple: emulación de botón de mouse Macintosh como / devices / virtual / input / input1 scsi 0: 0: 0: 0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4 input: Microsoft Vmbus HID-compatible Mouse como / dispositivos / virtual / input / input4 Físico: [root @ backdev1
user215983
Esto funcionó para mí. dmidecodedevuelto permission denied !.
Alok Mishra
4

Si está en Windows, como dice castrocra , puede ejecutar el systeminfocomando desde el interior de un shell de cmd , luego busque la "Versión del BIOS".

Estas son probablemente máquinas reales :

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

Esto, por otro lado, es casi seguro que es una máquina virtual :

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
Luke
fuente
1
Los hipervisores modernos pueden suministrar cadenas arbitrarias aquí, lo que lo convierte en un control poco confiable.
Michael Hampton
2
Lamentablemente esto no es confiable. Estoy ejecutando una máquina virtual pero mi BIOS se muestra como: "Phoenix Technologies LTD 6.00, 16/08/2013"
Gavin Ward
VMWare withPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh
3

Se ha respondido, pero FWIW puede hacer esto en powershell:

gwmi -q "select * from win32_computersystem"

El "Fabricante" será "Microsoft Corporation" y el "Modelo" será "Máquina virtual" si es una máquina virtual, o debería mostrar detalles regulares del fabricante si no, por ejemplo, "Dell Inc." y "PowerEdge R210 II" respectivamente.

Richard Hauer
fuente
Gracioso. Mi VM de Windows dice que el fabricante y el modelo son "Bochs".
Michael Hampton
1
O en cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. Es más rápido que las systeminfosoluciones basadas.
atzz
@MichaelHampton ¿Estás utilizando máquinas virtuales? ¿Qué plataforma - HyperV, VMWare u otra cosa? Parece que la VM probablemente se está ejecutando en un emulador de Bochs o algo así.
Richard Hauer el
0

Si es una VM Unix, use imvirt . Es un script de Perl que detecta VMWare, Xen y muchos otros.

Peter Westlake
fuente
Está hablando de una máquina virtual de Windows, no de Unix
Mat
0

Una forma (relativamente) simple de detectar información clave de virtualización es a través de WMI / WBEM. Puede usar el espacio de nombres root \ CIM2 y acceder a la clase Baseboard (llena de información de BIOS interesante) para obtener una descripción del sistema "físico". Esta clase a menudo incluye información sobre la placa base y el chasis: fabricación, modelo, número de serie, otros.

Ejecute el siguiente comando desde un símbolo del sistema o una sesión de PowerShell:

wmic baseboard get manufacturer, product, Serialnumber, version
Alex
fuente
0

Aún más simple: wmic / node: bios obtiene número de serie

Todo lo que devuelve un número de serie de estilo Dell es físico.

También devolverá "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89", si se trata de una máquina virtual.

Magilla66
fuente
-2

Tenía la misma pregunta y descubrí que hay muchos procesos ejecutándose con "VM" en el nombre, por ejemplo VMWareTray.exe

Josh
fuente
77
Sí, pero solo si el paquete de herramientas VMware está instalado.
jscott
-2

nbtstat -a El resultado le indicará que las máquinas virtuales tienen un prefijo específico que es 00-50-56-XX-XX-XX. También hay otro prefijo que usa, pero no puedo recordar en la parte superior de mi cabeza, pero recuerdo que Vcenter usa 00-50-56-XX-XX-XX, así que este es el único que verifico.

Creo que esta es la mejor manera, personalmente.

James Mellitas
fuente
3
... excepto cuando alguien configura manualmente la dirección MAC en otra cosa
Rex
o clonarlo desde el hardware existente en una situación fotovoltaica
Rowan Hawkins