Woher weiß ich, ob ich an einer virtuellen Maschine arbeite oder nicht?

57

Gibt es eine Möglichkeit herauszufinden, ob der Windows-Computer, an dem ich arbeite, virtuell oder physisch ist? (Ich verbinde mich mit RDP mit der Maschine. Wenn es sich um eine virtuelle Maschine handelt, funktioniert sie und wird von VMWare verwaltet.)

Duncan Jones
quelle

Antworten:

37

Wenn es sich um Windows handelt, werfen Sie einen Blick auf die Hardware-Bildschirme. Es wird eine Milliarde und fünf virtuelle Geräte der Marke VMWare geben.

Oli
quelle
Einverstanden. Da das OP RDP erwähnte, ist es höchstwahrscheinlich Windows, also los geht's.
mfinni
+1 für nicht angenommen, es ist Linux wie ich
Matt Simmons
3
Das Betrachten von Treibern funktioniert auch unter Linux. lsmod würde wahrscheinlich die benötigten Informationen zurückgeben.
Seamus Connor
@Seamus: Richtig!
Oli
3
Korrektur: Eine Milliarde und sechs.
Get-HomeByFiveOClock
65

Geben Sie im CMD-Fenster Folgendes ein:

SYSTEMINFO

Sie finden eine Zeile mit folgendem (oder ähnlichem) Text:

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
Castrocra
quelle
3
Wenn Hyper V verwendet wird, erhalten Sie:
Systemhersteller
16

Wenn es von VMware gehandhabt wird, ist es im Moment nicht allzu schwierig. Dies könnte sich in Zukunft ändern.

# dmidecode -s system-manufacturer
VMware, Inc.
Matt Simmons
quelle
Ich erhalte die Meldung, dass "dmidecode" auf Windows 7- und 10-ESXi 6.0-VMs nicht als interner oder externer Befehl erkannt wird.
Andrew S
dmidecodeist ein Linux-Befehl, mit dem Informationen über die Hardware abgerufen werden. Es funktioniert nicht unter Windows.
Jaime
Für das linuxBetriebssystem ist dies die beste Option, um Hardware im Vergleich zur virtuellen Maschine zu erkennen.
Satish
8

Unter Windows über CMD:

Systeminfo | findstr /i model

gibt etwas zurück wie:

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

Führen Sie unter Linux Folgendes aus:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM
Arash
quelle
4
Für Linux geben Sie dmesg |grep DMIVirtual Machines ein: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 vorhanden. DMI: Virtuelle Maschine / virtuelle Maschine der Microsoft Corporation, BIOS 23.05.2012, 090006 [root @ myhost ~] # dmesg | grep -i virtual DMI: Virtuelle Maschine / virtuelle Maschine der Microsoft Corporation, BIOS 23.05.2012, 090006 Booten des paravirtualisierten Kernels bei Hardware-Eingabe: Macintosh-Maustastenemulation als / devices / virtual / input / input1 scsi 0: 0: 0: 0: Msft Virtual Disk mit Direktzugriff 1.0 PQ: 0 ANSI: 4-Eingabe: Microsoft Vmbus HID-kompatible Maus als / devices / virtual / input / input4 Physisch: [root @ backdev1
user215983
das hat bei mir funktioniert. dmidecodezurückgekehrt permission denied !.
Alok Mishra
4

Wenn Sie unter Windows arbeiten , können Sie den systeminfoBefehl , wie von Castrocra angegeben , in einer Cmd-Shell ausführen und nach der "BIOS-Version" suchen.

Dies sind wahrscheinlich echte Maschinen:

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

Auf der anderen Seite handelt es sich mit ziemlicher Sicherheit um eine virtuelle Maschine:

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
Luke
quelle
1
Moderne Hypervisoren können hier beliebige Zeichenfolgen bereitstellen, was diese Prüfung nicht sehr zuverlässig macht.
Michael Hampton
2
Leider ist das nicht zuverlässig. Ich verwende eine virtuelle Maschine, aber mein BIOS zeigt Folgendes an: "Phoenix Technologies LTD 6.00, 16.08.2013"
Gavin Ward
VMWare mitPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh
3

Es wurde beantwortet, aber FWIW können Sie dies in Powershell tun:

gwmi -q "select * from win32_computersystem"

Der "Hersteller" ist "Microsoft Corporation" und das "Modell" ist "Virtuelle Maschine", wenn es sich um eine virtuelle Maschine handelt, oder es sollten normale Herstellerdetails angezeigt werden, wenn nicht, z. B. "Dell Inc." und "PowerEdge R210 II".

Richard Hauer
quelle
Lustig. Meine Windows-VM sagt, dass der Hersteller und das Modell beide "Bochs" sind.
Michael Hampton
1
Oder in cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. Es ist schneller als systeminfobasierende Lösungen.
atzz
@MichaelHampton Verwenden Sie VMs? Welche Plattform - HyperV, VMWare oder etwas anderes? Scheint, als würde die VM wahrscheinlich in einem Bochs-Emulator oder ähnlichem ausgeführt.
Richard Hauer
0

Wenn es sich um eine Unix-VM handelt, verwenden Sie imvirt . Es ist ein Perl-Skript, das VMWare, Xen und mehrere andere erkennt.

Peter Westlake
quelle
Er spricht von einer virtuellen Windows-Maschine, nicht von einer Unix-Maschine
Mat
0

Eine (relativ) einfache Möglichkeit, wichtige Virtualisierungsinformationen zu erkennen, ist WMI / WBEM. Sie können den Namespace root \ CIM2 verwenden und auf die Baseboard-Klasse (mit interessanten BIOS-Informationen) zugreifen, um eine Beschreibung des "physischen" Systems abzurufen. Diese Klasse enthält häufig Informationen zu Motherboard und Gehäuse - Hersteller, Modell, Seriennummer usw.

Führen Sie den folgenden Befehl an einer Eingabeaufforderung oder einer PowerShell-Sitzung aus:

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

Noch einfacher - wmic / node: BIOS erhält Seriennummer

Alles, was eine Dell-ähnliche Seriennummer zurückgibt, ist physisch.

Es wird auch "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89" zurückgegeben, wenn es sich um eine virtuelle Maschine handelt.

Magilla66
quelle
-2

Ich hatte die gleiche Frage und stellte fest, dass viele Prozesse mit dem Namen "VM" ausgeführt werden, z. B. VMWareTray.exe

Josh
quelle
7
Ja, aber nur, wenn das VMware-Tools-Paket installiert ist.
Jscott
-2

nbtstat -a Das Ergebnis zeigt an, dass VMs ein spezifisches Präfix haben, das 00-50-56-XX-XX-XX lautet. Es gibt auch ein anderes Präfix, an das ich mich nicht erinnern kann, aber ich erinnere mich, dass Vcenter 00-50-56-XX-XX-XX verwendet. Dies ist also das, das ich nur überprüfe.

Ich denke, das ist der beste Weg, persönlich.

James Mellitas
quelle
3
... außer wenn jemand die MAC-Adresse manuell auf etwas anderes setzt
Rex
oder klont es von vorhandener Hardware in einer PV-Situation
Rowan Hawkins