Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Hard disk serial Number

Tags:

c#

hard-drive

I want to get hard disk serial number. How I can I do that? I tried with two code but I am not getting

StringCollection propNames = new StringCollection(); ManagementClass driveClass = new ManagementClass("Win32_DiskDrive"); PropertyDataCollection  props = driveClass.Properties; foreach (PropertyData driveProperty in props)  {     propNames.Add(driveProperty.Name); } int idx = 0; ManagementObjectCollection drives = driveClass.GetInstances(); foreach (ManagementObject drv in drives)        {           Label2.Text+=(idx + 1);           foreach (string strProp in propNames)            {             //Label2.Text+=drv[strProp];          Response.Write(strProp + "   =   " + drv[strProp] + "</br>");           }     } 

In this one I am not getting any Unique Serial number.
And Second one is

string drive = "C"; ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive + ":\""); disk.Get(); Label3.Text = "VolumeSerialNumber="+ disk["VolumeSerialNumber"].ToString(); 

Here I am getting VolumeSerialNumber. But it is not unique one. If I format the hard disk, this will change. How Can I get this?

like image 904
Joby Avatar asked Nov 03 '10 05:11

Joby


People also ask

Do hard drives have serial numbers?

Next to each hard drive, you'll see the drive's serial number. This is the number that the manufacturer has assigned to the drive. That's a quick and easy way to read your hard drive's serial number!

How do I find my SSD serial number?

Serial Number is on a separate label and is on the bottom of the SSD.


1 Answers

Hm, looking at your first set of code, I think you have retrieved (maybe?) the hard drive model. The serial # comes from Win32_PhysicalMedia.

Get Hard Drive model

    ManagementObjectSearcher searcher = new     ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");     foreach(ManagementObject wmi_HD in searcher.Get())    {     HardDrive hd = new HardDrive();     hd.Model = wmi_HD["Model"].ToString();     hd.Type  = wmi_HD["InterfaceType"].ToString();      hdCollection.Add(hd);    } 

Get the Serial Number

 searcher = new     ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");     int i = 0;    foreach(ManagementObject wmi_HD in searcher.Get())    {     // get the hard drive from collection     // using index     HardDrive hd = (HardDrive)hdCollection[i];      // get the hardware serial no.     if (wmi_HD["SerialNumber"] == null)      hd.SerialNo = "None";     else      hd.SerialNo = wmi_HD["SerialNumber"].ToString();      ++i;    } 

Source

Hope this helps :)

like image 184
Sprunth Avatar answered Sep 21 '22 13:09

Sprunth