多分言っている デバイスID は
マイクロソフトでは品質管理のため、
“Specifies the Software Quality Metrics (SQM) Client-to-Service Protocol V2” というプロトコルを使い、各 Windows のテレメトリー情報を取得しています。
“SQMClient MachineID” は SQM による品質管理の通信のために各デバイスを識別するために使われる ID となり、以下のレジストリ キーに情報が格納されています。
レジストリ パス : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQMClient
名前 : MachineId
型 : REG_SZ
値 : <ランダムなID が生成>
■ SQMClient MachineID とは -マスター イメージ展開後に複数端末で同じ SQMClient MachineID が使用されてしまう事象について | Microsoft Japan Windows Technology Support Blog
にある様に MachineId ではないでしょうか?
取得方法としては pwsh なら
pwsh
1Get-ItemPropertyValue "HKLM:\SOFTWARE\Microsoft\SQMClient" -Name "MachineId"
C# なら
csharp
1using Microsoft.Win32;
2using System.Runtime.InteropServices;
3if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
4 throw new PlatformNotSupportedException("required windows only");
5using var subKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\SQMClient");
6if (subKey is not { } _subKey || _subKey.GetValue("MachineId") is not string _machineId)
7 throw new Exception("not found registry key \"SOFTWARE\\Microsoft\\SQMClient\\MachineId\"");
8// _machineId はこの時点で string
9// Guid 化
10var machineId = Guid.Parse(_machineId);
11// 大文字で出力したいならこう
12Console.WriteLine($"{machineId:B}".ToUpperInvariant());
で取れます。
以上。