Чтобы получить серийный том, я написал функцию, которая выглядит следующим образом:
string drive = Environment.ExpandEnvironmentVariables("%SystemDrive%").Replace(":", "");
string id = getVolumeSerial(drive);
private static string getVolumeSerial(string drive)
{
ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid="""
+ drive + @":""");
disk.Get();
string volumeSerial = disk["VolumeSerialNumber"].ToString();
disk.Dispose();
return volumeSerial;
}
Я развернул программное обеспечение, содержащее это, для 30 человек, но на компьютере с 31 инициализацией ManagementObject происходит сбой и возникает исключение. Есть ли лучшие / альтернативные / более надежные способы получить серийный номер тома?