Как узнать, работаю ли я на виртуальной машине или нет?


57

Есть ли способ узнать, является ли машина с Windows, на которой я работаю, виртуальной или физической? (Я подключаюсь с помощью RDP к машине. Если это виртуальная машина, она работает и обрабатывается VMWare).


Ответы:


37

Если это Windows, просто взгляните на аппаратные экраны. У него будет миллиард пять виртуальных устройств под маркой VMWare.


Согласовано. Поскольку в OP упоминается RDP, это, скорее всего, Windows, так что все готово.
mfinni

+1 за то, что я не предполагал, что это Linux, как я
Мэтт Симмонс

3
Просмотр драйверов также работает для Linux. lsmod, вероятно, вернет нужную вам информацию.
Симус Коннор

@ Симус: Достаточно верно!
Оли

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' не распознается как внутренняя или внешняя команда на виртуальных машинах ESXi 6.0 Windows 7 и 10.
Эндрю С

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 DMIВиртуальные машины: [root @ myhost ~] # dmesg | grep DMI <br> DMI 2.3 присутствует. DMI: Виртуальная машина Microsoft Corporation / Виртуальная машина, BIOS 090006 23.05.2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: Виртуальная машина Microsoft Corporation, Виртуальная машина, BIOS 090006 23.05.2012 Загрузка ядра паравиртуализированного ядра на аппаратном вводе: эмуляция кнопки мыши Macintosh как / devices / virtual / input / input1 scsi 0: 0: 0: 0: виртуальный диск Msft с прямым доступом 1.0 PQ: 0 вход ANSI: 4: мышь, совместимая с Microsoft Vmbus, как / устройства / виртуальные / входные / входные4 физические: [root @ backdev1
user215983

это сработало для меня. dmidecodeвернулся permission denied !.
Алок Мишра

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
Современные гипервизоры могут поставлять здесь произвольные строки, что делает эту проверку не очень надежной.
Майкл Хэмптон

2
К сожалению это не надежно. Я использую виртуальную машину, но мой BIOS отображается как: «Phoenix Technologies LTD 6.00, 16.08.2013»
Гэвин Уорд,

VMWare сPhoenix Technologies LTD 6.00, 9/17/2015
Рави Парех

3

На него уже дан ответ, но FWIW вы можете сделать это в powershell:

gwmi -q "select * from win32_computersystem"

«Производитель» будет «Корпорация Microsoft», а «Модель» будет «Виртуальная машина», если это виртуальная машина, или в противном случае должна отображаться обычная информация о производителе, например «Dell Inc.» и «PowerEdge R210 II» соответственно.


Веселая. Моя виртуальная машина Windows говорит, что Производитель и Модель являются "Bochs".
Майкл Хэмптон

1
Или в ЦМД: wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare. Это быстрее, чем systeminfoрешения на основе.
atzz

@MichaelHampton Вы используете виртуальные машины? Какая платформа - HyperV, VMWare или что-то еще? Похоже, что виртуальная машина, вероятно, работает в эмуляторе Bochs или что-то в этом роде.
Ричард Хауэр


0

Если это Unix VM, используйте imvirt . Это скрипт на Perl, который обнаруживает VMWare, Xen и некоторые другие.


Он говорит о виртуальной машине Windows, а не о Unix
Мат

0

Один (относительно) простой способ обнаружения ключевой информации о виртуализации - через WMI / WBEM. Вы можете использовать пространство имен root \ CIM2 и получить доступ к классу Baseboard (полному интересной информации BIOS), чтобы получить описание «физической» системы. Этот класс часто включает информацию о материнской плате и шасси - производство, модель, серийный номер, другое.

Запустите следующую команду из командной строки или сеанса PowerShell:

wmic baseboard get manufacturer, product, Serialnumber, version

0

Еще проще - wmic / node: bios получает серийный номер

Все, что возвращает серийный номер в стиле 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 Результат покажет вам, что виртуальные машины имеют специальный префикс 00-50-56-XX-XX-XX. Есть также другой префикс, который он использует, но я не могу вспомнить в верхней части головы, но я помню, что Vcenter использует 00-50-56-XX-XX-XX, так что это тот, который я проверяю только.

Я думаю, что это лучший способ, лично.


3
... за исключением случаев, когда кто-то вручную устанавливает MAC-адрес для чего-то другого
Rex

или клонирует его из существующего оборудования в ситуации с PV
Rowan Hawkins,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.