可以通过这样的WMI检测虚拟机管理程序的存在;
select * from Win32_ComputerSystem
从那里,阅读HypervisorPresent
,如果是,则存在。
等效VMIC命令:
ComputerSystem get HypervisorPresent
这给了" true"适用于在VMWare,VirtualBox和Hyper-V下运行的系统。
问题在于,当安装Hyper-V时,即在虚拟化系统之外的物理机上运行时,它也会给出" true"
所以,我的问题是:
即使安装了Hyper-V,是否可以以某种方式检测系统是否是实际的物理机?
我还想知道是否安装了Hyper-V服务/角色,但这还不够,因为您可以使用Hyper-V进行嵌套虚拟化。
答案 0 :(得分:0)
检查“HKLM \ SOFTWARE \ Microsoft \ Virtual Machine \ Auto”,主要是客人在此密钥中存储的所有主机详细信息
使用HKLM \ SOFTWARE \ Microsoft \ Virtual Machine \ Guest \ Parameters可获得更多相关信息
但仅适用于HyperV,您需要为其他虚拟机管理程序一次验证两次,对HyperV验证第二次。
有一个班级check this可以分享虚拟主机和主机详细信息。
您可以Check this获取更多有用的信息。