【问题标题】:Generate unique hardware Serial in windows 10 Iot Core?在 Windows 10 IoT Core 中生成独特的硬件串行?
【发布时间】:2017-12-27 04:35:01
【问题描述】:

如何获取设备硬件信息并通过组合它们产生独特的价值? 例如,我想要生成一个具有(CPU 序列号 + ram 序列号 + 以太网 MAC 地址等)的唯一代码 那么如何在 UWP 中获取 CPU 或 Ram 序列号?

【问题讨论】:

  • 为什么不使用已经提供的方法来获取SystemIdentificationInfo 对象呢? docs.microsoft.com/en-us/uwp/api/…
  • 我认为您无法在 UWP 应用中获取此信息,我认为您需要重新评估问题
  • @Saruman,该 API 专为 UWP 设计。另见this Question & Answer
  • @PeterTorr-MSFT 我将SystemIdentificationInfo 与注册源一起使用,但是当设备重置时,ID 改变了!
  • 您尝试过其他来源吗?如果需要,您可以获取 MAC 地址。

标签: c# uwp windowsiot windows-iot-core-10


【解决方案1】:

我在 Windows.System.Profile 命名空间中找到 HardwareIdentification 类以生成 UniqueID。

   var token = HardwareIdentification.GetPackageSpecificToken(null);
   using (DataReader reader = DataReader.FromBuffer(token.Id))
   {
       byte[] bytes = new byte[token.Id.Length];
       reader.ReadBytes(bytes);
       string uniqueCode = Encoding.ASCII.GetString(bytes);
   }

更多信息可以看Microsoft Document

为此,请确保您在目标设备上启用 TPM,要启用 TPM,您必须从 Windows 设备门户中的 TPM 配置选项卡安装它。

提示: Raspberry pi 没有任何内部 TPM,因此您必须选择 Software TPM Emulator (NoSecurity) 然后安装它, Intel minnow board max 和 qualcomm dragonboard 您可以选择其他选项。设置并安装后TPM设备重启,当它再次启动时,您可以在顶部看到的生成代码始终是唯一的。

【讨论】:

    【解决方案2】:

    这不是一个完整的答案,但是, 您可以使用以下代码找到CPU序列号,

    string cpuInfo = string.Empty;
    ManagementClass mc = new ManagementClass("win32_processor");
    ManagementObjectCollection moc = mc.GetInstances();
    
    foreach (ManagementObject mo in moc)
    {
         cpuInfo = mo.Properties["processorID"].Value.ToString();
         break;
    }
    

    【讨论】:

    • 你不能在 UWP 应用程序中使用这个 dll
    • 这个我知道,但不能在 UWP 中使用!
    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多