Se é o Windows, basta dar uma olhada nas telas de hardware. Ele terá um bilhão e cinco dispositivos virtuais da marca VMWare.
Existe uma maneira de saber se a máquina Windows em que estou trabalhando é virtual ou física? (Estou conectando com o RDP para a máquina. Se é uma máquina virtual, ela está funcionando e gerenciada pelo VMWare).
No tipo de janela CMD:
SYSTEMINFO
Você encontrará uma linha com o seguinte texto (ou similar):
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
Se for gerenciado pela VMware, não será muito difícil no momento presente. Isso pode mudar no futuro.
# dmidecode -s system-manufacturer
VMware, Inc.
No Linux, você também pode usar "virt-what". " virt-what - detecta se estamos rodando em uma máquina virtual ".
No Windows, a partir do CMD:
Systeminfo | findstr /i model
retorna algo como:
System Model: VMware Virtual Platform
[01]: Intel64 Family 6 Model 26 Stepping 5 GenuineInt
No Linux, execute isto:
$ dmesg |grep -i hypervisor
Hypervisor detected: KVM
Se você estiver no Windows, como castrocra diz, você pode executar o comando systeminfo
de dentro um shell cmd , em seguida, procure a "versão do BIOS".
Estas são provavelmente máquinas reais :
BIOS Version: Dell Inc. A03, 06/12/2010
BIOS Version: Phoenix Technologies, LTD MS7254 1.08, 08/03/2007
Isso, por outro lado, é quase certamente uma máquina virtual :
BIOS Version: VMware, Inc. VMW71.00V.0.B64.1201040214, 04/01/2012
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 deverá exibir detalhes do fabricante regularmente, se não, por exemplo, "Dell Inc." e "PowerEdge R210 II", respectivamente.
Se for uma VM Unix, use imvirt . É um script em Perl que detecta o VMWare, o Xen e vários outros.
Você pode experimentar o programa "Detecção de host" .
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 do BIOS) para obter uma descrição do sistema "físico". Esta classe geralmente inclui informações sobre a placa-mãe e o chassi - fabricação, modelo, número de série, outros.
Execute o seguinte comando em um prompt de comando ou sessão do PowerShell:
wmic baseboard get manufacturer, product, Serialnumber, version
Ainda mais simples - wmic / node: bios get serialnumber
Qualquer coisa que retorne um número de série no estilo da Dell é física.
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.
Eu tive a mesma pergunta e descobri que há muitos processos sendo executados com "VM" no nome, por exemplo, VMWareTray.exe
nbtstat -a O resultado irá dizer-lhe como VMs tem um prefixo específico que é 00-50-56-XX-XX-XX. Há também um outro prefixo que ele usa, mas eu não consigo lembrar no topo da minha cabeça, mas lembro que o Vcenter usa 00-50-56-XX-XX-XX, então este é o único que eu verifico somente.
Acho que esse é o melhor caminho, pessoalmente.