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.


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

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.

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

7

W systemie Linux uruchom to:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM

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

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.


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.


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

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.


-2

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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.