The following should return the information as selected. you may need to run your application with elevated permissions to access the necessary WMI classes.
using System.Management;
public static void GetModelAndSerialNumberOfHardDisk()
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject drive in searcher.Get())
{
string modelName = (string)drive["Model"];
string serialNumber = (string)drive["SerialNumber"];
Console.WriteLine($"Model Name: {modelName}");
Console.WriteLine($"Serial Number: {serialNumber}");
}
}
Now simply call the GetModelAndSerialNumberOfHardDisk() method.