C# ManagementObjectSearcher处理器ID=null

C# ManagementObjectSearcher处理器ID=null,c#,nullreferenceexception,C#,Nullreferenceexception,嘿,我正在尝试从ManagementObjectSearcher获取过程ID。它对我来说可以工作,但当我把软件给朋友时,它会给我System.NullReferenceException var mbs = new ManagementObjectSearcher("Select * From Win32_processor"); var mbsList = mbs.Get(); var id = ""; foreach (var mo in mbsList) id = mo["Proc

嘿,我正在尝试从ManagementObjectSearcher获取过程ID。它对我来说可以工作,但当我把软件给朋友时,它会给我System.NullReferenceException

var mbs = new ManagementObjectSearcher("Select * From Win32_processor");
var mbsList = mbs.Get();
var id = "";
foreach (var mo in mbsList)
    id = mo["ProcessorID"].ToString();
return id;
所以我将mo对象序列化为json,并看到ProcessorId值为null<代码>{“名称”:“ProcessorId”,“值”:null,“类型”:8,“IsLocal”:false,“IsArray”:false,“源代码”:“Win32_处理器”,“限定符”:[{“名称”:“CIMTYPE”,“值”:“字符串”,“IsAmended”:false,“IsLocal”:false,“传播实例”:true,“传播子类”:true,“IsOverridable”:true}

我只是不明白为什么会这样。 是否有其他获取ProcessorId的方法,或者是否有修复方法?我需要它来生成系统的HWID

附言。
我的朋友不使用虚拟mashine。

是的,大多数处理器都没有返回值,有些人认为它可以用来获得一些软件拷贝保护