diff --git a/Pilz.Cryptography/UniquieID.cs b/Pilz.Cryptography/UniquieID.cs index ddf2c08..dad0034 100644 --- a/Pilz.Cryptography/UniquieID.cs +++ b/Pilz.Cryptography/UniquieID.cs @@ -72,18 +72,24 @@ namespace Pilz.Cryptography return hash; } + private static string Win32_PhysicalMedia_SerialNumber = null; private static string TryGetSerialNumberOfFirstHardDrive() { - var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); - var sn = string.Empty; - - foreach (ManagementObject wmi_HD in searcher.Get()) + if (Win32_PhysicalMedia_SerialNumber == null) { - if (string.IsNullOrEmpty(sn) && wmi_HD["SerialNumber"] != null) - sn = wmi_HD["SerialNumber"].ToString().Trim(); - } + var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); + var sn = string.Empty; - return sn; + foreach (ManagementObject wmi_HD in searcher.Get()) + { + if (string.IsNullOrEmpty(sn) && wmi_HD["SerialNumber"] != null) + sn = wmi_HD["SerialNumber"].ToString().Trim(); + } + + Win32_PhysicalMedia_SerialNumber = sn; + } + + return Win32_PhysicalMedia_SerialNumber; } public override string ToString() => ID;