mit c #, wie ich Informationen über die Festplatten, die auf der lokalen Maschine extrahieren

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

  •  04-07-2019
  •  | 
  •  

Frage

Ich suche Daten zu erhalten, wie Größe / Kapazität, Seriennummer, Modellnummer, Köpfe Sektoren, Hersteller und möglicherweise SMART-Daten.

War es hilfreich?

Lösung

Sie können WMI-Informationen über die Festplatten zugreifen Anrufe.

// Benötigt mit System.Management; & System.Management.dll Referenz

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");

Andere Tipps

sollten Sie verwenden die System.Management Namespace:

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

Weitere Informationen zu den Mitgliedern der Win32_DiskDrive Klasse finden Sie unter:

http://msdn.microsoft.com/ en-us / library / aa394132 (VS.85) aspx

Der einfachste Weg ist WMI zu verwenden, um die erforderlichen Informationen zu erhalten. Nehmen Sie bei Blick in die Dokumentation für Win32___DiskDrive MSDN, die eine Vielzahl von Standard-Antrieb Eigenschaften enthalten. Sie können auch versuchen, die MSStorageDriver_ATAPISmartData WMI-Klasse, die ich keine Dokumentation für im Moment nicht finden, sollten aber alle die SMART-Daten haben, die Sie suchen. Hier einige grundlegende Beispielcode, um alle Laufwerke aufzuzählen und ihre Eigenschaften zu erhalten:

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();
}

Sie können verwenden WMI die meisten der Informationen, die Sie erhalten möchten, und es gibt eine Einführung in WMI hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top