2017-12-27 27 views
0

장치 하드웨어 정보를 얻고이를 결합하여 고유 한 값을 생성하는 방법은 무엇입니까? 예를 들어 (CPU 일련 번호 + 램 일련 번호 + 이더넷 MAC 주소 등) 으로 고유 코드를 생성하려면 어떻게해야합니까 UWP에서 CPU 또는 램 일련 번호를 얻을 수 있습니까?Windows 10에서 고유 한 하드웨어 직렬 생성 Iot Core?

+3

'SystemIdentificationInfo' 객체를 얻기 위해 이미 제공된 메소드를 사용하지 않는 이유는 무엇입니까? https://docs.microsoft.com/en-us/uwp/api/windows.system.profile.systemidentification – Claies

+0

UWP 앱에서이 정보를 얻을 수 없다고 생각합니다. 문제를 재평가해야한다고 생각합니다. –

+0

@Saruman, 그 API는 특별히 UWP를 위해 설계되었습니다. 또한 [이 질문 및 답변] (https://stackoverflow.com/questions/40387615/how-to-get-unique-device-ids-on-windows-10-anniversary-update)을 참조하십시오. –

답변

0

나는 Windows.System.Profile 생성에 대한 네임 스페이스에 HardwareIdentification 클래스를 찾을 고유 ID.

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 구성 탭에서 그것을 설치되어 있어야합니다 있는지 확인하려면 볼 수 있습니다 .

팁 : 당신이 소프트웨어 TPM 에뮬레이터 (NoSecurity)를 선택해야하므로 내부 TPM이 어쩌려 구`t 라즈베리 파이가 다음 인텔 미노 보드 최대 퀄컴, 그것은을 설치하면 다른 옵션을 선택할 수 있습니다 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; 
} 
+0

이 dll을 UWP 응용 프로그램과 함께 사용할 수 없습니다. –

+0

나는 이것을 알고 있지만 UWP에서는 사용할 수 없습니다! –