Bagaimana saya tahu jika saya sedang bekerja pada Mesin Virtual atau tidak?

Jawaban:

37

Jika itu Windows, lihat saja layar perangkat kerasnya. Ini akan memiliki satu miliar dan lima perangkat virtual bermerek VMWare.

Oli
sumber
Sepakat. Karena OP menyebutkan RDP, kemungkinan besar Windows, jadi begitulah.
mfinni
1 karena tidak menganggap itu Linux seperti yang saya lakukan
Matt Simmons
3
Melihat driver juga berfungsi untuk linux. lsmod mungkin akan mengembalikan informasi yang Anda butuhkan.
Seamus Connor
@ Seamus: Cukup benar!
Oli
3
Koreksi: A miliar dan enam.
Get-HomeByFiveOClock
65

Pada jenis jendela CMD:

SYSTEMINFO

Anda akan menemukan baris dengan teks berikut (atau yang serupa):

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
castrocra
sumber
3
Jika Hyper V digunakan, Anda mendapatkan: Sistem Produsen: Microsoft Corporation Model Sistem: Mesin Virtual
Gayan Dasanayake
16

Jika ditangani oleh VMware, itu tidak terlalu sulit pada saat ini. Ini bisa berubah di masa depan.

# dmidecode -s system-manufacturer
VMware, Inc.
Matt Simmons
sumber
Saya mendapatkan 'dmidecode' tidak dikenali sebagai perintah internal atau eksternal pada Windows 7 dan 10 ESXi 6.0 VMs.
Andrew S
dmidecodeadalah perintah linux yang digunakan untuk mendapatkan informasi tentang perangkat keras. Itu tidak bekerja di Windows.
Jaime
untuk linuxOS ini adalah opsi terbaik untuk mendeteksi perangkat keras vs mesin virtual ..
Satish
8

Di Windows, dari CMD:

Systeminfo | findstr /i model

mengembalikan sesuatu seperti:

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

Di Linux, jalankan ini:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM
Arash
sumber
4
untuk linux Anda ketik dmesg |grep DMIMesin Virtual: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 hadir. DMI: Mesin Virtual Microsoft Corporation / Mesin Virtual, BIOS 090006 05/23/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: Mesin Virtual Microsoft Corporation / Mesin Virtual, BIOS 090006 05/23/2012 Booting kernel paravirtualized pada input perangkat keras: emulasi tombol mouse Macintosh sebagai / perangkat / virtual / input / input1 scsi 0: 0: 0: 0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4 input: Microsoft Vmbus HID-compliant Mouse sebagai / devices / virtual / input / input4 Fisik: [root @ backdev1
user215983
ini berhasil untuk saya. dmidecodedikembalikan permission denied !.
Alok Mishra
4

Jika Anda berada di Windows, seperti kata castrocra , Anda dapat menjalankan systeminfoperintah dari dalam shell cmd , kemudian mencari "Versi BIOS".

Ini mungkin mesin nyata :

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

Di sisi lain, ini hampir pasti mesin virtual :

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
Luke
sumber
1
Hypervisor modern dapat menyediakan string yang sewenang-wenang di sini, menjadikan ini pemeriksaan yang tidak terlalu andal.
Michael Hampton
2
Sayangnya ini tidak dapat diandalkan. Saya menjalankan mesin virtual tetapi BIOS saya ditampilkan sebagai: "Phoenix Technologies LTD 6.00, 16/08/2013"
Gavin Ward
VMWare denganPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh
3

Sudah dijawab, tetapi FWIW Anda dapat melakukan ini di PowerShell:

gwmi -q "select * from win32_computersystem"

"Pabrikan" akan menjadi "Microsoft Corporation" dan "Model" akan menjadi "Mesin Virtual" jika itu adalah mesin virtual, atau harus menampilkan detail pabrikan biasa jika tidak, misalnya "Dell Inc." dan "PowerEdge R210 II" masing-masing.

Richard Hauer
sumber
Lucu. VM Windows saya mengatakan bahwa Produsen dan Model keduanya "Bochs".
Michael Hampton
1
Atau di cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. Ini lebih cepat daripada systeminfosolusi berbasis.
atzz
@MichaelHampton Apakah Anda menggunakan VM? Platform mana - HyperV, VMWare atau yang lainnya? Sepertinya VM mungkin dijalankan di emulator Bochs atau sesuatu seperti itu.
Richard Hauer
0

Jika itu adalah Unix VM, gunakan imvirt . Ini adalah skrip Perl yang mendeteksi VMWare, Xen, dan beberapa lainnya.

Peter Westlake
sumber
Dia berbicara tentang mesin virtual Windows, bukan yang Unix
Mat
0

Satu (relatif) cara sederhana untuk mendeteksi informasi virtualisasi kunci adalah melalui WMI / WBEM. Anda dapat menggunakan namespace root \ CIM2 dan mengakses kelas Baseboard (penuh dengan informasi BIOS yang menarik) untuk mendapatkan deskripsi sistem "fisik". Kelas ini sering mencakup informasi tentang pembuatan motherboard dan sasis, model, nomor seri, lainnya.

Jalankan perintah berikut dari prompt perintah atau sesi PowerShell:

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

Bahkan lebih sederhana - wmic / node: bios mendapatkan nomor seri

Apa pun yang mengembalikan nomor seri gaya Dell adalah fisik.

Ini juga akan mengembalikan "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89", jika itu mesin virtual.

Magilla66
sumber
-2

Saya memiliki pertanyaan yang sama dan menemukan bahwa ada banyak proses yang berjalan dengan "VM" dalam nama, misalnya VMWareTray.exe

Josh
sumber
7
Ya, tetapi hanya jika paket alat VMware diinstal.
jscott
-2

nbtstat -a Hasilnya akan memberi tahu Anda karena VM memiliki awalan spesifik yaitu 00-50-56-XX-XX-XX. Ada juga awalan lain yang digunakannya tetapi saya tidak ingat di bagian atas kepala saya, tetapi saya ingat Vcenter menggunakan 00-50-56-XX-XX-XX jadi ini adalah satu-satunya yang saya periksa saja.

Saya pikir ini adalah cara terbaik, secara pribadi.

James Mellitas
sumber
3
... kecuali ketika seseorang secara manual mengatur alamat MAC ke sesuatu yang lain
Rex
atau mengkloningnya dari perangkat keras yang ada dalam situasi PV
Rowan Hawkins