using Microsoft.Win32; namespace RmmAgent.Services; public class MachineIdProvider { private string? _cached; public string GetMachineId() { if (_cached != null) return _cached; try { using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Cryptography"); var guid = key?.GetValue("MachineGuid") as string; if (!string.IsNullOrEmpty(guid)) { _cached = guid; return _cached; } } catch { } _cached = $"{Environment.MachineName}-{Environment.UserDomainName}"; return _cached; } }