Skąd mam wiedzieć, czy pracuję na maszynie wirtualnej, czy nie?

Odpowiedzi:

37

Jeśli jest to Windows, wystarczy spojrzeć na ekrany sprzętowe. Będzie miał miliard pięć wirtualnych urządzeń marki VMWare.

Oli
źródło
Zgoda. Ponieważ OP wspomniał o RDP, najprawdopodobniej jest to Windows, więc proszę bardzo.
mfinni
+1 za brak założenia, że ​​to Linux tak jak ja
Matt Simmons,
3
Patrzenie na sterowniki działa również w systemie Linux. lsmod prawdopodobnie zwróci potrzebne informacje.
Seamus Connor
@Seamus: Wystarczająco prawda!
Oli
3
Korekta: miliard sześć.
Get-HomeByFiveOClock
65

W oknie CMD wpisz:

SYSTEMINFO

Znajdziesz wiersz z następującym tekstem (lub podobny):

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
castrocra
źródło
3
Jeśli zostanie użyta funkcja Hyper V, otrzymasz: Producent systemu: Microsoft Corporation Model systemu: Maszyna wirtualna
Gayan Dasanayake
16

Jeśli jest obsługiwany przez VMware, w tej chwili nie jest zbyt trudny. To może się zmienić w przyszłości.

# dmidecode -s system-manufacturer
VMware, Inc.
Matt Simmons
źródło
Otrzymuję komunikat „dmidecode” nie jest rozpoznawany jako polecenie wewnętrzne ani zewnętrzne na maszynach wirtualnych Windows 7 i 10 ESXi 6.0.
Andrew S,
dmidecodeto komenda linux używana do uzyskiwania informacji o sprzęcie. Nie działa w systemie Windows.
Jaime,
w przypadku linuxsystemu operacyjnego jest to najlepsza opcja do wykrycia sprzętu w porównaniu z maszyną wirtualną.
Satish
8

W systemie Windows z CMD:

Systeminfo | findstr /i model

zwraca coś takiego:

System Model:              VMware Virtual Platform
                           [01]: Intel64 Family 6 Model 26 Stepping 5 GenuineInt
BurnoutTech
źródło
7

W systemie Linux uruchom to:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM
Wysypka
źródło
4
w dmesg |grep DMIsystemie Linux wpisujesz Maszyny wirtualne: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 obecny. DMI: Microsoft Corporation maszyna wirtualna / maszyna wirtualna, BIOS 090006 05/23/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: Microsoft Corporation maszyna wirtualna / maszyna wirtualna, BIOS 090006 05/23/2012 Uruchamianie jądra parawirtualizowanego na gołym sprzęcie: emulacja przycisku myszy Macintosh jako / devices / virtual / input / input1 scsi 0: 0: 0: 0: Bezpośredni dostęp Msft Virtual Disk 1.0 PQ: 0 ANSI: 4 wejście: Mysz zgodna z Microsoft Vmbus HID as / devices / virtual / input / input4 Fizyczne: [root @ backdev1
user215983
to zadziałało dla mnie. dmidecodewrócił permission denied !.
Alok Mishra,
4

Jeśli jesteś w systemie Windows, jak mówi castrocra , możesz uruchomić systeminfopolecenie z wnętrza powłoki cmd , a następnie poszukaj „wersji BIOS”.

Są to prawdopodobnie prawdziwe maszyny:

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

Z drugiej strony jest to prawie na pewno maszyna wirtualna :

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
Łukasz
źródło
1
Współczesne hiperwizory mogą tutaj dostarczać dowolne ciągi znaków, co czyni z tego niezbyt wiarygodną kontrolę.
Michael Hampton
2
Niestety nie jest to wiarygodne. Używam maszyny wirtualnej, ale mój BIOS pokazuje się jako: „Phoenix Technologies LTD 6.00, 16/08/2013”
Gavin Ward
VMWare zPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh,
3

Odpowiedź została udzielona, ​​ale FWIW możesz to zrobić w PowerShell:

gwmi -q "select * from win32_computersystem"

„Producentem” będzie „Microsoft Corporation”, a „Modelem” będzie „Maszyna wirtualna”, jeśli jest to maszyna wirtualna, lub powinna wyświetlać regularne dane producenta, jeśli nie, np. „Dell Inc.” i „PowerEdge R210 II” odpowiednio.

Richard Hauer
źródło
Zabawny. Moja maszyna wirtualna z systemem Windows twierdzi, że zarówno producent, jak i model to „Bochs”.
Michael Hampton
1
Lub w cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. Jest to szybsze niż systeminfooparte na rozwiązaniach.
atzz
@MichaelHampton Czy korzystasz z maszyn wirtualnych? Która platforma - HyperV, VMWare czy coś innego? Wygląda na to, że VM jest prawdopodobnie uruchamiane w emulatorze Bochsa lub coś w tym rodzaju.
Richard Hauer
0

Jeśli jest to Unix VM, użyj imvirt . Jest to skrypt Perla wykrywający VMWare, Xen i kilka innych.

Peter Westlake
źródło
Mówi o maszynie wirtualnej z systemem Windows, a nie uniksowej
Mat
0

Jednym (stosunkowo) prostym sposobem na wykrycie kluczowych informacji o wirtualizacji jest WMI / WBEM. Możesz użyć przestrzeni nazw root \ CIM2 i uzyskać dostęp do klasy Baseboard (pełnej interesujących informacji o BIOSie), aby uzyskać opis „fizycznego” systemu. Klasa ta często zawiera informacje o płycie głównej i podwoziu - produkcji, modelu, numerze seryjnym i innych.

Uruchom następujące polecenie z wiersza polecenia lub sesji PowerShell:

wmic baseboard get manufacturer, product, Serialnumber, version
Alex
źródło
0

Jeszcze prościej - wmic / node: bios dostaje numer seryjny

Wszystko, co zwraca numer seryjny w stylu Dell, jest fizyczne.

Zwróci również „VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89”, jeśli jest to maszyna wirtualna.

Magilla66
źródło
-2

Miałem to samo pytanie i stwierdziłem, że w nazwie działa wiele procesów z „VM”, na przykład VMWareTray.exe

Josh
źródło
7
Tak, ale tylko jeśli zainstalowany jest pakiet narzędzi VMware.
jscott,
-2

nbtstat -a Wynik pokaże, ponieważ maszyny wirtualne mają określony prefiks, który jest 00-50-56-XX-XX-XX. Jest też inny prefiks, którego używa, ale nie pamiętam u góry głowy, ale przypominam sobie, że Vcenter używa 00-50-56-XX-XX-XX, więc to ios ten, który sprawdzam.

Myślę, że to najlepszy sposób, osobiście.

James Mellitas
źródło
3
... z wyjątkiem sytuacji, gdy ktoś ręcznie ustawia adres MAC na coś innego
Rex
lub klonuje go z istniejącego sprzętu w sytuacji fotowoltaicznej
Rowan Hawkins