ฉันจะรู้ได้อย่างไรว่าฉันกำลังทำงานกับเครื่องเสมือนจริงหรือไม่


57

มีวิธีที่จะรู้หรือไม่ว่าเครื่อง Windows ที่ฉันกำลังใช้งานนั้นเป็นเสมือนจริงหรือทางกายภาพ? (ฉันกำลังเชื่อมต่อกับ RDP กับเครื่องหากเป็นเครื่องเสมือนมันทำงานและจัดการโดย VMWare)


2
ดูเพิ่มเติม - stackoverflow.com/questions/779723/…
warren

คำตอบ:


37

ถ้าเป็น Windows ลองดูที่หน้าจอฮาร์ดแวร์ มันจะมีอุปกรณ์เสมือนจริงภายใต้แบรนด์ VMWare หนึ่งพันล้านเครื่อง


ตกลง ตั้งแต่ OP ที่กล่าวถึง RDP เป็น Windows ที่เป็นไปได้มากที่สุด
mfinni

+1 สำหรับการไม่สมมติว่าเป็น Linux อย่างที่ฉันทำ
Matt Simmons

3
ดูไดรเวอร์ยังใช้งานได้สำหรับ linux lsmod อาจส่งคืนข้อมูลที่คุณต้องการ
Seamus Connor

@Seamus: จริงพอ!
Oli

3
การแก้ไข: พันล้านและหก
Get-HomeByFiveOClock

65

ในประเภทหน้าต่าง CMD:

SYSTEMINFO

คุณจะพบบรรทัดที่มีข้อความต่อไปนี้ (หรือคล้ายกัน):

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform

3
ถ้าใช้ Hyper V คุณจะได้รับ: ผู้ผลิตระบบ: Microsoft Corporation รุ่นของระบบ: เครื่องเสมือน
Gayan Dasanayake

16

หากจัดการโดย VMware จะไม่ยากเกินไปในขณะนี้ สิ่งนี้อาจเปลี่ยนแปลงได้ในอนาคต

# dmidecode -s system-manufacturer
VMware, Inc.

ฉันได้รับ 'dmidecode' ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอกทั้งใน Windows 7 และ 10 ESXi 6.0 VM
Andrew S

dmidecodeเป็นคำสั่ง linux ที่ใช้เพื่อรับข้อมูลเกี่ยวกับฮาร์ดแวร์ มันไม่ทำงานบน Windows
ไจ

สำหรับlinuxระบบปฏิบัติการนี่เป็นตัวเลือกที่ดีที่สุดในการตรวจจับฮาร์ดแวร์และเครื่องเสมือน ..
Satish


8

บน Windows จาก CMD:

Systeminfo | findstr /i model

ส่งคืนสิ่งที่ชอบ:

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

7

บน Linux ให้รันสิ่งนี้:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM

4
สำหรับ linux คุณพิมพ์dmesg |grep DMIVirtual Machines: [root @ myhost ~] # dmesg | grep DMI และ DMI 2.3 ปัจจุบัน DMI: เครื่องเสมือน Microsoft Corporation / เครื่องเสมือน, BIOS 090006 05/23/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: เครื่องเสมือน Microsoft Corporation / เครื่องเสมือน, BIOS 090006 05/23/2012 Booting paravirtualized kernel บนอินพุตฮาร์ดแวร์เปล่า: การจำลองปุ่มเมาส์ของ Macintosh เป็น / อุปกรณ์ / เสมือน / อินพุต / อินพุต 1 scsi 0: 0: 0: 0: Direct-Access Msft เสมือนดิสก์ 1.0 PQ: 0 ANSI: 4 อินพุต: Microsoft Vmbus HID-compliant Mouse เป็น / อุปกรณ์ / เสมือน / อินพุต / อินพุต 4 ฟิสิคัล: [root @ backdev1
user215983

สิ่งนี้ใช้ได้สำหรับฉัน กลับdmidecode permission denied !
Alok Mishra

4

หากคุณอยู่ใน Windows ตามที่castrocraกล่าวคุณสามารถเรียกใช้systeminfoคำสั่งจากภายในเชลล์ cmdจากนั้นมองหา "เวอร์ชั่น BIOS"

นี่อาจเป็นเครื่องจักรจริง :

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

ในทางตรงกันข้ามนี่เป็นเครื่องเสมือนจริง :

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012

1
ไฮเปอร์ไวเซอร์สมัยใหม่สามารถจัดหาสตริงที่กำหนดเองได้ทำให้การตรวจสอบไม่น่าเชื่อถือมาก
Michael Hampton

2
น่าเสียดายที่นี่ไม่น่าเชื่อถือ ฉันใช้เครื่องเสมือน แต่ BIOS ของฉันแสดงเป็น: "Phoenix Technologies LTD 6.00, 16/08/2013"
Gavin Ward

VMWare withPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh

3

ได้รับคำตอบแล้ว แต่ FWIW คุณสามารถทำได้ใน powershell:

gwmi -q "select * from win32_computersystem"

"ผู้ผลิต" จะเป็น "Microsoft Corporation" และ "รุ่น" จะเป็น "เครื่องเสมือน" หากเป็นเครื่องเสมือนหรือควรแสดงรายละเอียดผู้ผลิตปกติหากไม่เช่น "Dell Inc. " และ "PowerEdge R210 II" ตามลำดับ


ตลก. Windows VM ของฉันบอกว่าทั้งผู้ผลิตและรุ่นเป็นทั้ง "Bochs"
Michael Hampton

1
หรือในคำสั่ง: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. มันเร็วกว่าsysteminfoโซลูชันพื้นฐาน
atzz

@MichaelHampton คุณกำลังใช้ VMs หรือไม่ แพลตฟอร์มใด - HyperV, VMWare หรืออย่างอื่น? ดูเหมือนว่า VM น่าจะถูกเรียกใช้ในอีมูเลเตอร์ Bochs หรืออะไรทำนองนั้น
Richard Hauer


0

ถ้ามันเป็น Unix VM ใช้imvirt มันเป็นสคริปต์ Perl ที่ตรวจจับ VMWare, Xen และอื่น ๆ อีกมากมาย


เขาพูดเกี่ยวกับเครื่องเสมือนของ Windows ไม่ใช่ Unix one
Mat

0

วิธีง่ายๆในการตรวจสอบข้อมูลการทำเวอร์ช่วลไลเซชั่นของคีย์คือผ่าน WMI / WBEM คุณสามารถใช้เนมสเปซรูท \ CIM2 และเข้าถึงคลาส Baseboard (เต็มไปด้วยข้อมูล BIOS ที่น่าสนใจ) เพื่อรับรายละเอียดของระบบ "ทางกายภาพ" คลาสนี้มักจะมีข้อมูลเกี่ยวกับเมนบอร์ดและตัวถัง - การผลิต, รุ่น, หมายเลขประจำเครื่อง, อื่น ๆ

เรียกใช้คำสั่งต่อไปนี้จากพรอมต์คำสั่งหรือเซสชัน PowerShell:

wmic baseboard get manufacturer, product, Serialnumber, version

0

ง่ายขึ้น - wmic / node: bios รับ serialnumber

สิ่งใดก็ตามที่ส่งคืนหมายเลขซีเรียลสไตล์ของ Dell นั้นมีอยู่จริง

มันจะส่งคืน "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89" หากเป็นเครื่องเสมือน


-2

ฉันมีคำถามเดียวกันและพบว่ามีหลายกระบวนการที่ทำงานด้วย "VM" ในชื่อตัวอย่างเช่น VMWareTray.exe


7
ใช่ แต่ถ้าติดตั้งแพ็คเกจเครื่องมือ VMware แล้ว
jscott

-2

nbtstat -a ผลลัพธ์จะบอกคุณว่า VMs มีคำนำหน้าเฉพาะซึ่งเป็น 00-50-56-XX-XX-XX นอกจากนี้ยังมีคำนำหน้าอื่นที่ใช้ แต่ฉันจำไม่ได้ที่ด้านบนของหัวของฉัน แต่ฉันจำได้ว่า Vcenter ใช้ 00-50-56-XX-XX-XX ดังนั้นนี่คือ iOS ที่ฉันตรวจสอบเท่านั้น

ฉันคิดว่านี่เป็นวิธีที่ดีที่สุดเป็นการส่วนตัว


3
... ยกเว้นเมื่อมีคนตั้งค่าที่อยู่ MAC เป็นอย่างอื่นด้วยตนเอง
Rex

หรือโคลนนิ่งจากฮาร์ดแวร์ที่มีอยู่ในสถานการณ์ PV
Rowan Hawkins
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.