获取虚拟机上的CPU ID

her*_*sma 2 c# virtual-machine visual-studio-2010 hardware-id cpuid

我正在尝试使用此代码:

public string GetCPUId()
{
    string cpuInfo = String.Empty;
    string temp = String.Empty;
    ManagementClass mc = new ManagementClass("Win32_Processor");
    ManagementObjectCollection moc = mc.GetInstances();
    foreach (ManagementObject mo in moc)
    {
        if (cpuInfo == String.Empty)
        {
            cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
        }
    }
    return cpuInfo;
}
Run Code Online (Sandbox Code Playgroud)

要在XP虚拟机(虚拟机)上获得hw uid,但我只得到一个消息框,上面写着:

Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

是因为它是虚拟机还是什么?

SwD*_*n81 7

是的,这是因为您正在运行虚拟机. mo.Properties["ProcessorId"]将返回null.在这里查看答案.