Come faccio a sapere se sto lavorando su una macchina virtuale o no?


Risposte:


37

Se è Windows, dai un'occhiata alle schermate hardware. Avrà un miliardo e cinque dispositivi virtuali con marchio VMWare.


Concordato. Dato che l'OP ha menzionato RDP, è molto probabilmente Windows, quindi eccoti.
mfinni,

+1 per non dare per scontato che sia Linux come ho fatto io
Matt Simmons

3
Guardare i driver funziona anche per Linux. lsmod probabilmente restituirà le informazioni di cui hai bisogno.
Seamus Connor,

@Seamus: abbastanza vero!
Oli,

3
Correzione: un miliardo e sei.
Get-HomeByFiveOClock

65

Nella finestra CMD digitare:

SYSTEMINFO

Troverai una riga con il seguente testo (o simile):

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

3
Se si utilizza Hyper V, si ottiene: Produttore del sistema: Microsoft Corporation Modello del sistema: Macchina virtuale
Gayan Dasanayake

16

Se è gestito da VMware, al momento non è troppo difficile. Questo potrebbe cambiare in futuro.

# dmidecode -s system-manufacturer
VMware, Inc.

Ottengo che "dmidecode" non sia riconosciuto come comando interno o esterno su macchine virtuali ESXi 6.0 con Windows 7 e 10.
Andrew S,

dmidecodeè un comando linux usato per ottenere informazioni sull'hardware. Non funziona su Windows.
Jaime,

per linuxOS questa è la migliore opzione per rilevare hardware vs macchina virtuale ..
Satish


8

Su Windows, da CMD:

Systeminfo | findstr /i model

restituisce qualcosa del tipo:

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

7

Su Linux, esegui questo:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM

4
per linux digiti dmesg |grep DMIMacchine virtuali: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 presente. DMI: Macchina virtuale / macchina virtuale di Microsoft Corporation, BIOS 090006 23/05/2012 [root @ myhost ~] # dmesg | grep -i DMI virtuale: Macchina virtuale / macchina virtuale di Microsoft Corporation, BIOS 090006 23/05/2012 Avvio del kernel paravirtualizzato su input hardware nudo: emulazione del pulsante del mouse Macintosh come / dispositivi / virtuale / input / input1 scsi 0: 0: 0: 0: Direct Access Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 4 input: compatibile con Microsoft Vmbus HID Mouse come / dispositivi / virtuale / input / input4 Physical: [root @ backdev1
user215983

questo ha funzionato per me. dmidecoderestituito permission denied !.
Alok Mishra,

4

Se sei su Windows, come dice castrocra , puoi eseguire il systeminfocomando da una shell cmd , quindi cercare la "Versione BIOS".

Queste sono probabilmente macchine reali :

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

Questa, d'altra parte, è quasi certamente una macchina virtuale :

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

1
I moderni hypervisor possono fornire stringhe arbitrarie qui, rendendo questo controllo non molto affidabile.
Michael Hampton

2
Purtroppo questo non è affidabile. Sto eseguendo una macchina virtuale ma il mio BIOS mostra: "Phoenix Technologies LTD 6.00, 16/08/2013"
Gavin Ward,

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

3

È stato risposto, ma FWIW puoi farlo in PowerShell:

gwmi -q "select * from win32_computersystem"

Il "Produttore" sarà "Microsoft Corporation" e il "Modello" sarà "Macchina virtuale" se si tratta di una macchina virtuale, altrimenti dovrebbe visualizzare i dettagli del produttore in caso contrario, ad esempio "Dell Inc." e "PowerEdge R210 II" rispettivamente.


Divertente. La mia macchina virtuale Windows dice che il produttore e il modello sono entrambi "Boch".
Michael Hampton

1
O in cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. È più veloce delle systeminfosoluzioni basate su.
Atzz

@MichaelHampton Stai usando VM? Quale piattaforma: HyperV, VMWare o qualcos'altro? Sembra che la VM sia probabilmente in esecuzione in un emulatore Bochs o qualcosa del genere.
Richard Hauer,


0

Se si tratta di una macchina virtuale Unix, utilizzare imvirt . È uno script Perl che rileva VMWare, Xen e molti altri.


Sta parlando di una macchina virtuale Windows, non di Unix
Mat

0

Un modo (relativamente) semplice per rilevare le informazioni chiave sulla virtualizzazione è tramite WMI / WBEM. È possibile utilizzare lo spazio dei nomi root \ CIM2 e accedere alla classe Baseboard (piena di interessanti informazioni sul BIOS) per ottenere una descrizione del sistema "fisico". Questa classe include spesso informazioni sulla scheda madre e sul telaio - fabbricazione, modello, numero di serie, altro.

Eseguire il comando seguente da un prompt dei comandi o da una sessione di PowerShell:

wmic baseboard get manufacturer, product, Serialnumber, version

0

Ancora più semplice - wmic / node: il BIOS ottiene il numero seriale

Tutto ciò che restituisce un numero seriale in stile Dell è fisico.

Restituirà anche "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89", se si tratta di una macchina virtuale.


-2

Ho avuto la stessa domanda e ho scoperto che ci sono molti processi in esecuzione con "VM" nel nome, ad esempio VMWareTray.exe


7
Sì, ma solo se è installato il pacchetto di strumenti VMware.
jscott,

-2

nbtstat -a Il risultato ti dirà come le VM hanno un prefisso specifico che è 00-50-56-XX-XX-XX. C'è anche un altro prefisso che usa ma non me lo ricordo nella parte superiore della mia testa, ma ricordo che Vcenter usa 00-50-56-XX-XX-XX, quindi questo è quello che controllo solo.

Penso che questo sia il modo migliore, personalmente.


3
... tranne quando qualcuno imposta manualmente l'indirizzo MAC su qualcos'altro
Rex

o lo clona dall'hardware esistente in una situazione fotovoltaica
Rowan Hawkins,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.