C# WMI报告非唯一的处理器id、硬盘驱动器id和mac地址

C# WMI报告非唯一的处理器id、硬盘驱动器id和mac地址,c#,wmi,C#,Wmi,我们有以下代码来检索硬盘驱动器id处理器id和mac地址: private static string GetWMIValue(string query, string propertyName) { try { using (ManagementObjectSearcher search = new ManagementObjectSearcher(query)) { using (ManagementObjectCollection results

我们有以下代码来检索硬盘驱动器id处理器id和mac地址:

    private static string GetWMIValue(string query, string propertyName)
{
  try
  {
    using (ManagementObjectSearcher search = new ManagementObjectSearcher(query))
    {
      using (ManagementObjectCollection results = search.Get())
      {
        foreach (var result in results)
        {
          if (result != null && result[propertyName] != null)
          {
            return result[propertyName].ToString();
          }
        }
      }
    }
  }
  catch
  {
    // do nothing.
  }

  return null;
}

public static string GetHardDriveSerialNumber()
{
  string driveLetterName = Assembly.GetExecutingAssembly().Location.Substring(0, 1);
  return GetWMIValue("SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceID=\"" + driveLetterName + ":\"", "VolumeSerialNumber");
}

public static string GetProcessorId()
{
  return GetWMIValue("SELECT ProcessorId FROM Win32_Processor", "ProcessorId");
}

public static string GetMacAddress()
{
  return GetWMIValue("SELECT MacAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = TRUE", "MacAddress");
}
除了一个特定品牌的平板电脑(据我们所知),这一切都很好。在这个品牌上,每台机器都有相同的3个值。你可以想象,这在一定程度上与我们的许可证有关

有没有人见过这种情况,或者有没有人有更好更可靠的机制


谢谢

经过更多的研究,这似乎是一个众所周知的话题。我需要做一些工作


谢天谢地,这不是我的问题:)我只需要解决它:(

经过更多的研究,这似乎是一个众所周知的话题。我需要做一些工作


谢天谢地,这不是我的问题:)我只需要修复它:(

尝试将WMI类的
SerialNumber
Signature
值添加到公式中。尝试将WMI类的
SerialNumber
Signature
值添加到公式中。