Есть ли способ узнать, является ли машина с Windows, на которой я работаю, виртуальной или физической? (Я подключаюсь с помощью RDP к машине. Если это виртуальная машина, она работает и обрабатывается VMWare).
Есть ли способ узнать, является ли машина с Windows, на которой я работаю, виртуальной или физической? (Я подключаюсь с помощью RDP к машине. Если это виртуальная машина, она работает и обрабатывается VMWare).
Ответы:
Если это Windows, просто взгляните на аппаратные экраны. У него будет миллиард пять виртуальных устройств под маркой VMWare.
В окне CMD введите:
SYSTEMINFO
Вы найдете строку со следующим текстом (или аналогичным):
System Manufacturer: VMware, Inc.
System Model: VMware Virtual Platform
Если это обрабатывается VMware, это не так уж сложно в настоящий момент. Это может измениться в будущем.
# dmidecode -s system-manufacturer
VMware, Inc.
linux
ОС это лучший вариант для обнаружения оборудования против виртуальной машины.
В Linux вы также можете использовать «virt-what». « virt-what - определить, работаем ли мы на виртуальной машине ».
В Windows из CMD:
Systeminfo | findstr /i model
возвращает что-то вроде:
System Model: VMware Virtual Platform
[01]: Intel64 Family 6 Model 26 Stepping 5 GenuineInt
В Linux запустите это:
$ dmesg |grep -i hypervisor
Hypervisor detected: KVM
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
dmidecode
вернулся permission denied !
.
Если вы находитесь в 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
Phoenix Technologies LTD 6.00, 9/17/2015
На него уже дан ответ, но FWIW вы можете сделать это в powershell:
gwmi -q "select * from win32_computersystem"
«Производитель» будет «Корпорация Microsoft», а «Модель» будет «Виртуальная машина», если это виртуальная машина, или в противном случае должна отображаться обычная информация о производителе, например «Dell Inc.» и «PowerEdge R210 II» соответственно.
wmic computersystem get manufacturer | find "VMware" && echo In VMWare || echo Not in VMWare
. Это быстрее, чем systeminfo
решения на основе.
Вы можете попробовать программу «Host Detection» .
Один (относительно) простой способ обнаружения ключевой информации о виртуализации - через WMI / WBEM. Вы можете использовать пространство имен root \ CIM2 и получить доступ к классу Baseboard (полному интересной информации BIOS), чтобы получить описание «физической» системы. Этот класс часто включает информацию о материнской плате и шасси - производство, модель, серийный номер, другое.
Запустите следующую команду из командной строки или сеанса PowerShell:
wmic baseboard get manufacturer, product, Serialnumber, version
У меня был тот же вопрос, и я обнаружил, что существует много процессов с именем «VM», например VMWareTray.exe.
nbtstat -a Результат покажет вам, что виртуальные машины имеют специальный префикс 00-50-56-XX-XX-XX. Есть также другой префикс, который он использует, но я не могу вспомнить в верхней части головы, но я помню, что Vcenter использует 00-50-56-XX-XX-XX, так что это тот, который я проверяю только.
Я думаю, что это лучший способ, лично.