Como sei se estou trabalhando em uma máquina virtual ou não?

Respostas:

37

Se for Windows, basta dar uma olhada nas telas de hardware. Ele terá um bilhão e cinco dispositivos virtuais da marca VMWare.

Oli
fonte
Acordado. Desde que o OP mencionou o RDP, é mais provável que o Windows esteja lá.
mfinni
+1 para não assumindo que é Linux como eu fiz
Matt Simmons
3
Olhando para os drivers também funciona para linux. O lsmod provavelmente retornaria as informações necessárias.
Seamus Connor
@ Seamus: É verdade!
Oli
3
Correção: Um bilhão e seis.
Get-HomeByFiveOClock
65

Na janela CMD, digite:

SYSTEMINFO

Você encontrará uma linha com o seguinte texto (ou similar):

System Manufacturer:       VMware, Inc.
System Model:              VMware Virtual Platform
castrocra
fonte
3
Se Hyper-V é usado você obtém: Fabricante: Microsoft Corporation System Model: Máquina Virtual
Gayan Dasanayake
16

Se for gerenciado pelo VMware, não é muito difícil no momento. Isso pode mudar no futuro.

# dmidecode -s system-manufacturer
VMware, Inc.
Matt Simmons
fonte
Eu recebo 'dmidecode' não é reconhecido como um comando interno ou externo nas VMs do Windows 7 e 10 ESXi 6.0.
Andrew S
dmidecodeé um comando linux usado para obter informações sobre o hardware. Não funciona no Windows.
Jaime
para linuxOS esta é a melhor opção para detectar hardware vs máquina virtual ..
Satish
8

No Windows, no CMD:

Systeminfo | findstr /i model

retorna algo como:

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

No Linux, execute o seguinte:

$ dmesg |grep -i hypervisor
 Hypervisor detected: KVM
Arash
fonte
4
para linux, você digita dmesg |grep DMIMáquinas Virtuais: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 presente. DMI: Máquina virtual / máquina virtual da Microsoft Corporation, BIOS 090006 23/05/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: Máquina virtual / máquina virtual da Microsoft Corporation, BIOS 090006 23/05/2012 Inicializando o kernel paravirtualizado na entrada de hardware simples: emulação de botão de mouse do Macintosh como / devices / virtual / input / input1 scsi 0: 0: 0: 0: Msft de acesso direto do disco virtual 1.0 PQ: 0 ANSI: 4 entrada: mouse compatível com Microsoft Vmbus HID como / devices / virtual / input / input4 Físico: [root @ backdev1
user215983
isso funcionou para mim. dmidecoderetornado permission denied !.
Alok Mishra
4

Se você estiver no Windows, como diz o castrocra , poderá executar o systeminfocomando de dentro de um shell do cmd e procurar a "Versão do BIOS".

Provavelmente são máquinas reais :

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

Por outro lado, é quase certamente uma máquina virtual :

BIOS Version:              VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
Lucas
fonte
11
Os hipervisores modernos podem fornecer cadeias arbitrárias aqui, tornando essa verificação não muito confiável.
Michael Hampton
2
Infelizmente isso não é confiável. Estou executando uma máquina virtual, mas meu BIOS está aparecendo como: "Phoenix Technologies LTD 6.00, 16/08/2013"
Gavin Ward
VMWare comPhoenix Technologies LTD 6.00, 9/17/2015
Ravi Parekh
3

Foi respondido, mas FWIW você pode fazer isso no PowerShell:

gwmi -q "select * from win32_computersystem"

O "Fabricante" será "Microsoft Corporation" e o "Modelo" será "Máquina Virtual" se for uma máquina virtual ou, caso contrário, deverá exibir detalhes regulares do fabricante, por exemplo, "Dell Inc." e "PowerEdge R210 II", respectivamente.

Richard Hauer
fonte
Engraçado. Minha VM do Windows diz que o fabricante e o modelo são "Bochs".
Michael Hampton
11
Ou em cmd: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. É mais rápido que as systeminfosoluções baseadas.
atzz
@MichaelHampton Você está usando VMs? Qual plataforma - HyperV, VMWare ou algo mais? Parece que a VM provavelmente está sendo executada em um emulador de Bochs ou algo assim.
Richard Hauer
0

Se for uma VM Unix, use imvirt . É um script Perl que detecta o VMWare, o Xen e vários outros.

Peter Westlake
fonte
Ele está falando de uma máquina virtual Windows, não de Unix.
Mat
0

Uma maneira (relativamente) simples de detectar as principais informações de virtualização é via WMI / WBEM. Você pode usar o namespace root \ CIM2 e acessar a classe Baseboard (cheia de informações interessantes sobre o BIOS) para obter uma descrição do sistema "físico". Essa classe geralmente inclui informações sobre a placa-mãe e o chassi - fabricação, modelo, número de série e outros.

Execute o seguinte comando em um prompt de comando ou sessão do PowerShell:

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

Ainda mais simples - wmic / node: bios get serialnumber

Tudo o que retorna um número de série no estilo Dell é físico.

Ele também retornará "VMware-42 22 26 a8 dd 6e e3 b3-2e 03 fc 2c 92 ae 2e 89", se for uma máquina virtual.

Magilla66
fonte
-2

Eu tive a mesma pergunta e descobri que existem muitos processos em execução com "VM" no nome, por exemplo, VMWareTray.exe

Josh
fonte
7
Sim, mas apenas se o pacote de ferramentas do VMware estiver instalado.
Jscott 20/04
-2

nbtstat -a O resultado indicará que as VMs têm um prefixo específico que é 00-50-56-XX-XX-XX. Há também outro prefixo que ele usa, mas não me lembro no topo da minha cabeça, mas lembro que o Vcenter usa 00-50-56-XX-XX-XX-XX, então esse é o único que eu verifico.

Eu acho que essa é a melhor maneira, pessoalmente.

James Mellitas
fonte
3
... exceto quando alguém define manualmente o endereço MAC para outra coisa
Rex:
ou clones de TI de hardware existente em uma situação PV
Rowan Hawkins