#c_sharp
Всем привет, пытаюсь программно определить серийный номер HDD. В результате получил 2 разных значения: с использованием WMI из командной строки (команда wmic diskdrive get serialnumber) с использованием WMI через ManagementObject (экземпляр WMI) в проекте C# . ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia"); foreach (ManagementObject hdd in searcher.Get()) Console.WriteLine(hdd["SerialNumber"]); В первом случае возвращается значение 9WJ16TH7, во втором - 2020202020202020202020205739314a54363748 Подскажите, пожалуйста, в чем проблема и как исправить ошибку в коде C#.
Ответы
Ответ 1
Попробуй вместо Win32_PhysicalMedia использовать Win32_DiskDrive (в Vista и далее первый заменен вторым). Протестируй на разных операционных системах. Второй вариант: строка которую ты получаешь в приложении - это последовательность ASCII кодов символов. То есть теперь твоя задача правильно переконвертировать ее в удобоваримый вид.Ответ 2
Вариант с командой wmic DISKDRIVE GET SerialNumber может и не работать: там может просто не быть свойства SerialNumber. Это проверяется командой: wmic DISKDRIVE GET /? Вместо нее можно также извлечь данные из Win32_PhysicalMedia wmic PATH Win32_PhysicalMedia GET SerialNumber
Комментариев нет:
Отправить комментарий