с помощью C #, как я могу извлечь информацию о жестких дисках, присутствующих на локальном компьютере

StackOverflow https://stackoverflow.com/questions/232979

  •  04-07-2019
  •  | 
  •  

Вопрос

Мне нужны такие данные, как размер / емкость, серийный номер, номер модели, секторы головок, производитель и, возможно, данные SMART.

Это было полезно?

Решение

Вы можете использовать вызовы WMI для доступа к информации о жестких дисках.

// Требуется использование System.Management; & Амп; Справочник по System.Management.dll

ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"c:\""); 
disk.Get(); 
Console.WriteLine("Logical Disk Size = " + disk["Size"] + " bytes"); 
Console.WriteLine("Logical Disk FreeSpace = " + disk["FreeSpace"] + "bytes");

Другие советы

Вы должны использовать пространство имен System.Management :

System.Management.ManagementObjectSearcher ms =
    new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in ms.Get())
{
    System.Console.Write(mo["Model");
}

Подробнее о членах класса Win32_DiskDrive смотрите:

http://msdn.microsoft.com/ ан-нас / библиотека / aa394132 (VS.85) .aspx

Самый простой способ - использовать WMI для получения необходимой информации. Взгляните на документацию по Win32___DiskDrive в MSDN, который содержит множество стандартных свойств диска. Вы также можете попробовать использовать класс WMI MSStorageDriver_ATAPISmartData, для которого в настоящий момент я не могу найти никаких документов, но в нем должны быть все данные SMART, которые вы ищете. Вот некоторый базовый пример кода для перечисления всех дисков и получения их свойств:

ManagementClass driveClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection drives = driveClass.GetInstances();
foreach (ManagementObject drive in drives) 
{ 
    foreach (PropertyData property in drive.Properties)
    {
        Console.WriteLine("Property: {0}, Value: {1}", property.Name, property.Value);        
    }
    Console.WriteLine();
}

Вы можете использовать WMI , чтобы получить большую часть необходимой информации, и есть введение в WMI здесь .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top