如何检查 Windows 服务器是否是虚拟服务器?是否有命令提示符命令可以检查?
答案1
理论上,虚拟化是不可检测的。实际上,这是因为大多数虚拟化解决方案都提供了客户机->主机通信的方法,或者不像物理 CPU 那样提供设备/CPU。但是,检测主机的方法取决于提供商。
但是,大多数虚拟化解决方案都提供了可以与主机通信的手段,例如使用“虚拟”(不存在)端口的 VMWare 插件或使用未记录的 CPU 指令的 Virtual PC :)
编程背景:http://www.codeproject.com/KB/system/VmDetect.aspx
工具:http://www.codegurus.be/codegurus/Programming/virtualpc&vmware_en.htm
另一种方法是检查特定于 VM 的设备,例如 VMWare 在许多设备中包含其名称。
对于 Xen,您可以使用:http://xen-3.1.sourcearchive.com/documentation/3.1.0/xen-detect_8c-source.html(在 Win32 下应该很容易编译)。
理论背景: http://thread.gmane.org/gmane.comp.emulators.kvm.devel/22643
答案2
你可以通过 MAC 地址检查。如果以
- 00:0C:29 VMWare(自动)
- 00:50:56 VMWare(手动)
- 00:16:3e 希恩
VPS 提供商可以更改 MAC 地址范围(至少在 Xen 中),但根据我的经验,大多数 VPS 提供商并不关心这一点。
答案3
在 WMware 客户机上,一个简单的尝试是执行“vmic bios get”并搜索关键字“wmware”。但我不知道需要什么用户权限。至少它可以以管理员身份运行。
另一种方法是查看显卡驱动程序。如果安装了 VMware 工具,其中还会包含 vmware 关键字。
答案4
测试 VMWare 最简单的方法(假设您能够登录到机器)是检查是否存在 VMWare Tools。您可以在开始菜单中找到它,也可以在系统托盘中作为正在运行的应用程序找到它,或者也可以在 Program Files 下的文件系统中找到它。
我不确定其他虚拟化产品是否有与 VMWare Tools 相当的产品。