Я удаляю рабочий стол на серверы Windows в нашей лаборатории/центре обработки данных. У меня есть требование, чтобы все наши серверы были виртуальными машинами или физическими серверами программно, конечно, у нас есть таблица окружения, рассказывающая нам, что есть. Но мне нужно написать код, чтобы отличить его. Какую технику мне нужно использовать? Я не нашел .Net Assembly для этого. Ищете эксперта, чтобы поделиться своими знаниями или руководством, любым направлением или ссылкой на исследования, все будет оценено!
Как проверить мой сервер Windows - это виртуальная машина или физическая машина
Ответ 1
Вы можете попытаться использовать следующий PowerShell script, он использует WMI, чтобы узнать, является ли машина виртуальной машиной или физической машиной.
gwmi -q "select * from win32_computersystem"
Certainly, you can use C# code to query WMI too. The output of script above will be like following:
Domain: ... Manufacturer: Microsoft Corporation Model: Virtual Machine Name : ..... ....
Ответ 2
Насколько я знаю, нет простого способа сделать это.
Есть несколько обходных решений, но есть, по крайней мере, насколько я знаю, не одноразовое решение.
Бен Армстронг написал сообщение о Обнаружение виртуальных машин Microsoft и там трюк низкого уровня, который может определить, работаете ли вы в Virtual PC или VMWare, но это все равно не оставляет VirtualBox и других.
Трюк, который вы можете попробовать, это определить, установлены ли инструменты VMWare или VirtualBox Tools. В большинстве случаев они устанавливаются на гостевой ОС для обеспечения необходимых функций, но будет сложно поддерживать различные установки GUIDS на вашем конце, чтобы это не идеальное решение.
--- Кроме того, если виртуальная машина работает в среде Linux KVM, вывод будет таким же
Ответ 3
Чтобы проверить это из командной строки, вы можете запустить это: systeminfo | find "System"
Пример вывода для виртуального сервера:
System Manufacturer: Microsoft Corporation
System Model: Virtual Machine
System Type: x64-based PC
Пример вывода для физического сервера:
System Manufacturer: HP
System Model: ProLiant BL460c G6
System Type: x64-based PC
Ответ 4
Нет простого способа узнать, работаете ли вы в голом металле или на виртуальном компьютере, самое лучшее, что вы можете сделать, это получить некоторую информацию об оборудовании и сделать обоснованное предположение, например, если машина сетевой адаптер, который содержит Microsoft, VMware, Oracle, Hyper-V, Virtual или VirtualBox, скорее всего, это виртуальная машина, учитывая, что ни Microsoft, ни Oracle, ни VMware не создают сетевые карты.
Как вы используете С#, класс для получения этой и другой информации об оборудовании ManagementClass, также есть этот приятный project, который позволяет извлекать тонны информации с вашего компьютера с помощью ManagementClass.
Ответ 5
Запустите командную строку командной строки systeminfo, чтобы просмотреть детали системы системы. Там вы найдете информацию о виртуле и физической машине.
Ответ 6
Единственный * программный * способ, которым я знаю это надежно:
- Напишите приложение, которое сканирует вашу сеть (или диапазон IP), чтобы получить список машин.
- Покажите эти машины человеку и попросите их установить флажок, если это VM...
- Распечатайте отчет.
Ответ 7
Попробуйте следующее:
FOR /F "tokens=*" %a IN ('wmic bios get bioscharacteristics^|find /c "33"') DO set USBlegacy=%a
Это возвращает "1" для ограниченного диапазона рабочих столов и ноутбуков в моей среде и "0" для рабочих станций VMWare 9, ESX 5.5 и Citrix 6.5 и 7.6. BIOSCharacteristic "50" (один "зарезервирован для системного поставщика" ) Я нашел только в четырех виртуальных средах, чтобы работать в обратном порядке.
Изменить: или там:
FOR /F "tokens=*" %a IN ('wmic path win32_pnpentity get ^|find /c "ACPI Fan"') DO set ACPIfan=%a
Возвращает "5" на рабочем столе HP "0" на рабочей станции VMware 9 и ESX 5.5, а не проверяется другими.
Ответ 8
вы можете использовать эту команду в cmd или powershell
Systeminfo
Вы найдете строку со следующим текстом (или подобным):
Производитель системы: VMware, Inc. Модель системы: виртуальная платформа VMware