修改VMware虚拟机CPUID硬盘ID网卡MAC地址说明

1、查看硬件信息
wmic diskdrive get serialnumber 查看磁盘序列号
wmic bios get serialnumber 查询BIOS序列号
wmic nicconfig get macaddress 查询网卡MAC信息
wmic cpu get processorid 查询cpu的ID
wmic beseboard get serialnumber 查询主板序列号

2、修改CPUID,注意需要intel CPU才支持修改
某些软件的加密会通过读取机器的CPUID来识别,如果在虚拟机中运行,可以更改CPUID,操作如下:
使用wmic CPU get ProcessorID命令,可以查看本机的CPUID,如下图:

比如目前CPUID为BFABFBFF000306c3,通过修改虚拟机的.vmx文件来达到修改CPUID的目的,

.vmx最后添加如下两行:

cpuid.1.eax = “CPUID的后32位”
cpuid.1.edx = “CPUID的前32位”

将现在的CPUID转换成2进制并拆分成两段,如下:

BFABFBFF转换成2进制后的CPUID的前32位为:10111111101010111111101111111111
000306c3转换成2进制后的CPUID的后32位为:110000011011100100

则转换成2进制后的两段码为(使用十六进制转二进制工具,不足的位数在前面补0):

0FABFBFF转换成2进制后的CPUID的前32位为:10111111101010111111101111111111
000306E4转换成2进制后的CPUID的后32位为:0000000000000000110000011011100100

最终在*.vmx中添加如下两行:

cpuid.1.eax = “10111111101010111111101111111111”
cpuid.1.edx = “0000000000000000110000011011100100

每个虚拟机都自动分配有一个通用的唯一标识符 (UUID),该标识符存储在 SMBIOS 系统信息描述符中。该标识符可由标准 SMBIOS 扫描软件(例如,SiSoftware Sandra 或 IBM 实用程序 smbios2)访问,并按使用物理计算机的 UUID 的相同方式用于系统管理。 UUID 是一个 128 位的整数。此值包含 16 个字节,用空格分隔,但第八和第九个十六进制字节对之间的短横线除外。UUID 示例如下: 57 4d ef 7d 3f d4 64 e6-7e 04 c5 34 3a ec ee 65 UUID 基于物理计算机的标识符和指向虚拟机配置文件的路径。此 UUID 在打开或重置虚拟机时生成。只要您不将虚拟机移动或复制到另一个位置,UUID 就保持不变。 如果您移动或复制虚拟机,则在首次打开虚拟机时,将要求您选择创建新 UUID 或保留旧 UUID。这个新的 UUID 基于物理计算机的标识符和指向其新位置中虚拟机配置文件的路径。

3、虚修改拟硬盘ID

SCSI类型的虚拟硬盘不存在序列号。但是IDE或者SATA类型的虚拟硬盘会初始化一个序列号,所以必须把硬盘类型切换成IDE类型或者SATA类型。

下面就是切换硬盘类型的步骤:第一步:关闭虚拟机
虚拟机–>设置–>添加硬盘–>选择IDE类型的硬盘–>使用已有虚拟磁盘–>选择旧的硬盘文件(后缀为vmdk)完成。重启虚拟机查看序列号,打开cmd命令窗口,输入命令:wmic diskdrive get serialnumber。
完成。

4、修改MAC地址,虚拟机.vmx配置文件

关于虚拟机修改MAC地址遇到的错误
“静态以太网地址不允许使用:“00:0C:29:AC:9A:19”。它与 VMware 预留的 MAC 冲突。”

在存储里面找到对应虚拟机的配置文件以.vmx结尾.

要根据个人的实际情况去配置,配置原文中有如下几行:
ethernet1.addressType = “static” 保持不变
ethernet1.generatedAddress = “00:0c:29:03:b0:d4” 系统自动分配的 去掉
ethernet1.address = “00:0C:29:AC:9A:19” 手工设置的 保留

只需要增加如下一行即可(这个看人的环境,网络上一般是增加三行)
ethernet1.checkMACAddress = “false” 无需自动分配

如下是网络上常见解决方案:
ethernet0.addressType = “static”
ethernet0.checkMACAddress = “false”
ethernet0.address = “06:0c:29:9b:fb:68”