在使用VMware的虚拟环境中,我想要设置Windows许可证服务器。 不幸的是,供应商的许可证服务器拒绝在虚拟机上运行; 它必须安装在物理机器上 。
由于我们没有物理Windows服务器,也不想拥有这些服务器:是否可以build立一个大多数应用程序未检测到的虚拟环境? 应用程序如何检测到它们正在虚拟机上运行?
我想强调的是,我们并不是想规避许可要求。 这只是为了避免维护和能源成本的另一个大多无用的单点故障。
不幸的是,我认为有太多不同的虚拟硬件会被刻录成VMware ,以至于完全掩盖了虚拟机这个事实,而不是改变显示内容的方法。
但是,如果你能弄清楚是什么来closures和隐藏这些信息,那么欺骗这个特定的应用程序是有一定的希望的。
如果键入硬盘驱动器的型号信息,则可以尝试使用直接映射的磁盘而不是VMDK。
如果它正在寻找一个00:0c MAC地址,很容易修复。
首先,我想尝试的是改变虚拟机中公开的产品和制造商string,以便使用主机上的内容 – 如果我不得不猜测一些不好的许可软件会检查什么,这将是我的第一个猜测。
设置SMBIOS.reflectHost = TRUE :

如果您将其安装在虚拟机上,我怀疑您违反了该软件的许可证。
你问的其实很难。 VMware定义了各种虚拟硬件(从磁盘驱动器到主板),必须先跟踪软件并确定它正在访问的内容,然后才能将其安装到物理机器上。 Process Monitor可能对您有所帮助。 您可以使用它来跟踪应用程序所执行的一些系统调用,这可能会给您一些指示。
至于隐藏实际的设备,这将取决于应用程序正在寻找什么。 没有100%的方法可以完全隐藏VMware是活跃的。