mit c #, wie ich Informationen über die Festplatten, die auf der lokalen Maschine extrahieren
-
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.
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();
}