private static string GetSystemUuid()
 {
     try
     {
         // read the UUID of the system
         using (var searcher = new ManagementObjectSearcher("SELECT UUID FROM Win32_ComputerSystemProduct"))
         {
             using (var results = new ManagementObjectSearcherResults(searcher))
             {
                 foreach (var system in results)
                 {
                     var uuid = system.GetString("UUID");
                     if (uuid != null)
                     {
                         uuid = uuid.Trim();
                     }
                     if (!string.IsNullOrEmpty(uuid))
                     {
                         return(uuid);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Platform.Log(LogLevel.Debug, ex, "Failed to retrieve system UUID.");
     }
     return(string.Empty);
 }
        private static string GetDiskSignature()
        {
            try
            {
                // identify the disk drives sorted by hardware order
                var diskDrives = new SortedList <uint, uint>();
                using (var searcher = new ManagementObjectSearcher("SELECT Index, Signature FROM Win32_DiskDrive"))
                {
                    using (var results = new ManagementObjectSearcherResults(searcher))
                    {
                        foreach (var diskDrive in results)
                        {
                            var index     = diskDrive.GetUInt32("Index");
                            var signature = diskDrive.GetUInt32("Signature");
                            if (index.HasValue && signature.HasValue)
                            {
                                diskDrives.Add(index.Value, signature.Value);
                            }
                        }
                    }
                }

                // use the signature of the first physical disk drive
                foreach (var diskDriveId in diskDrives)
                {
                    return(diskDriveId.Value.ToString("X8", CultureInfo.InvariantCulture));
                }
            }
            catch (Exception ex)
            {
                Platform.Log(LogLevel.Debug, ex, "Failed to retrieve disk drive signature.");
            }
            return(string.Empty);
        }
 private static string GetMotherboardSerial()
 {
     try
     {
         // read the s/n of the motherboard
         using (var searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard"))
         {
             using (var results = new ManagementObjectSearcherResults(searcher))
             {
                 foreach (var motherboard in results)
                 {
                     var serialNumber = motherboard.GetString("SerialNumber");
                     if (serialNumber != null)
                     {
                         serialNumber = serialNumber.Trim();
                     }
                     if (!string.IsNullOrEmpty(serialNumber))
                     {
                         return(serialNumber);
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Platform.Log(LogLevel.Debug, ex, "Failed to retrieve baseboard serial number.");
     }
     return(string.Empty);
 }
 private static string GetSystemVolumeSerial()
 {
     try
     {
         // read the volume serial of the system drive
         var systemDrive = (Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System)) ?? "C:").TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar).ToUpperInvariant();
         using (var searcher = new ManagementObjectSearcher(string.Format("SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceID='{0}'", WqlEscape(systemDrive))))
             using (var results = new ManagementObjectSearcherResults(searcher))
             {
                 foreach (var logicalDisk in results)
                 {
                     var volumeSerial = logicalDisk.GetString("VolumeSerialNumber");
                     if (volumeSerial != null)
                     {
                         volumeSerial = volumeSerial.Trim();
                     }
                     if (!string.IsNullOrEmpty(volumeSerial))
                     {
                         return(volumeSerial);
                     }
                 }
             }
     }
     catch (Exception ex)
     {
         Platform.Log(LogLevel.Debug, ex, "Failed to retrieve system volume serial.");
     }
     return(string.Empty);
 }
 private static string GetBiosSerial()
 {
     try
     {
         // read the s/n of BIOS
         using (var searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BIOS"))
             using (var results = new ManagementObjectSearcherResults(searcher))
             {
                 foreach (var bios in results)
                 {
                     var serialNumber = bios.GetString("SerialNumber");
                     if (serialNumber != null)
                     {
                         serialNumber = serialNumber.Trim();
                     }
                     if (!string.IsNullOrEmpty(serialNumber))
                     {
                         return(serialNumber);
                     }
                 }
             }
     }
     catch (Exception ex)
     {
         Platform.Log(LogLevel.Debug, ex, "Failed to retrieve BIOS serial number.");
     }
     return(string.Empty);
 }
        private static string GetProcessorId()
        {
            try
            {
                // read the CPUID of the first processor
                using (var searcher = new ManagementObjectSearcher("SELECT ProcessorId FROM Win32_Processor"))
                {
                    using (var results = new ManagementObjectSearcherResults(searcher))
                    {
                        foreach (var processor in results)
                        {
                            var processorId = processor.GetString("ProcessorId");
                            if (processorId != null)
                            {
                                processorId = processorId.Trim();
                            }
                            if (!string.IsNullOrEmpty(processorId))
                            {
                                return(processorId);
                            }
                        }
                    }
                }

                // if the processor doesn't support the CPUID opcode, concatenate some immutable characteristics of the processor
                using (var searcher = new ManagementObjectSearcher("SELECT Manufacturer, AddressWidth, Architecture, Family, Level, Revision FROM Win32_Processor"))
                {
                    using (var results = new ManagementObjectSearcherResults(searcher))
                    {
                        foreach (var processor in results)
                        {
                            var manufacturer = processor.GetString("Manufacturer");
                            var addressWidth = processor.GetUInt16("AddressWidth");
                            var architecture = processor.GetUInt16("Architecture");
                            var family       = processor.GetUInt16("Family");
                            var level        = processor.GetUInt16("Level");
                            var revision     = processor.GetUInt16("Revision");
                            return(string.Format(CultureInfo.InvariantCulture, "CPU-{0}-{1}-{2:X2}-{3:X2}-{4}-{5:X4}", manufacturer, addressWidth, architecture, family, level, revision));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Platform.Log(LogLevel.Debug, ex, "Failed to retrieve processor ID.");
            }
            return(string.Empty);
        }